├── Backend ├── .env ├── .htaccess ├── Readme.md ├── backend │ ├── .htaccess │ ├── bootstrap.php │ ├── config │ │ ├── Controller.php │ │ ├── Core.php │ │ ├── DB.php │ │ └── Middleware.php │ ├── controllers │ │ ├── Auth.php │ │ ├── Reservation.php │ │ └── User.php │ ├── models │ │ ├── AuthModel.php │ │ ├── ReservationModel.php │ │ └── UserModel.php │ └── view │ │ └── index.php ├── composer.json ├── composer.lock ├── public │ ├── .htaccess │ └── index.php └── vendor │ ├── autoload.php │ ├── composer │ ├── ClassLoader.php │ ├── InstalledVersions.php │ ├── LICENSE │ ├── autoload_classmap.php │ ├── autoload_files.php │ ├── autoload_namespaces.php │ ├── autoload_psr4.php │ ├── autoload_real.php │ ├── autoload_static.php │ ├── installed.json │ ├── installed.php │ └── platform_check.php │ ├── firebase │ └── php-jwt │ │ ├── LICENSE │ │ ├── README.md │ │ ├── composer.json │ │ └── src │ │ ├── BeforeValidException.php │ │ ├── ExpiredException.php │ │ ├── JWK.php │ │ ├── JWT.php │ │ └── SignatureInvalidException.php │ ├── fpdf │ ├── FAQ.htm │ ├── changelog.htm │ ├── doc │ │ ├── __construct.htm │ │ ├── acceptpagebreak.htm │ │ ├── addfont.htm │ │ ├── addlink.htm │ │ ├── addpage.htm │ │ ├── aliasnbpages.htm │ │ ├── cell.htm │ │ ├── close.htm │ │ ├── error.htm │ │ ├── footer.htm │ │ ├── getpageheight.htm │ │ ├── getpagewidth.htm │ │ ├── getstringwidth.htm │ │ ├── getx.htm │ │ ├── gety.htm │ │ ├── header.htm │ │ ├── image.htm │ │ ├── index.htm │ │ ├── line.htm │ │ ├── link.htm │ │ ├── ln.htm │ │ ├── multicell.htm │ │ ├── output.htm │ │ ├── pageno.htm │ │ ├── rect.htm │ │ ├── setauthor.htm │ │ ├── setautopagebreak.htm │ │ ├── setcompression.htm │ │ ├── setcreator.htm │ │ ├── setdisplaymode.htm │ │ ├── setdrawcolor.htm │ │ ├── setfillcolor.htm │ │ ├── setfont.htm │ │ ├── setfontsize.htm │ │ ├── setkeywords.htm │ │ ├── setleftmargin.htm │ │ ├── setlinewidth.htm │ │ ├── setlink.htm │ │ ├── setmargins.htm │ │ ├── setrightmargin.htm │ │ ├── setsubject.htm │ │ ├── settextcolor.htm │ │ ├── settitle.htm │ │ ├── settopmargin.htm │ │ ├── setx.htm │ │ ├── setxy.htm │ │ ├── sety.htm │ │ ├── text.htm │ │ └── write.htm │ ├── font │ │ ├── courier.php │ │ ├── courierb.php │ │ ├── courierbi.php │ │ ├── courieri.php │ │ ├── helvetica.php │ │ ├── helveticab.php │ │ ├── helveticabi.php │ │ ├── helveticai.php │ │ ├── symbol.php │ │ ├── times.php │ │ ├── timesb.php │ │ ├── timesbi.php │ │ ├── timesi.php │ │ └── zapfdingbats.php │ ├── fpdf.css │ ├── fpdf.php │ ├── install.txt │ ├── license.txt │ ├── makefont │ │ ├── cp1250.map │ │ ├── cp1251.map │ │ ├── cp1252.map │ │ ├── cp1253.map │ │ ├── cp1254.map │ │ ├── cp1255.map │ │ ├── cp1257.map │ │ ├── cp1258.map │ │ ├── cp874.map │ │ ├── iso-8859-1.map │ │ ├── iso-8859-11.map │ │ ├── iso-8859-15.map │ │ ├── iso-8859-16.map │ │ ├── iso-8859-2.map │ │ ├── iso-8859-4.map │ │ ├── iso-8859-5.map │ │ ├── iso-8859-7.map │ │ ├── iso-8859-9.map │ │ ├── koi8-r.map │ │ ├── koi8-u.map │ │ ├── makefont.php │ │ └── ttfparser.php │ └── tutorial │ │ ├── 20k_c1.txt │ │ ├── 20k_c2.txt │ │ ├── calligra.php │ │ ├── calligra.ttf │ │ ├── calligra.z │ │ ├── countries.txt │ │ ├── index.htm │ │ ├── logo.png │ │ ├── makefont.php │ │ ├── tuto1.htm │ │ ├── tuto1.php │ │ ├── tuto2.htm │ │ ├── tuto2.php │ │ ├── tuto3.htm │ │ ├── tuto3.php │ │ ├── tuto4.htm │ │ ├── tuto4.php │ │ ├── tuto5.htm │ │ ├── tuto5.php │ │ ├── tuto6.htm │ │ ├── tuto6.php │ │ ├── tuto7.htm │ │ └── tuto7.php │ ├── graham-campbell │ └── result-type │ │ ├── LICENSE │ │ ├── composer.json │ │ └── src │ │ ├── Error.php │ │ ├── Result.php │ │ └── Success.php │ ├── phpoption │ └── phpoption │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── composer.json │ │ └── src │ │ └── PhpOption │ │ ├── LazyOption.php │ │ ├── None.php │ │ ├── Option.php │ │ └── Some.php │ ├── symfony │ ├── polyfill-ctype │ │ ├── Ctype.php │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bootstrap.php │ │ ├── bootstrap80.php │ │ └── composer.json │ ├── polyfill-mbstring │ │ ├── LICENSE │ │ ├── Mbstring.php │ │ ├── README.md │ │ ├── Resources │ │ │ └── unidata │ │ │ │ ├── lowerCase.php │ │ │ │ ├── titleCaseRegexp.php │ │ │ │ └── upperCase.php │ │ ├── bootstrap.php │ │ ├── bootstrap80.php │ │ └── composer.json │ └── polyfill-php80 │ │ ├── LICENSE │ │ ├── Php80.php │ │ ├── README.md │ │ ├── Resources │ │ └── stubs │ │ │ ├── Attribute.php │ │ │ ├── Stringable.php │ │ │ ├── UnhandledMatchError.php │ │ │ └── ValueError.php │ │ ├── bootstrap.php │ │ └── composer.json │ └── vlucas │ └── phpdotenv │ ├── LICENSE │ ├── composer.json │ └── src │ ├── Dotenv.php │ ├── Exception │ ├── ExceptionInterface.php │ ├── InvalidEncodingException.php │ ├── InvalidFileException.php │ ├── InvalidPathException.php │ └── ValidationException.php │ ├── Loader │ ├── Loader.php │ ├── LoaderInterface.php │ └── Resolver.php │ ├── Parser │ ├── Entry.php │ ├── EntryParser.php │ ├── Lexer.php │ ├── Lines.php │ ├── Parser.php │ ├── ParserInterface.php │ └── Value.php │ ├── Repository │ ├── Adapter │ │ ├── AdapterInterface.php │ │ ├── ApacheAdapter.php │ │ ├── ArrayAdapter.php │ │ ├── EnvConstAdapter.php │ │ ├── GuardedWriter.php │ │ ├── ImmutableWriter.php │ │ ├── MultiReader.php │ │ ├── MultiWriter.php │ │ ├── PutenvAdapter.php │ │ ├── ReaderInterface.php │ │ ├── ReplacingWriter.php │ │ ├── ServerConstAdapter.php │ │ └── WriterInterface.php │ ├── AdapterRepository.php │ ├── RepositoryBuilder.php │ └── RepositoryInterface.php │ ├── Store │ ├── File │ │ ├── Paths.php │ │ └── Reader.php │ ├── FileStore.php │ ├── StoreBuilder.php │ ├── StoreInterface.php │ └── StringStore.php │ ├── Util │ ├── Regex.php │ └── Str.php │ └── Validator.php ├── README.md └── VueApp ├── .browserslistrc ├── .env ├── .eslintrc.js ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── index.html └── src ├── App.vue ├── assets ├── LoginImg.svg ├── RegisterImg.svg ├── auth.svg ├── logo.png └── med1.svg ├── components ├── Auth │ ├── Authorized.vue │ ├── Login.vue │ └── Register.vue ├── Collapsible.vue ├── Footer.vue └── Header.vue ├── hooks ├── Api.js └── checkAuth.js ├── main.js ├── router └── index.js ├── store └── index.js └── views ├── Add.vue ├── AuthPage.vue ├── Contact.vue ├── Dashboard.vue ├── Delete.vue ├── Home.vue └── Update.vue /Backend/.env: -------------------------------------------------------------------------------- 1 | USER_KEY=bhqM5O0/ilYkGcuUGrMaYLqq5cT/6XL3jHRaTpewYsM 2 | 3 | DB_HOST=localhost 4 | DB_USER=root 5 | DB_PASS= 6 | DB_NAME=quickrd -------------------------------------------------------------------------------- /Backend/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | RewriteEngine on 3 | RewriteRule ^$ public/ [L] 4 | RewriteRule (.*) public/$1 [L] 5 | -------------------------------------------------------------------------------- /Backend/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Backend/backend/.htaccess: -------------------------------------------------------------------------------- 1 | Options -Indexes 2 | -------------------------------------------------------------------------------- /Backend/backend/bootstrap.php: -------------------------------------------------------------------------------- 1 | getUrl(); 18 | if ($url?file_exists('../backend/controllers/' . ucwords($url[0]) . '.php'):null) { 19 | $this->Controller = ucwords($url[0]); 20 | unset($url[0]); 21 | } 22 | 23 | require_once '../backend/controllers/' . $this->Controller . '.php'; 24 | $this->Controller = new $this->Controller; 25 | 26 | if (isset($url[1])) { 27 | if (method_exists($this->Controller, $url[1])) { 28 | $this->Method = $url[1]; 29 | unset($url[1]); 30 | } 31 | } 32 | 33 | $this->Controller->data = file_get_contents("php://input") ? file_get_contents("php://input") : []; 34 | $this->params = $url ? array_values($url) : []; 35 | 36 | call_user_func_array([$this->Controller, $this->Method], $this->params); 37 | 38 | } 39 | 40 | public function getUrl() 41 | { 42 | if (isset($_GET['url'])) { 43 | $url = rtrim($_GET['url'], '/'); 44 | $url = filter_var($url, FILTER_SANITIZE_URL); 45 | $url = explode('/', $url); 46 | return $url; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Backend/backend/config/DB.php: -------------------------------------------------------------------------------- 1 | load(); 8 | 9 | class DB 10 | { 11 | // private $host = $_ENV['DB_HOST']; 12 | // private $user = $_ENV['DB_USER']; 13 | // private $pass = $_ENV['DB_PASS']; 14 | // private $dbname = $_ENV['DB_NAME']; 15 | 16 | private $conn; 17 | private $stmt; 18 | private $error; 19 | 20 | public function __construct() 21 | { 22 | $connection = 'mysql:host=' . $_ENV['DB_HOST'] . ';dbname=' . $_ENV['DB_NAME']; 23 | $optins = array( 24 | PDO::ATTR_PERSISTENT => true, 25 | PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 26 | ); 27 | 28 | try { 29 | $this->conn = new PDO($connection, $_ENV['DB_USER'], $_ENV['DB_PASS'], $optins); 30 | } catch (PDOExeption $err) { 31 | $this->error = $err->getMessage(); 32 | echo $this->error; 33 | } 34 | 35 | } 36 | 37 | public function query($sql) 38 | { 39 | $this->stmt = $this->conn->prepare($sql); 40 | } 41 | 42 | public function bind($param, $value, $type = null) 43 | { 44 | if (is_null($type)) { 45 | switch (true) { 46 | case is_int($value): 47 | $type = PDO::PARAM_INT; 48 | break; 49 | case is_bool($value): 50 | $type = PDO::PARAM_BOOL; 51 | break; 52 | case is_null($value): 53 | $type = PDO::PARAM_NULL; 54 | break; 55 | default: 56 | $type = PDO::PARAM_STR; 57 | } 58 | } 59 | $this->stmt->bindValue($param, $value, $type); 60 | } 61 | 62 | public function execute() 63 | { 64 | return $this->stmt->execute(); 65 | } 66 | 67 | public function all() 68 | { 69 | $this->execute(); 70 | return $this->stmt->fetchAll(PDO::FETCH_OBJ); 71 | } 72 | 73 | public function single() 74 | { 75 | $this->execute(); 76 | return $this->stmt->fetch(PDO::FETCH_OBJ); 77 | } 78 | 79 | public function rowCount() 80 | { 81 | return $this->stmt->rowCount(); 82 | } 83 | 84 | public function lastInsertId() 85 | { 86 | return $this->dbh->lastInsertId(); 87 | } 88 | 89 | } 90 | -------------------------------------------------------------------------------- /Backend/backend/controllers/User.php: -------------------------------------------------------------------------------- 1 | userModel = $this->model('UserModel'); 18 | $this->validator = $this->middleware('Middleware'); 19 | } 20 | public function index() 21 | { 22 | $this->view('index'); 23 | } 24 | 25 | public function me() 26 | { 27 | $headers = apache_request_headers(); 28 | $headers = isset($headers['Authorization']) ? explode(' ', $headers['Authorization']) : null; 29 | if ($headers) { 30 | try { 31 | $info = $this->verifyAuth($headers[1]); 32 | $user = $this->userModel->getUserByid($info->reference); 33 | unset($user->password); 34 | print_r(json_encode($user)); 35 | 36 | } catch (\Throwable$th) { 37 | print_r(json_encode(array( 38 | "error" => "unauthorized", 39 | ))); 40 | } 41 | } else { 42 | print_r(json_encode(array( 43 | "error" => "unauthorized", 44 | ))); 45 | } 46 | } 47 | 48 | 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /Backend/backend/models/AuthModel.php: -------------------------------------------------------------------------------- 1 | db = new DB(); 9 | } 10 | 11 | public function add($refreshToken, $user) 12 | { 13 | try { 14 | $this->db->query("INSERT INTO 15 | Auth 16 | SET 17 | user_ref = :user_ref, 18 | refreshToken = :refreshToken 19 | "); 20 | 21 | $this->db->bind(':refreshToken', $refreshToken); 22 | $this->db->bind(':user_ref', $user); 23 | $this->db->single(); 24 | 25 | } catch (\PDOExeption $err) { 26 | return $err->getMessage(); 27 | die(); 28 | } 29 | 30 | return true; 31 | } 32 | 33 | public function currToken($id) 34 | { 35 | $this->db->query("SELECT * FROM Auth WHERE user_ref = :id ORDER BY id DESC LIMIT 1"); 36 | $this->db->bind(':id', $id); 37 | return $this->db->single(); 38 | } 39 | 40 | public function expiredToken($id) 41 | { 42 | $this->db->query("DELETE FROM Auth WHERE id = :id"); 43 | $this->db->bind(':id', $id); 44 | return $this->db->single(); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /Backend/backend/models/ReservationModel.php: -------------------------------------------------------------------------------- 1 | db = new DB(); 8 | } 9 | 10 | public function getMyReservations($user) 11 | { 12 | $this->db->query("SELECT * FROM reservation r,user u WHERE :user=r.user AND r.user=u.reference ORDER BY created_At DESC"); 13 | 14 | $this->db->bind(':user', $user); 15 | return $this->db->all(); 16 | } 17 | 18 | public function checkAppointment($data) 19 | { 20 | $this->db->query("SELECT * FROM reservation WHERE user = :user && time=:time && day=:day"); 21 | $this->db->bind(':user', $data->user); 22 | $this->db->bind(':time', $data->time); 23 | $this->db->bind(':day', $data->day); 24 | return $this->db->all(); 25 | } 26 | public function checkDay($data) 27 | { 28 | $this->db->query("SELECT * FROM reservation WHERE day=:day"); 29 | $this->db->bind(':day', $data->day); 30 | return $this->db->all(); 31 | } 32 | public function getReservations() 33 | { 34 | $this->db->query("SELECT * FROM reservation"); 35 | return $this->db->all(); 36 | } 37 | 38 | public function getReservationByInfos($data) 39 | { 40 | $this->db->query("SELECT * FROM 41 | reservation WHERE user=:user && time=:time && day=:day"); 42 | $this->db->bind(':user', $data->user); 43 | $this->db->bind(':time', $data->time); 44 | $this->db->bind(':day', $data->day); 45 | return $this->db->single(); 46 | } 47 | 48 | public function add($data) 49 | { 50 | try { 51 | $this->db->query("INSERT INTO 52 | reservation 53 | SET 54 | user = :user, 55 | time = :time, 56 | day = :day 57 | "); 58 | $this->db->bind(':user', $data->user); 59 | $this->db->bind(':time', $data->time); 60 | $this->db->bind(':day', $data->day); 61 | $this->db->single(); 62 | return $this->getReservationByInfos($data); 63 | } catch (\PDOExeption$err) { 64 | return $err->getMessage(); 65 | die(); 66 | } 67 | return true; 68 | } 69 | 70 | public function delete($id) 71 | { 72 | $this->db->query('DELETE FROM reservation WHERE id=:id'); 73 | $this->db->bind(':id', $id); 74 | $this->db->execute(); 75 | } 76 | 77 | public function update($id,$time) 78 | { 79 | $this->db->query('UPDATE reservation SET time=:time WHERE id=:id'); 80 | $this->db->bind(':id', $id); 81 | $this->db->bind(':time', $time); 82 | $this->db->execute(); 83 | } 84 | 85 | 86 | } 87 | -------------------------------------------------------------------------------- /Backend/backend/models/UserModel.php: -------------------------------------------------------------------------------- 1 | db = new DB(); 10 | } 11 | 12 | public function getUsers() 13 | { 14 | $this->db->query("SELECT * FROM user"); 15 | return $this->db->all(); 16 | } 17 | 18 | public function getUserById($reference) 19 | { 20 | $this->db->query("SELECT * FROM user WHERE reference = :reference"); 21 | $this->db->bind(':reference', $reference); 22 | return $this->db->single(); 23 | } 24 | 25 | public function getUserByEmail($email) 26 | { 27 | $this->db->query("SELECT * FROM user WHERE email = :email"); 28 | $this->db->bind(':email', $email); 29 | return $this->db->single(); 30 | } 31 | 32 | public function getEmailById($reference) 33 | { 34 | $this->db->query("SELECT email FROM user WHERE reference = :reference"); 35 | $this->db->bind(':reference', $reference); 36 | return $this->db->single(); 37 | } 38 | 39 | 40 | public function getUserByRole($role) 41 | { 42 | echo $role; 43 | $this->db->query("SELECT * FROM user WHERE role = :role"); 44 | $this->db->bind(':role', $role); 45 | return $this->db->all(); 46 | } 47 | public function archiveUser($id) 48 | { 49 | echo $role; 50 | $this->db->query("UPDATE `user` SET `archived`='1' WHERE id=:id"); 51 | $this->db->bind(':id', $id); 52 | return $this->db->all(); 53 | } 54 | 55 | public function register($data) 56 | { 57 | 58 | try { 59 | $this->db->query("INSERT INTO 60 | user 61 | SET 62 | name = :name, 63 | cin = :cin, 64 | reference = :reference, 65 | email = :email, 66 | password = :password, 67 | phone = :phone 68 | "); 69 | $this->db->bind(':reference', $data->reference); 70 | $this->db->bind(':name', $data->name); 71 | $this->db->bind(':cin', $data->cin); 72 | $this->db->bind(':email', $data->email); 73 | $this->db->bind(':password', $data->password); 74 | $this->db->bind(':phone', $data->phone); 75 | $this->db->single(); 76 | } catch (\PDOExeption $err) { 77 | return $err->getMessage(); 78 | die(); 79 | } 80 | return $this->getUserById($data->reference); 81 | } 82 | 83 | 84 | 85 | 86 | } 87 | -------------------------------------------------------------------------------- /Backend/backend/view/index.php: -------------------------------------------------------------------------------- 1 | Quick Appoitemnets Backend 2 | 3 | 4 | -------------------------------------------------------------------------------- /Backend/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "firebase/php-jwt": "^5.2", 4 | "vlucas/phpdotenv": "^5.3" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Backend/public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Options -Multiviews 3 | RewriteEngine On 4 | RewriteBase /QuickRd/public 5 | RewriteCond %{REQUEST_FILENAME} !-d 6 | RewriteCond %{REQUEST_FILENAME} !-f 7 | RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 8 | 9 | 10 | -------------------------------------------------------------------------------- /Backend/public/index.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 10 | 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 11 | 'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php', 12 | 'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', 13 | 'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php', 14 | ); 15 | -------------------------------------------------------------------------------- /Backend/vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/symfony/polyfill-ctype/bootstrap.php', 10 | '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 11 | 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', 12 | ); 13 | -------------------------------------------------------------------------------- /Backend/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/symfony/polyfill-php80'), 10 | 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 11 | 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'), 12 | 'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'), 13 | 'GrahamCampbell\\ResultType\\' => array($vendorDir . '/graham-campbell/result-type/src'), 14 | 'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'), 15 | 'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'), 16 | ); 17 | -------------------------------------------------------------------------------- /Backend/vendor/composer/autoload_real.php: -------------------------------------------------------------------------------- 1 | = 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 32 | if ($useStaticLoader) { 33 | require __DIR__ . '/autoload_static.php'; 34 | 35 | call_user_func(\Composer\Autoload\ComposerStaticInit1c3260cfa4cff3800f50c4f7595d8739::getInitializer($loader)); 36 | } else { 37 | $map = require __DIR__ . '/autoload_namespaces.php'; 38 | foreach ($map as $namespace => $path) { 39 | $loader->set($namespace, $path); 40 | } 41 | 42 | $map = require __DIR__ . '/autoload_psr4.php'; 43 | foreach ($map as $namespace => $path) { 44 | $loader->setPsr4($namespace, $path); 45 | } 46 | 47 | $classMap = require __DIR__ . '/autoload_classmap.php'; 48 | if ($classMap) { 49 | $loader->addClassMap($classMap); 50 | } 51 | } 52 | 53 | $loader->register(true); 54 | 55 | if ($useStaticLoader) { 56 | $includeFiles = Composer\Autoload\ComposerStaticInit1c3260cfa4cff3800f50c4f7595d8739::$files; 57 | } else { 58 | $includeFiles = require __DIR__ . '/autoload_files.php'; 59 | } 60 | foreach ($includeFiles as $fileIdentifier => $file) { 61 | composerRequire1c3260cfa4cff3800f50c4f7595d8739($fileIdentifier, $file); 62 | } 63 | 64 | return $loader; 65 | } 66 | } 67 | 68 | function composerRequire1c3260cfa4cff3800f50c4f7595d8739($fileIdentifier, $file) 69 | { 70 | if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { 71 | require $file; 72 | 73 | $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Backend/vendor/composer/installed.php: -------------------------------------------------------------------------------- 1 | 3 | array ( 4 | 'pretty_version' => '1.0.0+no-version-set', 5 | 'version' => '1.0.0.0', 6 | 'aliases' => 7 | array ( 8 | ), 9 | 'reference' => NULL, 10 | 'name' => '__root__', 11 | ), 12 | 'versions' => 13 | array ( 14 | '__root__' => 15 | array ( 16 | 'pretty_version' => '1.0.0+no-version-set', 17 | 'version' => '1.0.0.0', 18 | 'aliases' => 19 | array ( 20 | ), 21 | 'reference' => NULL, 22 | ), 23 | 'firebase/php-jwt' => 24 | array ( 25 | 'pretty_version' => 'v5.2.1', 26 | 'version' => '5.2.1.0', 27 | 'aliases' => 28 | array ( 29 | ), 30 | 'reference' => 'f42c9110abe98dd6cfe9053c49bc86acc70b2d23', 31 | ), 32 | 'graham-campbell/result-type' => 33 | array ( 34 | 'pretty_version' => 'v1.0.1', 35 | 'version' => '1.0.1.0', 36 | 'aliases' => 37 | array ( 38 | ), 39 | 'reference' => '7e279d2cd5d7fbb156ce46daada972355cea27bb', 40 | ), 41 | 'phpoption/phpoption' => 42 | array ( 43 | 'pretty_version' => '1.7.5', 44 | 'version' => '1.7.5.0', 45 | 'aliases' => 46 | array ( 47 | ), 48 | 'reference' => '994ecccd8f3283ecf5ac33254543eb0ac946d525', 49 | ), 50 | 'symfony/polyfill-ctype' => 51 | array ( 52 | 'pretty_version' => 'v1.23.0', 53 | 'version' => '1.23.0.0', 54 | 'aliases' => 55 | array ( 56 | ), 57 | 'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce', 58 | ), 59 | 'symfony/polyfill-mbstring' => 60 | array ( 61 | 'pretty_version' => 'v1.23.0', 62 | 'version' => '1.23.0.0', 63 | 'aliases' => 64 | array ( 65 | ), 66 | 'reference' => '2df51500adbaebdc4c38dea4c89a2e131c45c8a1', 67 | ), 68 | 'symfony/polyfill-php80' => 69 | array ( 70 | 'pretty_version' => 'v1.23.0', 71 | 'version' => '1.23.0.0', 72 | 'aliases' => 73 | array ( 74 | ), 75 | 'reference' => 'eca0bf41ed421bed1b57c4958bab16aa86b757d0', 76 | ), 77 | 'vlucas/phpdotenv' => 78 | array ( 79 | 'pretty_version' => 'v5.3.0', 80 | 'version' => '5.3.0.0', 81 | 'aliases' => 82 | array ( 83 | ), 84 | 'reference' => 'b3eac5c7ac896e52deab4a99068e3f4ab12d9e56', 85 | ), 86 | ), 87 | ); 88 | -------------------------------------------------------------------------------- /Backend/vendor/composer/platform_check.php: -------------------------------------------------------------------------------- 1 | = 70103)) { 8 | $issues[] = 'Your Composer dependencies require a PHP version ">= 7.1.3". You are running ' . PHP_VERSION . '.'; 9 | } 10 | 11 | if ($issues) { 12 | if (!headers_sent()) { 13 | header('HTTP/1.1 500 Internal Server Error'); 14 | } 15 | if (!ini_get('display_errors')) { 16 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 17 | fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); 18 | } elseif (!headers_sent()) { 19 | echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; 20 | } 21 | } 22 | trigger_error( 23 | 'Composer detected issues in your platform: ' . implode(' ', $issues), 24 | E_USER_ERROR 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /Backend/vendor/firebase/php-jwt/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011, Neuman Vong 2 | 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the following 13 | disclaimer in the documentation and/or other materials provided 14 | with the distribution. 15 | 16 | * Neither the name of Neuman Vong nor the names of other 17 | contributors may be used to endorse or promote products derived 18 | from this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Backend/vendor/firebase/php-jwt/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "firebase/php-jwt", 3 | "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", 4 | "homepage": "https://github.com/firebase/php-jwt", 5 | "keywords": [ 6 | "php", 7 | "jwt" 8 | ], 9 | "authors": [ 10 | { 11 | "name": "Neuman Vong", 12 | "email": "neuman+pear@twilio.com", 13 | "role": "Developer" 14 | }, 15 | { 16 | "name": "Anant Narayanan", 17 | "email": "anant@php.net", 18 | "role": "Developer" 19 | } 20 | ], 21 | "license": "BSD-3-Clause", 22 | "require": { 23 | "php": ">=5.3.0" 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "Firebase\\JWT\\": "src" 28 | } 29 | }, 30 | "require-dev": { 31 | "phpunit/phpunit": ">=4.8 <=9" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Backend/vendor/firebase/php-jwt/src/BeforeValidException.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | __construct 6 | 7 | 8 | 9 |

__construct

10 | __construct([string orientation [, string unit [, mixed size]]]) 11 |

Description

12 | This is the class constructor. It allows to set up the page size, the orientation and the 13 | unit of measure used in all methods (except for font sizes). 14 |

Parameters

15 |
16 |
orientation
17 |
18 | Default page orientation. Possible values are (case insensitive): 19 | 23 | Default value is P. 24 |
25 |
unit
26 |
27 | User unit. Possible values are: 28 | 34 | A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This 35 | is a very common unit in typography; font sizes are expressed in that unit. 36 |
37 |
38 | Default value is mm. 39 |
40 |
size
41 |
42 | The size used for pages. It can be either one of the following values (case insensitive): 43 | 50 | or an array containing the width and the height (expressed in the unit given by unit).
51 |
52 | Default value is A4. 53 |
54 |
55 |

Example

56 | Example with a custom 100x150 mm page size: 57 |
58 |
$pdf = new FPDF('P','mm',array(100,150));
59 |
60 |
61 |
Index
62 | 63 | 64 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/acceptpagebreak.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AcceptPageBreak 6 | 7 | 8 | 9 |

AcceptPageBreak

10 | boolean AcceptPageBreak() 11 |

Description

12 | Whenever a page break condition is met, the method is called, and the break is issued or not 13 | depending on the returned value. The default implementation returns a value according to the 14 | mode selected by SetAutoPageBreak(). 15 |
16 | This method is called automatically and should not be called directly by the application. 17 |

Example

18 | The method is overriden in an inherited class in order to obtain a 3 column layout: 19 |
20 |
class PDF extends FPDF
21 | {
22 | var $col = 0;
23 | 
24 | function SetCol($col)
25 | {
26 |     // Move position to a column
27 |     $this->col = $col;
28 |     $x = 10+$col*65;
29 |     $this->SetLeftMargin($x);
30 |     $this->SetX($x);
31 | }
32 | 
33 | function AcceptPageBreak()
34 | {
35 |     if($this->col<2)
36 |     {
37 |         // Go to next column
38 |         $this->SetCol($this->col+1);
39 |         $this->SetY(10);
40 |         return false;
41 |     }
42 |     else
43 |     {
44 |         // Go back to first column and issue page break
45 |         $this->SetCol(0);
46 |         return true;
47 |     }
48 | }
49 | }
50 | 
51 | $pdf = new PDF();
52 | $pdf->AddPage();
53 | $pdf->SetFont('Arial','',12);
54 | for($i=1;$i<=300;$i++)
55 |     $pdf->Cell(0,5,"Line $i",0,1);
56 | $pdf->Output();
57 |
58 |

See also

59 | SetAutoPageBreak 60 |
61 |
Index
62 | 63 | 64 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/addfont.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AddFont 6 | 7 | 8 | 9 |

AddFont

10 | AddFont(string family [, string style [, string file]]) 11 |

Description

12 | Imports a TrueType, OpenType or Type1 font and makes it available. It is necessary to generate a font 13 | definition file first with the MakeFont utility. 14 |
15 | The definition file (and the font file itself when embedding) must be present in the font directory. 16 | If it is not found, the error "Could not include font definition file" is raised. 17 |

Parameters

18 |
19 |
family
20 |
21 | Font family. The name can be chosen arbitrarily. If it is a standard family name, it will 22 | override the corresponding font. 23 |
24 |
style
25 |
26 | Font style. Possible values are (case insensitive): 27 | 33 | The default value is regular. 34 |
35 |
file
36 |
37 | The font definition file. 38 |
39 | By default, the name is built from the family and style, in lower case with no space. 40 |
41 |
42 |

Example

43 |
44 |
$pdf->AddFont('Comic','I');
45 |
46 | is equivalent to: 47 |
48 |
$pdf->AddFont('Comic','I','comici.php');
49 |
50 |

See also

51 | SetFont 52 |
53 |
Index
54 | 55 | 56 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/addlink.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AddLink 6 | 7 | 8 | 9 |

AddLink

10 | int AddLink() 11 |

Description

12 | Creates a new internal link and returns its identifier. An internal link is a clickable area 13 | which directs to another place within the document. 14 |
15 | The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is 16 | defined with SetLink(). 17 |

See also

18 | Cell, 19 | Write, 20 | Image, 21 | Link, 22 | SetLink 23 |
24 |
Index
25 | 26 | 27 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/addpage.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AddPage 6 | 7 | 8 | 9 |

AddPage

10 | AddPage([string orientation [, mixed size [, int rotation]]]) 11 |

Description

12 | Adds a new page to the document. If a page is already present, the Footer() method is called 13 | first to output the footer. Then the page is added, the current position set to the top-left 14 | corner according to the left and top margins, and Header() is called to display the header. 15 |
16 | The font which was set before calling is automatically restored. There is no need to call 17 | SetFont() again if you want to continue with the same font. The same is true for colors and 18 | line width. 19 |
20 | The origin of the coordinate system is at the top-left corner and increasing ordinates go 21 | downwards. 22 |

Parameters

23 |
24 |
orientation
25 |
26 | Page orientation. Possible values are (case insensitive): 27 | 31 | The default value is the one passed to the constructor. 32 |
33 |
size
34 |
35 | Page size. It can be either one of the following values (case insensitive): 36 | 43 | or an array containing the width and the height (expressed in user unit).
44 |
45 | The default value is the one passed to the constructor. 46 |
47 |
rotation
48 |
49 | Angle by which to rotate the page. It must be a multiple of 90; positive values 50 | mean clockwise rotation. The default value is 0. 51 |
52 |
53 |

See also

54 | __construct, 55 | Header, 56 | Footer, 57 | SetMargins 58 |
59 |
Index
60 | 61 | 62 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/aliasnbpages.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AliasNbPages 6 | 7 | 8 | 9 |

AliasNbPages

10 | AliasNbPages([string alias]) 11 |

Description

12 | Defines an alias for the total number of pages. It will be substituted as the document is 13 | closed. 14 |

Parameters

15 |
16 |
alias
17 |
18 | The alias. Default value: {nb}. 19 |
20 |
21 |

Example

22 |
23 |
class PDF extends FPDF
24 | {
25 | function Footer()
26 | {
27 |     // Go to 1.5 cm from bottom
28 |     $this->SetY(-15);
29 |     // Select Arial italic 8
30 |     $this->SetFont('Arial','I',8);
31 |     // Print current and total page numbers
32 |     $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
33 | }
34 | }
35 | 
36 | $pdf = new PDF();
37 | $pdf->AliasNbPages();
38 |
39 |

See also

40 | PageNo, 41 | Footer 42 |
43 |
Index
44 | 45 | 46 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/close.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Close 6 | 7 | 8 | 9 |

Close

10 | Close() 11 |

Description

12 | Terminates the PDF document. It is not necessary to call this method explicitly because Output() 13 | does it automatically. 14 |
15 | If the document contains no page, AddPage() is called to prevent from getting an invalid document. 16 |

See also

17 | Output 18 |
19 |
Index
20 | 21 | 22 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/error.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Error 6 | 7 | 8 | 9 |

Error

10 | Error(string msg) 11 |

Description

12 | This method is automatically called in case of a fatal error; it simply throws an exception 13 | with the provided message.
14 | An inherited class may override it to customize the error handling but the method should 15 | never return, otherwise the resulting document would probably be invalid. 16 |

Parameters

17 |
18 |
msg
19 |
20 | The error message. 21 |
22 |
23 |
24 |
Index
25 | 26 | 27 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/footer.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Footer 6 | 7 | 8 | 9 |

Footer

10 | Footer() 11 |

Description

12 | This method is used to render the page footer. It is automatically called by AddPage() and 13 | Close() and should not be called directly by the application. The implementation in FPDF is 14 | empty, so you have to subclass it and override the method if you want a specific processing. 15 |

Example

16 |
17 |
class PDF extends FPDF
18 | {
19 | function Footer()
20 | {
21 |     // Go to 1.5 cm from bottom
22 |     $this->SetY(-15);
23 |     // Select Arial italic 8
24 |     $this->SetFont('Arial','I',8);
25 |     // Print centered page number
26 |     $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
27 | }
28 | }
29 |
30 |

See also

31 | Header 32 |
33 |
Index
34 | 35 | 36 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/getpageheight.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetPageHeight 6 | 7 | 8 | 9 |

GetPageHeight

10 | float GetPageHeight() 11 |

Description

12 | Returns the current page height. 13 |

See also

14 | GetPageWidth 15 |
16 |
Index
17 | 18 | 19 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/getpagewidth.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetPageWidth 6 | 7 | 8 | 9 |

GetPageWidth

10 | float GetPageWidth() 11 |

Description

12 | Returns the current page width. 13 |

See also

14 | GetPageHeight 15 |
16 |
Index
17 | 18 | 19 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/getstringwidth.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetStringWidth 6 | 7 | 8 | 9 |

GetStringWidth

10 | float GetStringWidth(string s) 11 |

Description

12 | Returns the length of a string in user unit. A font must be selected. 13 |

Parameters

14 |
15 |
s
16 |
17 | The string whose length is to be computed. 18 |
19 |
20 |
21 |
Index
22 | 23 | 24 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/getx.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetX 6 | 7 | 8 | 9 |

GetX

10 | float GetX() 11 |

Description

12 | Returns the abscissa of the current position. 13 |

See also

14 | SetX, 15 | GetY, 16 | SetY 17 |
18 |
Index
19 | 20 | 21 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/gety.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GetY 6 | 7 | 8 | 9 |

GetY

10 | float GetY() 11 |

Description

12 | Returns the ordinate of the current position. 13 |

See also

14 | SetY, 15 | GetX, 16 | SetX 17 |
18 |
Index
19 | 20 | 21 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/header.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Header 6 | 7 | 8 | 9 |

Header

10 | Header() 11 |

Description

12 | This method is used to render the page header. It is automatically called by AddPage() and 13 | should not be called directly by the application. The implementation in FPDF is empty, so 14 | you have to subclass it and override the method if you want a specific processing. 15 |

Example

16 |
17 |
class PDF extends FPDF
18 | {
19 | function Header()
20 | {
21 |     // Select Arial bold 15
22 |     $this->SetFont('Arial','B',15);
23 |     // Move to the right
24 |     $this->Cell(80);
25 |     // Framed title
26 |     $this->Cell(30,10,'Title',1,0,'C');
27 |     // Line break
28 |     $this->Ln(20);
29 | }
30 | }
31 |
32 |

See also

33 | Footer 34 |
35 |
Index
36 | 37 | 38 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/line.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Line 6 | 7 | 8 | 9 |

Line

10 | Line(float x1, float y1, float x2, float y2) 11 |

Description

12 | Draws a line between two points. 13 |

Parameters

14 |
15 |
x1
16 |
17 | Abscissa of first point. 18 |
19 |
y1
20 |
21 | Ordinate of first point. 22 |
23 |
x2
24 |
25 | Abscissa of second point. 26 |
27 |
y2
28 |
29 | Ordinate of second point. 30 |
31 |
32 |

See also

33 | SetLineWidth, 34 | SetDrawColor 35 |
36 |
Index
37 | 38 | 39 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/link.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Link 6 | 7 | 8 | 9 |

Link

10 | Link(float x, float y, float w, float h, mixed link) 11 |

Description

12 | Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(), 13 | Write() or Image(), but this method can be useful for instance to define a clickable area inside 14 | an image. 15 |

Parameters

16 |
17 |
x
18 |
19 | Abscissa of the upper-left corner of the rectangle. 20 |
21 |
y
22 |
23 | Ordinate of the upper-left corner of the rectangle. 24 |
25 |
w
26 |
27 | Width of the rectangle. 28 |
29 |
h
30 |
31 | Height of the rectangle. 32 |
33 |
link
34 |
35 | URL or identifier returned by AddLink(). 36 |
37 |
38 |

See also

39 | AddLink, 40 | Cell, 41 | Write, 42 | Image 43 |
44 |
Index
45 | 46 | 47 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/ln.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ln 6 | 7 | 8 | 9 |

Ln

10 | Ln([float h]) 11 |

Description

12 | Performs a line break. The current abscissa goes back to the left margin and the ordinate 13 | increases by the amount passed in parameter. 14 |

Parameters

15 |
16 |
h
17 |
18 | The height of the break. 19 |
20 | By default, the value equals the height of the last printed cell. 21 |
22 |
23 |

See also

24 | Cell 25 |
26 |
Index
27 | 28 | 29 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/multicell.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MultiCell 6 | 7 | 8 | 9 |

MultiCell

10 | MultiCell(float w, float h, string txt [, mixed border [, string align [, boolean fill]]]) 11 |

Description

12 | This method allows printing text with line breaks. They can be automatic (as soon as the 13 | text reaches the right border of the cell) or explicit (via the \n character). As many cells 14 | as necessary are output, one below the other. 15 |
16 | Text can be aligned, centered or justified. The cell block can be framed and the background 17 | painted. 18 |

Parameters

19 |
20 |
w
21 |
22 | Width of cells. If 0, they extend up to the right margin of the page. 23 |
24 |
h
25 |
26 | Height of cells. 27 |
28 |
txt
29 |
30 | String to print. 31 |
32 |
border
33 |
34 | Indicates if borders must be drawn around the cell block. The value can be either a number: 35 | 39 | or a string containing some or all of the following characters (in any order): 40 | 46 | Default value: 0. 47 |
48 |
align
49 |
50 | Sets the text alignment. Possible values are: 51 | 57 |
58 |
fill
59 |
60 | Indicates if the cell background must be painted (true) or transparent (false). 61 | Default value: false. 62 |
63 |
64 |

See also

65 | SetFont, 66 | SetDrawColor, 67 | SetFillColor, 68 | SetTextColor, 69 | SetLineWidth, 70 | Cell, 71 | Write, 72 | SetAutoPageBreak 73 |
74 |
Index
75 | 76 | 77 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/output.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Output 6 | 7 | 8 | 9 |

Output

10 | string Output([string dest [, string name [, boolean isUTF8]]]) 11 |

Description

12 | Send the document to a given destination: browser, file or string. In the case of a browser, the 13 | PDF viewer may be used or a download may be forced. 14 |
15 | The method first calls Close() if necessary to terminate the document. 16 |

Parameters

17 |
18 |
dest
19 |
20 | Destination where to send the document. It can be one of the following: 21 | 27 | The default value is I. 28 |
29 |
name
30 |
31 | The name of the file. It is ignored in case of destination S.
32 | The default value is doc.pdf. 33 |
34 |
isUTF8
35 |
36 | Indicates if name is encoded in ISO-8859-1 (false) or UTF-8 (true). 37 | Only used for destinations I and D.
38 | The default value is false. 39 |
40 |
41 |

See also

42 | Close 43 |
44 |
Index
45 | 46 | 47 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/pageno.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PageNo 6 | 7 | 8 | 9 |

PageNo

10 | int PageNo() 11 |

Description

12 | Returns the current page number. 13 |

See also

14 | AliasNbPages 15 |
16 |
Index
17 | 18 | 19 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/rect.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Rect 6 | 7 | 8 | 9 |

Rect

10 | Rect(float x, float y, float w, float h [, string style]) 11 |

Description

12 | Outputs a rectangle. It can be drawn (border only), filled (with no border) or both. 13 |

Parameters

14 |
15 |
x
16 |
17 | Abscissa of upper-left corner. 18 |
19 |
y
20 |
21 | Ordinate of upper-left corner. 22 |
23 |
w
24 |
25 | Width. 26 |
27 |
h
28 |
29 | Height. 30 |
31 |
style
32 |
33 | Style of rendering. Possible values are: 34 | 39 |
40 |
41 |

See also

42 | SetLineWidth, 43 | SetDrawColor, 44 | SetFillColor 45 |
46 |
Index
47 | 48 | 49 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setauthor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetAuthor 6 | 7 | 8 | 9 |

SetAuthor

10 | SetAuthor(string author [, boolean isUTF8]) 11 |

Description

12 | Defines the author of the document. 13 |

Parameters

14 |
15 |
author
16 |
17 | The name of the author. 18 |
19 |
isUTF8
20 |
21 | Indicates if the string is encoded in ISO-8859-1 (false) or UTF-8 (true).
22 | Default value: false. 23 |
24 |
25 |

See also

26 | SetCreator, 27 | SetKeywords, 28 | SetSubject, 29 | SetTitle 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setautopagebreak.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetAutoPageBreak 6 | 7 | 8 | 9 |

SetAutoPageBreak

10 | SetAutoPageBreak(boolean auto [, float margin]) 11 |

Description

12 | Enables or disables the automatic page breaking mode. When enabling, the second parameter is 13 | the distance from the bottom of the page that defines the triggering limit. By default, the 14 | mode is on and the margin is 2 cm. 15 |

Parameters

16 |
17 |
auto
18 |
19 | Boolean indicating if mode should be on or off. 20 |
21 |
margin
22 |
23 | Distance from the bottom of the page. 24 |
25 |
26 |

See also

27 | Cell, 28 | MultiCell, 29 | AcceptPageBreak 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setcompression.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetCompression 6 | 7 | 8 | 9 |

SetCompression

10 | SetCompression(boolean compress) 11 |

Description

12 | Activates or deactivates page compression. When activated, the internal representation of 13 | each page is compressed, which leads to a compression ratio of about 2 for the resulting 14 | document. 15 |
16 | Compression is on by default. 17 |
18 |
19 | Note: the Zlib extension is required for this feature. If not present, compression 20 | will be turned off. 21 |

Parameters

22 |
23 |
compress
24 |
25 | Boolean indicating if compression must be enabled. 26 |
27 |
28 |
29 |
Index
30 | 31 | 32 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setcreator.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetCreator 6 | 7 | 8 | 9 |

SetCreator

10 | SetCreator(string creator [, boolean isUTF8]) 11 |

Description

12 | Defines the creator of the document. This is typically the name of the application that 13 | generates the PDF. 14 |

Parameters

15 |
16 |
creator
17 |
18 | The name of the creator. 19 |
20 |
isUTF8
21 |
22 | Indicates if the string is encoded in ISO-8859-1 (false) or UTF-8 (true).
23 | Default value: false. 24 |
25 |
26 |

See also

27 | SetAuthor, 28 | SetKeywords, 29 | SetSubject, 30 | SetTitle 31 |
32 |
Index
33 | 34 | 35 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setdisplaymode.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetDisplayMode 6 | 7 | 8 | 9 |

SetDisplayMode

10 | SetDisplayMode(mixed zoom [, string layout]) 11 |

Description

12 | Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be 13 | displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a 14 | specific zooming factor or use viewer default (configured in the Preferences menu of Adobe Reader). 15 | The page layout can be specified too: single at once, continuous display, two columns or viewer 16 | default. 17 |

Parameters

18 |
19 |
zoom
20 |
21 | The zoom to use. It can be one of the following string values: 22 | 28 | or a number indicating the zooming factor to use. 29 |
30 |
layout
31 |
32 | The page layout. Possible values are: 33 | 39 | Default value is default. 40 |
41 |
42 |
43 |
Index
44 | 45 | 46 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setdrawcolor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetDrawColor 6 | 7 | 8 | 9 |

SetDrawColor

10 | SetDrawColor(int r [, int g, int b]) 11 |

Description

12 | Defines the color used for all drawing operations (lines, rectangles and cell borders). It 13 | can be expressed in RGB components or gray scale. The method can be called before the first 14 | page is created and the value is retained from page to page. 15 |

Parameters

16 |
17 |
r
18 |
19 | If g et b are given, red component; if not, indicates the gray level. 20 | Value between 0 and 255. 21 |
22 |
g
23 |
24 | Green component (between 0 and 255). 25 |
26 |
b
27 |
28 | Blue component (between 0 and 255). 29 |
30 |
31 |

See also

32 | SetFillColor, 33 | SetTextColor, 34 | Line, 35 | Rect, 36 | Cell, 37 | MultiCell 38 |
39 |
Index
40 | 41 | 42 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setfillcolor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetFillColor 6 | 7 | 8 | 9 |

SetFillColor

10 | SetFillColor(int r [, int g, int b]) 11 |

Description

12 | Defines the color used for all filling operations (filled rectangles and cell backgrounds). 13 | It can be expressed in RGB components or gray scale. The method can be called before the first 14 | page is created and the value is retained from page to page. 15 |

Parameters

16 |
17 |
r
18 |
19 | If g and b are given, red component; if not, indicates the gray level. 20 | Value between 0 and 255. 21 |
22 |
g
23 |
24 | Green component (between 0 and 255). 25 |
26 |
b
27 |
28 | Blue component (between 0 and 255). 29 |
30 |
31 |

See also

32 | SetDrawColor, 33 | SetTextColor, 34 | Rect, 35 | Cell, 36 | MultiCell 37 |
38 |
Index
39 | 40 | 41 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setfontsize.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetFontSize 6 | 7 | 8 | 9 |

SetFontSize

10 | SetFontSize(float size) 11 |

Description

12 | Defines the size of the current font. 13 |

Parameters

14 |
15 |
size
16 |
17 | The size (in points). 18 |
19 |
20 |

See also

21 | SetFont 22 |
23 |
Index
24 | 25 | 26 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setkeywords.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetKeywords 6 | 7 | 8 | 9 |

SetKeywords

10 | SetKeywords(string keywords [, boolean isUTF8]) 11 |

Description

12 | Associates keywords with the document, generally in the form 'keyword1 keyword2 ...'. 13 |

Parameters

14 |
15 |
keywords
16 |
17 | The list of keywords. 18 |
19 |
isUTF8
20 |
21 | Indicates if the string is encoded in ISO-8859-1 (false) or UTF-8 (true).
22 | Default value: false. 23 |
24 |
25 |

See also

26 | SetAuthor, 27 | SetCreator, 28 | SetSubject, 29 | SetTitle 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setleftmargin.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetLeftMargin 6 | 7 | 8 | 9 |

SetLeftMargin

10 | SetLeftMargin(float margin) 11 |

Description

12 | Defines the left margin. The method can be called before creating the first page. 13 |
14 | If the current abscissa gets out of page, it is brought back to the margin. 15 |

Parameters

16 |
17 |
margin
18 |
19 | The margin. 20 |
21 |
22 |

See also

23 | SetTopMargin, 24 | SetRightMargin, 25 | SetAutoPageBreak, 26 | SetMargins 27 |
28 |
Index
29 | 30 | 31 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setlinewidth.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetLineWidth 6 | 7 | 8 | 9 |

SetLineWidth

10 | SetLineWidth(float width) 11 |

Description

12 | Defines the line width. By default, the value equals 0.2 mm. The method can be called before 13 | the first page is created and the value is retained from page to page. 14 |

Parameters

15 |
16 |
width
17 |
18 | The width. 19 |
20 |
21 |

See also

22 | Line, 23 | Rect, 24 | Cell, 25 | MultiCell 26 |
27 |
Index
28 | 29 | 30 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setlink.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetLink 6 | 7 | 8 | 9 |

SetLink

10 | SetLink(int link [, float y [, int page]]) 11 |

Description

12 | Defines the page and position a link points to. 13 |

Parameters

14 |
15 |
link
16 |
17 | The link identifier returned by AddLink(). 18 |
19 |
y
20 |
21 | Ordinate of target position; -1 indicates the current position. 22 | The default value is 0 (top of page). 23 |
24 |
page
25 |
26 | Number of target page; -1 indicates the current page. This is the default value. 27 |
28 |
29 |

See also

30 | AddLink 31 |
32 |
Index
33 | 34 | 35 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setmargins.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetMargins 6 | 7 | 8 | 9 |

SetMargins

10 | SetMargins(float left, float top [, float right]) 11 |

Description

12 | Defines the left, top and right margins. By default, they equal 1 cm. Call this method to change 13 | them. 14 |

Parameters

15 |
16 |
left
17 |
18 | Left margin. 19 |
20 |
top
21 |
22 | Top margin. 23 |
24 |
right
25 |
26 | Right margin. Default value is the left one. 27 |
28 |
29 |

See also

30 | SetLeftMargin, 31 | SetTopMargin, 32 | SetRightMargin, 33 | SetAutoPageBreak 34 |
35 |
Index
36 | 37 | 38 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setrightmargin.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetRightMargin 6 | 7 | 8 | 9 |

SetRightMargin

10 | SetRightMargin(float margin) 11 |

Description

12 | Defines the right margin. The method can be called before creating the first page. 13 |

Parameters

14 |
15 |
margin
16 |
17 | The margin. 18 |
19 |
20 |

See also

21 | SetLeftMargin, 22 | SetTopMargin, 23 | SetAutoPageBreak, 24 | SetMargins 25 |
26 |
Index
27 | 28 | 29 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setsubject.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetSubject 6 | 7 | 8 | 9 |

SetSubject

10 | SetSubject(string subject [, boolean isUTF8]) 11 |

Description

12 | Defines the subject of the document. 13 |

Parameters

14 |
15 |
subject
16 |
17 | The subject. 18 |
19 |
isUTF8
20 |
21 | Indicates if the string is encoded in ISO-8859-1 (false) or UTF-8 (true).
22 | Default value: false. 23 |
24 |
25 |

See also

26 | SetAuthor, 27 | SetCreator, 28 | SetKeywords, 29 | SetTitle 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/settextcolor.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetTextColor 6 | 7 | 8 | 9 |

SetTextColor

10 | SetTextColor(int r [, int g, int b]) 11 |

Description

12 | Defines the color used for text. It can be expressed in RGB components or gray scale. The 13 | method can be called before the first page is created and the value is retained from page to 14 | page. 15 |

Parameters

16 |
17 |
r
18 |
19 | If g et b are given, red component; if not, indicates the gray level. 20 | Value between 0 and 255. 21 |
22 |
g
23 |
24 | Green component (between 0 and 255). 25 |
26 |
b
27 |
28 | Blue component (between 0 and 255). 29 |
30 |
31 |

See also

32 | SetDrawColor, 33 | SetFillColor, 34 | Text, 35 | Cell, 36 | MultiCell 37 |
38 |
Index
39 | 40 | 41 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/settitle.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetTitle 6 | 7 | 8 | 9 |

SetTitle

10 | SetTitle(string title [, boolean isUTF8]) 11 |

Description

12 | Defines the title of the document. 13 |

Parameters

14 |
15 |
title
16 |
17 | The title. 18 |
19 |
isUTF8
20 |
21 | Indicates if the string is encoded in ISO-8859-1 (false) or UTF-8 (true).
22 | Default value: false. 23 |
24 |
25 |

See also

26 | SetAuthor, 27 | SetCreator, 28 | SetKeywords, 29 | SetSubject 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/settopmargin.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetTopMargin 6 | 7 | 8 | 9 |

SetTopMargin

10 | SetTopMargin(float margin) 11 |

Description

12 | Defines the top margin. The method can be called before creating the first page. 13 |

Parameters

14 |
15 |
margin
16 |
17 | The margin. 18 |
19 |
20 |

See also

21 | SetLeftMargin, 22 | SetRightMargin, 23 | SetAutoPageBreak, 24 | SetMargins 25 |
26 |
Index
27 | 28 | 29 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setx.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetX 6 | 7 | 8 | 9 |

SetX

10 | SetX(float x) 11 |

Description

12 | Defines the abscissa of the current position. If the passed value is negative, it is relative 13 | to the right of the page. 14 |

Parameters

15 |
16 |
x
17 |
18 | The value of the abscissa. 19 |
20 |
21 |

See also

22 | GetX, 23 | GetY, 24 | SetY, 25 | SetXY 26 |
27 |
Index
28 | 29 | 30 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/setxy.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetXY 6 | 7 | 8 | 9 |

SetXY

10 | SetXY(float x, float y) 11 |

Description

12 | Defines the abscissa and ordinate of the current position. If the passed values are negative, 13 | they are relative respectively to the right and bottom of the page. 14 |

Parameters

15 |
16 |
x
17 |
18 | The value of the abscissa. 19 |
20 |
y
21 |
22 | The value of the ordinate. 23 |
24 |
25 |

See also

26 | SetX, 27 | SetY 28 |
29 |
Index
30 | 31 | 32 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/sety.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SetY 6 | 7 | 8 | 9 |

SetY

10 | SetY(float y [, boolean resetX]) 11 |

Description

12 | Sets the ordinate and optionally moves the current abscissa back to the left margin. If the value 13 | is negative, it is relative to the bottom of the page. 14 |

Parameters

15 |
16 |
y
17 |
18 | The value of the ordinate. 19 |
20 |
resetX
21 |
22 | Whether to reset the abscissa. Default value: true. 23 |
24 |
25 |

See also

26 | GetX, 27 | GetY, 28 | SetX, 29 | SetXY 30 |
31 |
Index
32 | 33 | 34 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/text.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Text 6 | 7 | 8 | 9 |

Text

10 | Text(float x, float y, string txt) 11 |

Description

12 | Prints a character string. The origin is on the left of the first character, on the baseline. 13 | This method allows to place a string precisely on the page, but it is usually easier to use 14 | Cell(), MultiCell() or Write() which are the standard methods to print text. 15 |

Parameters

16 |
17 |
x
18 |
19 | Abscissa of the origin. 20 |
21 |
y
22 |
23 | Ordinate of the origin. 24 |
25 |
txt
26 |
27 | String to print. 28 |
29 |
30 |

See also

31 | SetFont, 32 | SetTextColor, 33 | Cell, 34 | MultiCell, 35 | Write 36 |
37 |
Index
38 | 39 | 40 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/doc/write.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Write 6 | 7 | 8 | 9 |

Write

10 | Write(float h, string txt [, mixed link]) 11 |

Description

12 | This method prints text from the current position. When the right margin is reached (or the \n 13 | character is met) a line break occurs and text continues from the left margin. Upon method exit, 14 | the current position is left just at the end of the text. 15 |
16 | It is possible to put a link on the text. 17 |

Parameters

18 |
19 |
h
20 |
21 | Line height. 22 |
23 |
txt
24 |
25 | String to print. 26 |
27 |
link
28 |
29 | URL or identifier returned by AddLink(). 30 |
31 |
32 |

Example

33 |
34 |
// Begin with regular font
35 | $pdf->SetFont('Arial','',14);
36 | $pdf->Write(5,'Visit ');
37 | // Then put a blue underlined link
38 | $pdf->SetTextColor(0,0,255);
39 | $pdf->SetFont('','U');
40 | $pdf->Write(5,'www.fpdf.org','http://www.fpdf.org');
41 |
42 |

See also

43 | SetFont, 44 | SetTextColor, 45 | AddLink, 46 | MultiCell, 47 | SetAutoPageBreak 48 |
49 |
Index
50 | 51 | 52 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/font/courier.php: -------------------------------------------------------------------------------- 1 | array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); 10 | ?> 11 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/font/courierb.php: -------------------------------------------------------------------------------- 1 | array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); 10 | ?> 11 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/font/courierbi.php: -------------------------------------------------------------------------------- 1 | array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); 10 | ?> 11 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/font/courieri.php: -------------------------------------------------------------------------------- 1 | array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); 10 | ?> 11 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/fpdf.css: -------------------------------------------------------------------------------- 1 | body {font-family:"Times New Roman",serif} 2 | h1 {font:bold 135% Arial,sans-serif; color:#4000A0; margin-bottom:0.9em} 3 | h2 {font:bold 95% Arial,sans-serif; color:#900000; margin-top:1.5em; margin-bottom:1em} 4 | dl.param dt {text-decoration:underline} 5 | dl.param dd {margin-top:1em; margin-bottom:1em} 6 | dl.param ul {margin-top:1em; margin-bottom:1em} 7 | tt, code, kbd {font-family:"Courier New",Courier,monospace; font-size:82%} 8 | div.source {margin-top:1.4em; margin-bottom:1.3em} 9 | div.source pre {display:table; border:1px solid #24246A; width:100%; margin:0em; font-family:inherit; font-size:100%} 10 | div.source code {display:block; border:1px solid #C5C5EC; background-color:#F0F5FF; padding:6px; color:#000000} 11 | div.doc-source {margin-top:1.4em; margin-bottom:1.3em} 12 | div.doc-source pre {display:table; width:100%; margin:0em; font-family:inherit; font-size:100%} 13 | div.doc-source code {display:block; background-color:#E0E0E0; padding:4px} 14 | .kw {color:#000080; font-weight:bold} 15 | .str {color:#CC0000} 16 | .cmt {color:#008000} 17 | p.demo {text-align:center; margin-top:-0.9em} 18 | a.demo {text-decoration:none; font-weight:bold; color:#0000CC} 19 | a.demo:link {text-decoration:none; font-weight:bold; color:#0000CC} 20 | a.demo:hover {text-decoration:none; font-weight:bold; color:#0000FF} 21 | a.demo:active {text-decoration:none; font-weight:bold; color:#0000FF} 22 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/install.txt: -------------------------------------------------------------------------------- 1 | The FPDF library is made up of the following elements: 2 | 3 | - the main file, fpdf.php, which contains the class 4 | - the font definition files located in the font directory 5 | 6 | The font definition files are necessary as soon as you want to output some text in a document. 7 | If they are not accessible, the SetFont() method will produce the following error: 8 | 9 | FPDF error: Could not include font definition file 10 | 11 | 12 | Remarks: 13 | 14 | - Only the files corresponding to the fonts actually used are necessary 15 | - The tutorials provided in this package are ready to be executed 16 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/license.txt: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person obtaining a copy 2 | of this software to use, copy, modify, distribute, sublicense, and/or sell 3 | copies of the software, and to permit persons to whom the software is furnished 4 | to do so. 5 | 6 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/20k_c1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/Backend/vendor/fpdf/tutorial/20k_c1.txt -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/calligra.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/Backend/vendor/fpdf/tutorial/calligra.ttf -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/calligra.z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/Backend/vendor/fpdf/tutorial/calligra.z -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/countries.txt: -------------------------------------------------------------------------------- 1 | Austria;Vienna;83859;8075 2 | Belgium;Brussels;30518;10192 3 | Denmark;Copenhagen;43094;5295 4 | Finland;Helsinki;304529;5147 5 | France;Paris;543965;58728 6 | Germany;Berlin;357022;82057 7 | Greece;Athens;131625;10511 8 | Ireland;Dublin;70723;3694 9 | Italy;Roma;301316;57563 10 | Luxembourg;Luxembourg;2586;424 11 | Netherlands;Amsterdam;41526;15654 12 | Portugal;Lisbon;91906;9957 13 | Spain;Madrid;504790;39348 14 | Sweden;Stockholm;410934;8839 15 | United Kingdom;London;243820;58862 16 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Tutorials 6 | 7 | 8 | 9 |

Tutorials

10 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/Backend/vendor/fpdf/tutorial/logo.png -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/makefont.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto1.php: -------------------------------------------------------------------------------- 1 | AddPage(); 6 | $pdf->SetFont('Arial','B',16); 7 | $pdf->Cell(40,10,'Hello World!'); 8 | $pdf->Output(); 9 | ?> 10 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto2.php: -------------------------------------------------------------------------------- 1 | Image('logo.png',10,6,30); 11 | // Arial bold 15 12 | $this->SetFont('Arial','B',15); 13 | // Move to the right 14 | $this->Cell(80); 15 | // Title 16 | $this->Cell(30,10,'Title',1,0,'C'); 17 | // Line break 18 | $this->Ln(20); 19 | } 20 | 21 | // Page footer 22 | function Footer() 23 | { 24 | // Position at 1.5 cm from bottom 25 | $this->SetY(-15); 26 | // Arial italic 8 27 | $this->SetFont('Arial','I',8); 28 | // Page number 29 | $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); 30 | } 31 | } 32 | 33 | // Instanciation of inherited class 34 | $pdf = new PDF(); 35 | $pdf->AliasNbPages(); 36 | $pdf->AddPage(); 37 | $pdf->SetFont('Times','',12); 38 | for($i=1;$i<=40;$i++) 39 | $pdf->Cell(0,10,'Printing line number '.$i,0,1); 40 | $pdf->Output(); 41 | ?> 42 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto3.php: -------------------------------------------------------------------------------- 1 | SetFont('Arial','B',15); 12 | // Calculate width of title and position 13 | $w = $this->GetStringWidth($title)+6; 14 | $this->SetX((210-$w)/2); 15 | // Colors of frame, background and text 16 | $this->SetDrawColor(0,80,180); 17 | $this->SetFillColor(230,230,0); 18 | $this->SetTextColor(220,50,50); 19 | // Thickness of frame (1 mm) 20 | $this->SetLineWidth(1); 21 | // Title 22 | $this->Cell($w,9,$title,1,1,'C',true); 23 | // Line break 24 | $this->Ln(10); 25 | } 26 | 27 | function Footer() 28 | { 29 | // Position at 1.5 cm from bottom 30 | $this->SetY(-15); 31 | // Arial italic 8 32 | $this->SetFont('Arial','I',8); 33 | // Text color in gray 34 | $this->SetTextColor(128); 35 | // Page number 36 | $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); 37 | } 38 | 39 | function ChapterTitle($num, $label) 40 | { 41 | // Arial 12 42 | $this->SetFont('Arial','',12); 43 | // Background color 44 | $this->SetFillColor(200,220,255); 45 | // Title 46 | $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true); 47 | // Line break 48 | $this->Ln(4); 49 | } 50 | 51 | function ChapterBody($file) 52 | { 53 | // Read text file 54 | $txt = file_get_contents($file); 55 | // Times 12 56 | $this->SetFont('Times','',12); 57 | // Output justified text 58 | $this->MultiCell(0,5,$txt); 59 | // Line break 60 | $this->Ln(); 61 | // Mention in italics 62 | $this->SetFont('','I'); 63 | $this->Cell(0,5,'(end of excerpt)'); 64 | } 65 | 66 | function PrintChapter($num, $title, $file) 67 | { 68 | $this->AddPage(); 69 | $this->ChapterTitle($num,$title); 70 | $this->ChapterBody($file); 71 | } 72 | } 73 | 74 | $pdf = new PDF(); 75 | $title = '20000 Leagues Under the Seas'; 76 | $pdf->SetTitle($title); 77 | $pdf->SetAuthor('Jules Verne'); 78 | $pdf->PrintChapter(1,'A RUNAWAY REEF','20k_c1.txt'); 79 | $pdf->PrintChapter(2,'THE PROS AND CONS','20k_c2.txt'); 80 | $pdf->Output(); 81 | ?> 82 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto4.php: -------------------------------------------------------------------------------- 1 | SetFont('Arial','B',15); 15 | $w = $this->GetStringWidth($title)+6; 16 | $this->SetX((210-$w)/2); 17 | $this->SetDrawColor(0,80,180); 18 | $this->SetFillColor(230,230,0); 19 | $this->SetTextColor(220,50,50); 20 | $this->SetLineWidth(1); 21 | $this->Cell($w,9,$title,1,1,'C',true); 22 | $this->Ln(10); 23 | // Save ordinate 24 | $this->y0 = $this->GetY(); 25 | } 26 | 27 | function Footer() 28 | { 29 | // Page footer 30 | $this->SetY(-15); 31 | $this->SetFont('Arial','I',8); 32 | $this->SetTextColor(128); 33 | $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); 34 | } 35 | 36 | function SetCol($col) 37 | { 38 | // Set position at a given column 39 | $this->col = $col; 40 | $x = 10+$col*65; 41 | $this->SetLeftMargin($x); 42 | $this->SetX($x); 43 | } 44 | 45 | function AcceptPageBreak() 46 | { 47 | // Method accepting or not automatic page break 48 | if($this->col<2) 49 | { 50 | // Go to next column 51 | $this->SetCol($this->col+1); 52 | // Set ordinate to top 53 | $this->SetY($this->y0); 54 | // Keep on page 55 | return false; 56 | } 57 | else 58 | { 59 | // Go back to first column 60 | $this->SetCol(0); 61 | // Page break 62 | return true; 63 | } 64 | } 65 | 66 | function ChapterTitle($num, $label) 67 | { 68 | // Title 69 | $this->SetFont('Arial','',12); 70 | $this->SetFillColor(200,220,255); 71 | $this->Cell(0,6,"Chapter $num : $label",0,1,'L',true); 72 | $this->Ln(4); 73 | // Save ordinate 74 | $this->y0 = $this->GetY(); 75 | } 76 | 77 | function ChapterBody($file) 78 | { 79 | // Read text file 80 | $txt = file_get_contents($file); 81 | // Font 82 | $this->SetFont('Times','',12); 83 | // Output text in a 6 cm width column 84 | $this->MultiCell(60,5,$txt); 85 | $this->Ln(); 86 | // Mention 87 | $this->SetFont('','I'); 88 | $this->Cell(0,5,'(end of excerpt)'); 89 | // Go back to first column 90 | $this->SetCol(0); 91 | } 92 | 93 | function PrintChapter($num, $title, $file) 94 | { 95 | // Add chapter 96 | $this->AddPage(); 97 | $this->ChapterTitle($num,$title); 98 | $this->ChapterBody($file); 99 | } 100 | } 101 | 102 | $pdf = new PDF(); 103 | $title = '20000 Leagues Under the Seas'; 104 | $pdf->SetTitle($title); 105 | $pdf->SetAuthor('Jules Verne'); 106 | $pdf->PrintChapter(1,'A RUNAWAY REEF','20k_c1.txt'); 107 | $pdf->PrintChapter(2,'THE PROS AND CONS','20k_c2.txt'); 108 | $pdf->Output(); 109 | ?> 110 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto5.php: -------------------------------------------------------------------------------- 1 | Cell(40,7,$col,1); 23 | $this->Ln(); 24 | // Data 25 | foreach($data as $row) 26 | { 27 | foreach($row as $col) 28 | $this->Cell(40,6,$col,1); 29 | $this->Ln(); 30 | } 31 | } 32 | 33 | // Better table 34 | function ImprovedTable($header, $data) 35 | { 36 | // Column widths 37 | $w = array(40, 35, 40, 45); 38 | // Header 39 | for($i=0;$iCell($w[$i],7,$header[$i],1,0,'C'); 41 | $this->Ln(); 42 | // Data 43 | foreach($data as $row) 44 | { 45 | $this->Cell($w[0],6,$row[0],'LR'); 46 | $this->Cell($w[1],6,$row[1],'LR'); 47 | $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R'); 48 | $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R'); 49 | $this->Ln(); 50 | } 51 | // Closing line 52 | $this->Cell(array_sum($w),0,'','T'); 53 | } 54 | 55 | // Colored table 56 | function FancyTable($header, $data) 57 | { 58 | // Colors, line width and bold font 59 | $this->SetFillColor(255,0,0); 60 | $this->SetTextColor(255); 61 | $this->SetDrawColor(128,0,0); 62 | $this->SetLineWidth(.3); 63 | $this->SetFont('','B'); 64 | // Header 65 | $w = array(40, 35, 40, 45); 66 | for($i=0;$iCell($w[$i],7,$header[$i],1,0,'C',true); 68 | $this->Ln(); 69 | // Color and font restoration 70 | $this->SetFillColor(224,235,255); 71 | $this->SetTextColor(0); 72 | $this->SetFont(''); 73 | // Data 74 | $fill = false; 75 | foreach($data as $row) 76 | { 77 | $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill); 78 | $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill); 79 | $this->Cell($w[2],6,number_format($row[2]),'LR',0,'R',$fill); 80 | $this->Cell($w[3],6,number_format($row[3]),'LR',0,'R',$fill); 81 | $this->Ln(); 82 | $fill = !$fill; 83 | } 84 | // Closing line 85 | $this->Cell(array_sum($w),0,'','T'); 86 | } 87 | } 88 | 89 | $pdf = new PDF(); 90 | // Column headings 91 | $header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)'); 92 | // Data loading 93 | $data = $pdf->LoadData('countries.txt'); 94 | $pdf->SetFont('Arial','',14); 95 | $pdf->AddPage(); 96 | $pdf->BasicTable($header,$data); 97 | $pdf->AddPage(); 98 | $pdf->ImprovedTable($header,$data); 99 | $pdf->AddPage(); 100 | $pdf->FancyTable($header,$data); 101 | $pdf->Output(); 102 | ?> 103 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto6.php: -------------------------------------------------------------------------------- 1 | /U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); 16 | foreach($a as $i=>$e) 17 | { 18 | if($i%2==0) 19 | { 20 | // Text 21 | if($this->HREF) 22 | $this->PutLink($this->HREF,$e); 23 | else 24 | $this->Write(5,$e); 25 | } 26 | else 27 | { 28 | // Tag 29 | if($e[0]=='/') 30 | $this->CloseTag(strtoupper(substr($e,1))); 31 | else 32 | { 33 | // Extract attributes 34 | $a2 = explode(' ',$e); 35 | $tag = strtoupper(array_shift($a2)); 36 | $attr = array(); 37 | foreach($a2 as $v) 38 | { 39 | if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3)) 40 | $attr[strtoupper($a3[1])] = $a3[2]; 41 | } 42 | $this->OpenTag($tag,$attr); 43 | } 44 | } 45 | } 46 | } 47 | 48 | function OpenTag($tag, $attr) 49 | { 50 | // Opening tag 51 | if($tag=='B' || $tag=='I' || $tag=='U') 52 | $this->SetStyle($tag,true); 53 | if($tag=='A') 54 | $this->HREF = $attr['HREF']; 55 | if($tag=='BR') 56 | $this->Ln(5); 57 | } 58 | 59 | function CloseTag($tag) 60 | { 61 | // Closing tag 62 | if($tag=='B' || $tag=='I' || $tag=='U') 63 | $this->SetStyle($tag,false); 64 | if($tag=='A') 65 | $this->HREF = ''; 66 | } 67 | 68 | function SetStyle($tag, $enable) 69 | { 70 | // Modify style and select corresponding font 71 | $this->$tag += ($enable ? 1 : -1); 72 | $style = ''; 73 | foreach(array('B', 'I', 'U') as $s) 74 | { 75 | if($this->$s>0) 76 | $style .= $s; 77 | } 78 | $this->SetFont('',$style); 79 | } 80 | 81 | function PutLink($URL, $txt) 82 | { 83 | // Put a hyperlink 84 | $this->SetTextColor(0,0,255); 85 | $this->SetStyle('U',true); 86 | $this->Write(5,$txt,$URL); 87 | $this->SetStyle('U',false); 88 | $this->SetTextColor(0); 89 | } 90 | } 91 | 92 | $html = 'You can now easily print text mixing different styles: bold, italic, 93 | underlined, or all at once!

You can also insert links on 94 | text, such as www.fpdf.org, or on an image: click on the logo.'; 95 | 96 | $pdf = new PDF(); 97 | // First page 98 | $pdf->AddPage(); 99 | $pdf->SetFont('Arial','',20); 100 | $pdf->Write(5,"To find out what's new in this tutorial, click "); 101 | $pdf->SetFont('','U'); 102 | $link = $pdf->AddLink(); 103 | $pdf->Write(5,'here',$link); 104 | $pdf->SetFont(''); 105 | // Second page 106 | $pdf->AddPage(); 107 | $pdf->SetLink($link); 108 | $pdf->Image('logo.png',10,12,30,0,'','http://www.fpdf.org'); 109 | $pdf->SetLeftMargin(45); 110 | $pdf->SetFontSize(14); 111 | $pdf->WriteHTML($html); 112 | $pdf->Output(); 113 | ?> 114 | -------------------------------------------------------------------------------- /Backend/vendor/fpdf/tutorial/tuto7.php: -------------------------------------------------------------------------------- 1 | AddFont('Calligrapher','','calligra.php'); 7 | $pdf->AddPage(); 8 | $pdf->SetFont('Calligrapher','',35); 9 | $pdf->Cell(0,10,'Enjoy new fonts with FPDF!'); 10 | $pdf->Output(); 11 | ?> 12 | -------------------------------------------------------------------------------- /Backend/vendor/graham-campbell/result-type/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Graham Campbell 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Backend/vendor/graham-campbell/result-type/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "graham-campbell/result-type", 3 | "description": "An Implementation Of The Result Type", 4 | "keywords": ["result", "result-type", "Result", "Result Type", "Result-Type", "Graham Campbell", "GrahamCampbell"], 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Graham Campbell", 9 | "email": "graham@alt-three.com" 10 | } 11 | ], 12 | "require": { 13 | "php": "^7.0|^8.0", 14 | "phpoption/phpoption": "^1.7.3" 15 | }, 16 | "require-dev": { 17 | "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" 18 | }, 19 | "autoload": { 20 | "psr-4": { 21 | "GrahamCampbell\\ResultType\\": "src/" 22 | } 23 | }, 24 | "autoload-dev": { 25 | "psr-4": { 26 | "GrahamCampbell\\Tests\\ResultType\\": "tests/" 27 | } 28 | }, 29 | "config": { 30 | "preferred-install": "dist" 31 | }, 32 | "extra": { 33 | "branch-alias": { 34 | "dev-master": "1.0-dev" 35 | } 36 | }, 37 | "minimum-stability": "dev", 38 | "prefer-stable": true 39 | } 40 | -------------------------------------------------------------------------------- /Backend/vendor/graham-campbell/result-type/src/Error.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace GrahamCampbell\ResultType; 15 | 16 | use PhpOption\None; 17 | use PhpOption\Some; 18 | 19 | /** 20 | * @template T 21 | * @template E 22 | * @extends \GrahamCampbell\ResultType\Result 23 | */ 24 | final class Error extends Result 25 | { 26 | /** 27 | * @var E 28 | */ 29 | private $value; 30 | 31 | /** 32 | * Internal constructor for an error value. 33 | * 34 | * @param E $value 35 | * 36 | * @return void 37 | */ 38 | private function __construct($value) 39 | { 40 | $this->value = $value; 41 | } 42 | 43 | /** 44 | * Create a new error value. 45 | * 46 | * @template F 47 | * 48 | * @param F $value 49 | * 50 | * @return \GrahamCampbell\ResultType\Result 51 | */ 52 | public static function create($value) 53 | { 54 | return new self($value); 55 | } 56 | 57 | /** 58 | * Get the success option value. 59 | * 60 | * @return \PhpOption\Option 61 | */ 62 | public function success() 63 | { 64 | return None::create(); 65 | } 66 | 67 | /** 68 | * Map over the success value. 69 | * 70 | * @template S 71 | * 72 | * @param callable(T):S $f 73 | * 74 | * @return \GrahamCampbell\ResultType\Result 75 | */ 76 | public function map(callable $f) 77 | { 78 | return self::create($this->value); 79 | } 80 | 81 | /** 82 | * Flat map over the success value. 83 | * 84 | * @template S 85 | * @template F 86 | * 87 | * @param callable(T):\GrahamCampbell\ResultType\Result $f 88 | * 89 | * @return \GrahamCampbell\ResultType\Result 90 | */ 91 | public function flatMap(callable $f) 92 | { 93 | /** @var \GrahamCampbell\ResultType\Result */ 94 | return self::create($this->value); 95 | } 96 | 97 | /** 98 | * Get the error option value. 99 | * 100 | * @return \PhpOption\Option 101 | */ 102 | public function error() 103 | { 104 | return Some::create($this->value); 105 | } 106 | 107 | /** 108 | * Map over the error value. 109 | * 110 | * @template F 111 | * 112 | * @param callable(E):F $f 113 | * 114 | * @return \GrahamCampbell\ResultType\Result 115 | */ 116 | public function mapError(callable $f) 117 | { 118 | return self::create($f($this->value)); 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /Backend/vendor/graham-campbell/result-type/src/Result.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace GrahamCampbell\ResultType; 15 | 16 | /** 17 | * @template T 18 | * @template E 19 | */ 20 | abstract class Result 21 | { 22 | /** 23 | * Get the success option value. 24 | * 25 | * @return \PhpOption\Option 26 | */ 27 | abstract public function success(); 28 | 29 | /** 30 | * Map over the success value. 31 | * 32 | * @template S 33 | * 34 | * @param callable(T):S $f 35 | * 36 | * @return \GrahamCampbell\ResultType\Result 37 | */ 38 | abstract public function map(callable $f); 39 | 40 | /** 41 | * Flat map over the success value. 42 | * 43 | * @template S 44 | * @template F 45 | * 46 | * @param callable(T):\GrahamCampbell\ResultType\Result $f 47 | * 48 | * @return \GrahamCampbell\ResultType\Result 49 | */ 50 | abstract public function flatMap(callable $f); 51 | 52 | /** 53 | * Get the error option value. 54 | * 55 | * @return \PhpOption\Option 56 | */ 57 | abstract public function error(); 58 | 59 | /** 60 | * Map over the error value. 61 | * 62 | * @template F 63 | * 64 | * @param callable(E):F $f 65 | * 66 | * @return \GrahamCampbell\ResultType\Result 67 | */ 68 | abstract public function mapError(callable $f); 69 | } 70 | -------------------------------------------------------------------------------- /Backend/vendor/graham-campbell/result-type/src/Success.php: -------------------------------------------------------------------------------- 1 | 9 | * 10 | * For the full copyright and license information, please view the LICENSE 11 | * file that was distributed with this source code. 12 | */ 13 | 14 | namespace GrahamCampbell\ResultType; 15 | 16 | use PhpOption\None; 17 | use PhpOption\Some; 18 | 19 | /** 20 | * @template T 21 | * @template E 22 | * @extends \GrahamCampbell\ResultType\Result 23 | */ 24 | final class Success extends Result 25 | { 26 | /** 27 | * @var T 28 | */ 29 | private $value; 30 | 31 | /** 32 | * Internal constructor for a success value. 33 | * 34 | * @param T $value 35 | * 36 | * @return void 37 | */ 38 | private function __construct($value) 39 | { 40 | $this->value = $value; 41 | } 42 | 43 | /** 44 | * Create a new error value. 45 | * 46 | * @template S 47 | * 48 | * @param S $value 49 | * 50 | * @return \GrahamCampbell\ResultType\Result 51 | */ 52 | public static function create($value) 53 | { 54 | return new self($value); 55 | } 56 | 57 | /** 58 | * Get the success option value. 59 | * 60 | * @return \PhpOption\Option 61 | */ 62 | public function success() 63 | { 64 | return Some::create($this->value); 65 | } 66 | 67 | /** 68 | * Map over the success value. 69 | * 70 | * @template S 71 | * 72 | * @param callable(T):S $f 73 | * 74 | * @return \GrahamCampbell\ResultType\Result 75 | */ 76 | public function map(callable $f) 77 | { 78 | return self::create($f($this->value)); 79 | } 80 | 81 | /** 82 | * Flat map over the success value. 83 | * 84 | * @template S 85 | * @template F 86 | * 87 | * @param callable(T):\GrahamCampbell\ResultType\Result $f 88 | * 89 | * @return \GrahamCampbell\ResultType\Result 90 | */ 91 | public function flatMap(callable $f) 92 | { 93 | return $f($this->value); 94 | } 95 | 96 | /** 97 | * Get the error option value. 98 | * 99 | * @return \PhpOption\Option 100 | */ 101 | public function error() 102 | { 103 | return None::create(); 104 | } 105 | 106 | /** 107 | * Map over the error value. 108 | * 109 | * @template F 110 | * 111 | * @param callable(E):F $f 112 | * 113 | * @return \GrahamCampbell\ResultType\Result 114 | */ 115 | public function mapError(callable $f) 116 | { 117 | return self::create($this->value); 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /Backend/vendor/phpoption/phpoption/Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | @docker run -it -w /data -v ${PWD}:/data:delegated -v ~/.composer:/root/.composer:delegated --entrypoint composer --rm registry.gitlab.com/grahamcampbell/php:7.4-base update 3 | @docker run -it -w /data -v ${PWD}:/data:delegated -v ~/.composer:/root/.composer:delegated --entrypoint composer --rm registry.gitlab.com/grahamcampbell/php:7.4-base bin all update 4 | 5 | phpunit: 6 | @rm -f bootstrap/cache/*.php && docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/phpunit --rm registry.gitlab.com/grahamcampbell/php:7.4-cli 7 | 8 | phpstan-analyze-src: 9 | @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/phpstan --rm registry.gitlab.com/grahamcampbell/php:7.4-cli analyze src -c phpstan.src.neon.dist 10 | 11 | phpstan-analyze-tests: 12 | @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/phpstan --rm registry.gitlab.com/grahamcampbell/php:7.4-cli analyze tests -c phpstan.tests.neon.dist 13 | 14 | psalm-analyze: 15 | @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm --rm registry.gitlab.com/grahamcampbell/php:7.4-cli 16 | 17 | psalm-show-info: 18 | @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm --rm registry.gitlab.com/grahamcampbell/php:7.4-cli --show-info=true 19 | 20 | test: phpunit phpstan-analyze-src phpstan-analyze-tests psalm-analyze 21 | 22 | clean: 23 | @rm -rf .phpunit.result.cache composer.lock vendor vendor-bin/*/composer.lock vendor-bin/*/vendor 24 | -------------------------------------------------------------------------------- /Backend/vendor/phpoption/phpoption/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phpoption/phpoption", 3 | "description": "Option Type for PHP", 4 | "keywords": ["php", "option", "language", "type"], 5 | "license": "Apache-2.0", 6 | "authors": [ 7 | { 8 | "name": "Johannes M. Schmitt", 9 | "email": "schmittjoh@gmail.com" 10 | }, 11 | { 12 | "name": "Graham Campbell", 13 | "email": "graham@alt-three.com" 14 | } 15 | ], 16 | "require": { 17 | "php": "^5.5.9 || ^7.0 || ^8.0" 18 | }, 19 | "require-dev": { 20 | "bamarni/composer-bin-plugin": "^1.4.1", 21 | "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" 22 | }, 23 | "autoload": { 24 | "psr-4": { 25 | "PhpOption\\": "src/PhpOption/" 26 | } 27 | }, 28 | "autoload-dev": { 29 | "psr-4": { 30 | "PhpOption\\Tests\\": "tests/PhpOption/Tests/" 31 | } 32 | }, 33 | "config": { 34 | "preferred-install": "dist" 35 | }, 36 | "extra": { 37 | "branch-alias": { 38 | "dev-master": "1.7-dev" 39 | } 40 | }, 41 | "minimum-stability": "dev", 42 | "prefer-stable": true 43 | } 44 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-ctype/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018-2019 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-ctype/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Ctype 2 | ======================== 3 | 4 | This component provides `ctype_*` functions to users who run php versions without the ctype extension. 5 | 6 | More information can be found in the 7 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 8 | 9 | License 10 | ======= 11 | 12 | This library is released under the [MIT license](LICENSE). 13 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-ctype/bootstrap.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | use Symfony\Polyfill\Ctype as p; 13 | 14 | if (\PHP_VERSION_ID >= 80000) { 15 | return require __DIR__.'/bootstrap80.php'; 16 | } 17 | 18 | if (!function_exists('ctype_alnum')) { 19 | function ctype_alnum($text) { return p\Ctype::ctype_alnum($text); } 20 | } 21 | if (!function_exists('ctype_alpha')) { 22 | function ctype_alpha($text) { return p\Ctype::ctype_alpha($text); } 23 | } 24 | if (!function_exists('ctype_cntrl')) { 25 | function ctype_cntrl($text) { return p\Ctype::ctype_cntrl($text); } 26 | } 27 | if (!function_exists('ctype_digit')) { 28 | function ctype_digit($text) { return p\Ctype::ctype_digit($text); } 29 | } 30 | if (!function_exists('ctype_graph')) { 31 | function ctype_graph($text) { return p\Ctype::ctype_graph($text); } 32 | } 33 | if (!function_exists('ctype_lower')) { 34 | function ctype_lower($text) { return p\Ctype::ctype_lower($text); } 35 | } 36 | if (!function_exists('ctype_print')) { 37 | function ctype_print($text) { return p\Ctype::ctype_print($text); } 38 | } 39 | if (!function_exists('ctype_punct')) { 40 | function ctype_punct($text) { return p\Ctype::ctype_punct($text); } 41 | } 42 | if (!function_exists('ctype_space')) { 43 | function ctype_space($text) { return p\Ctype::ctype_space($text); } 44 | } 45 | if (!function_exists('ctype_upper')) { 46 | function ctype_upper($text) { return p\Ctype::ctype_upper($text); } 47 | } 48 | if (!function_exists('ctype_xdigit')) { 49 | function ctype_xdigit($text) { return p\Ctype::ctype_xdigit($text); } 50 | } 51 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-ctype/bootstrap80.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | use Symfony\Polyfill\Ctype as p; 13 | 14 | if (!function_exists('ctype_alnum')) { 15 | function ctype_alnum(mixed $text): bool { return p\Ctype::ctype_alnum($text); } 16 | } 17 | if (!function_exists('ctype_alpha')) { 18 | function ctype_alpha(mixed $text): bool { return p\Ctype::ctype_alpha($text); } 19 | } 20 | if (!function_exists('ctype_cntrl')) { 21 | function ctype_cntrl(mixed $text): bool { return p\Ctype::ctype_cntrl($text); } 22 | } 23 | if (!function_exists('ctype_digit')) { 24 | function ctype_digit(mixed $text): bool { return p\Ctype::ctype_digit($text); } 25 | } 26 | if (!function_exists('ctype_graph')) { 27 | function ctype_graph(mixed $text): bool { return p\Ctype::ctype_graph($text); } 28 | } 29 | if (!function_exists('ctype_lower')) { 30 | function ctype_lower(mixed $text): bool { return p\Ctype::ctype_lower($text); } 31 | } 32 | if (!function_exists('ctype_print')) { 33 | function ctype_print(mixed $text): bool { return p\Ctype::ctype_print($text); } 34 | } 35 | if (!function_exists('ctype_punct')) { 36 | function ctype_punct(mixed $text): bool { return p\Ctype::ctype_punct($text); } 37 | } 38 | if (!function_exists('ctype_space')) { 39 | function ctype_space(mixed $text): bool { return p\Ctype::ctype_space($text); } 40 | } 41 | if (!function_exists('ctype_upper')) { 42 | function ctype_upper(mixed $text): bool { return p\Ctype::ctype_upper($text); } 43 | } 44 | if (!function_exists('ctype_xdigit')) { 45 | function ctype_xdigit(mixed $text): bool { return p\Ctype::ctype_xdigit($text); } 46 | } 47 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-ctype/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-ctype", 3 | "type": "library", 4 | "description": "Symfony polyfill for ctype functions", 5 | "keywords": ["polyfill", "compatibility", "portable", "ctype"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Gert de Pagter", 11 | "email": "BackEndTea@gmail.com" 12 | }, 13 | { 14 | "name": "Symfony Community", 15 | "homepage": "https://symfony.com/contributors" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=7.1" 20 | }, 21 | "autoload": { 22 | "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" }, 23 | "files": [ "bootstrap.php" ] 24 | }, 25 | "suggest": { 26 | "ext-ctype": "For best performance" 27 | }, 28 | "minimum-stability": "dev", 29 | "extra": { 30 | "branch-alias": { 31 | "dev-main": "1.23-dev" 32 | }, 33 | "thanks": { 34 | "name": "symfony/polyfill", 35 | "url": "https://github.com/symfony/polyfill" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-mbstring/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2019 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-mbstring/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Mbstring 2 | =========================== 3 | 4 | This component provides a partial, native PHP implementation for the 5 | [Mbstring](https://php.net/mbstring) extension. 6 | 7 | More information can be found in the 8 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 9 | 10 | License 11 | ======= 12 | 13 | This library is released under the [MIT license](LICENSE). 14 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-mbstring/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-mbstring", 3 | "type": "library", 4 | "description": "Symfony polyfill for the Mbstring extension", 5 | "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Nicolas Grekas", 11 | "email": "p@tchwork.com" 12 | }, 13 | { 14 | "name": "Symfony Community", 15 | "homepage": "https://symfony.com/contributors" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=7.1" 20 | }, 21 | "autoload": { 22 | "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" }, 23 | "files": [ "bootstrap.php" ] 24 | }, 25 | "suggest": { 26 | "ext-mbstring": "For best performance" 27 | }, 28 | "minimum-stability": "dev", 29 | "extra": { 30 | "branch-alias": { 31 | "dev-main": "1.23-dev" 32 | }, 33 | "thanks": { 34 | "name": "symfony/polyfill", 35 | "url": "https://github.com/symfony/polyfill" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-php80/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-php80/README.md: -------------------------------------------------------------------------------- 1 | Symfony Polyfill / Php80 2 | ======================== 3 | 4 | This component provides features added to PHP 8.0 core: 5 | 6 | - `Stringable` interface 7 | - [`fdiv`](https://php.net/fdiv) 8 | - `ValueError` class 9 | - `UnhandledMatchError` class 10 | - `FILTER_VALIDATE_BOOL` constant 11 | - [`get_debug_type`](https://php.net/get_debug_type) 12 | - [`preg_last_error_msg`](https://php.net/preg_last_error_msg) 13 | - [`str_contains`](https://php.net/str_contains) 14 | - [`str_starts_with`](https://php.net/str_starts_with) 15 | - [`str_ends_with`](https://php.net/str_ends_with) 16 | - [`get_resource_id`](https://php.net/get_resource_id) 17 | 18 | More information can be found in the 19 | [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). 20 | 21 | License 22 | ======= 23 | 24 | This library is released under the [MIT license](LICENSE). 25 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php: -------------------------------------------------------------------------------- 1 | flags = $flags; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php: -------------------------------------------------------------------------------- 1 | 7 | * 8 | * For the full copyright and license information, please view the LICENSE 9 | * file that was distributed with this source code. 10 | */ 11 | 12 | use Symfony\Polyfill\Php80 as p; 13 | 14 | if (\PHP_VERSION_ID >= 80000) { 15 | return; 16 | } 17 | 18 | if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) { 19 | define('FILTER_VALIDATE_BOOL', \FILTER_VALIDATE_BOOLEAN); 20 | } 21 | 22 | if (!function_exists('fdiv')) { 23 | function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); } 24 | } 25 | if (!function_exists('preg_last_error_msg')) { 26 | function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); } 27 | } 28 | if (!function_exists('str_contains')) { 29 | function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); } 30 | } 31 | if (!function_exists('str_starts_with')) { 32 | function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); } 33 | } 34 | if (!function_exists('str_ends_with')) { 35 | function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); } 36 | } 37 | if (!function_exists('get_debug_type')) { 38 | function get_debug_type($value): string { return p\Php80::get_debug_type($value); } 39 | } 40 | if (!function_exists('get_resource_id')) { 41 | function get_resource_id($resource): int { return p\Php80::get_resource_id($resource); } 42 | } 43 | -------------------------------------------------------------------------------- /Backend/vendor/symfony/polyfill-php80/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/polyfill-php80", 3 | "type": "library", 4 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 5 | "keywords": ["polyfill", "shim", "compatibility", "portable"], 6 | "homepage": "https://symfony.com", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Ion Bazan", 11 | "email": "ion.bazan@gmail.com" 12 | }, 13 | { 14 | "name": "Nicolas Grekas", 15 | "email": "p@tchwork.com" 16 | }, 17 | { 18 | "name": "Symfony Community", 19 | "homepage": "https://symfony.com/contributors" 20 | } 21 | ], 22 | "require": { 23 | "php": ">=7.1" 24 | }, 25 | "autoload": { 26 | "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, 27 | "files": [ "bootstrap.php" ], 28 | "classmap": [ "Resources/stubs" ] 29 | }, 30 | "minimum-stability": "dev", 31 | "extra": { 32 | "branch-alias": { 33 | "dev-main": "1.23-dev" 34 | }, 35 | "thanks": { 36 | "name": "symfony/polyfill", 37 | "url": "https://github.com/symfony/polyfill" 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2014, Graham Campbell. 4 | Copyright (c) 2013, Vance Lucas. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | 2. Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | 3. Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vlucas/phpdotenv", 3 | "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", 4 | "keywords": ["env", "dotenv", "environment"], 5 | "license": "BSD-3-Clause", 6 | "authors": [ 7 | { 8 | "name": "Graham Campbell", 9 | "email": "graham@alt-three.com", 10 | "homepage": "https://gjcampbell.co.uk/" 11 | }, 12 | { 13 | "name": "Vance Lucas", 14 | "email": "vance@vancelucas.com", 15 | "homepage": "https://vancelucas.com/" 16 | } 17 | ], 18 | "require": { 19 | "php": "^7.1.3 || ^8.0", 20 | "ext-pcre": "*", 21 | "graham-campbell/result-type": "^1.0.1", 22 | "phpoption/phpoption": "^1.7.4", 23 | "symfony/polyfill-ctype": "^1.17", 24 | "symfony/polyfill-mbstring": "^1.17", 25 | "symfony/polyfill-php80": "^1.17" 26 | }, 27 | "require-dev": { 28 | "ext-filter": "*", 29 | "bamarni/composer-bin-plugin": "^1.4.1", 30 | "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" 31 | }, 32 | "autoload": { 33 | "psr-4": { 34 | "Dotenv\\": "src/" 35 | } 36 | }, 37 | "autoload-dev": { 38 | "psr-4": { 39 | "Dotenv\\Tests\\": "tests/Dotenv/" 40 | } 41 | }, 42 | "suggest": { 43 | "ext-filter": "Required to use the boolean validator." 44 | }, 45 | "config": { 46 | "preferred-install": "dist" 47 | }, 48 | "extra": { 49 | "branch-alias": { 50 | "dev-master": "5.3-dev" 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php: -------------------------------------------------------------------------------- 1 | 23 | */ 24 | public function load(RepositoryInterface $repository, array $entries) 25 | { 26 | return \array_reduce($entries, static function (array $vars, Entry $entry) use ($repository) { 27 | $name = $entry->getName(); 28 | 29 | $value = $entry->getValue()->map(static function (Value $value) use ($repository) { 30 | return Resolver::resolve($repository, $value); 31 | }); 32 | 33 | if ($value->isDefined()) { 34 | $inner = $value->get(); 35 | if ($repository->set($name, $inner)) { 36 | return \array_merge($vars, [$name => $inner]); 37 | } 38 | } else { 39 | if ($repository->clear($name)) { 40 | return \array_merge($vars, [$name => null]); 41 | } 42 | } 43 | 44 | return $vars; 45 | }, []); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php: -------------------------------------------------------------------------------- 1 | 18 | */ 19 | public function load(RepositoryInterface $repository, array $entries); 20 | } 21 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Loader/Resolver.php: -------------------------------------------------------------------------------- 1 | getVars(), static function (string $s, int $i) use ($repository) { 41 | return Str::substr($s, 0, $i).self::resolveVariable($repository, Str::substr($s, $i)); 42 | }, $value->getChars()); 43 | } 44 | 45 | /** 46 | * Resolve a single nested variable. 47 | * 48 | * @param \Dotenv\Repository\RepositoryInterface $repository 49 | * @param string $str 50 | * 51 | * @return string 52 | */ 53 | private static function resolveVariable(RepositoryInterface $repository, string $str) 54 | { 55 | return Regex::replaceCallback( 56 | '/\A\${([a-zA-Z0-9_.]+)}/', 57 | static function (array $matches) use ($repository) { 58 | return Option::fromValue($repository->get($matches[1])) 59 | ->getOrElse($matches[0]); 60 | }, 61 | $str, 62 | 1 63 | )->success()->getOrElse($str); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Parser/Entry.php: -------------------------------------------------------------------------------- 1 | name = $name; 36 | $this->value = $value; 37 | } 38 | 39 | /** 40 | * Get the entry name. 41 | * 42 | * @return string 43 | */ 44 | public function getName() 45 | { 46 | return $this->name; 47 | } 48 | 49 | /** 50 | * Get the entry value. 51 | * 52 | * @return \PhpOption\Option<\Dotenv\Parser\Value> 53 | */ 54 | public function getValue() 55 | { 56 | /** @var \PhpOption\Option<\Dotenv\Parser\Value> */ 57 | return Option::fromValue($this->value); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Parser/Lexer.php: -------------------------------------------------------------------------------- 1 | 39 | */ 40 | public static function lex(string $content) 41 | { 42 | static $regex; 43 | 44 | if ($regex === null) { 45 | $regex = '(('.\implode(')|(', self::PATTERNS).'))A'; 46 | } 47 | 48 | $tokens = []; 49 | 50 | $offset = 0; 51 | 52 | while (isset($content[$offset])) { 53 | if (!\preg_match($regex, $content, $matches, 0, $offset)) { 54 | throw new \Error(\sprintf('Lexer encountered unexpected character [%s].', $content[$offset])); 55 | } 56 | 57 | $offset += \strlen($matches[0]); 58 | 59 | yield $matches[0]; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Parser/Parser.php: -------------------------------------------------------------------------------- 1 | mapError(static function () { 26 | return 'Could not split into separate lines.'; 27 | })->flatMap(static function (array $lines) { 28 | return self::process(Lines::process($lines)); 29 | })->mapError(static function (string $error) { 30 | throw new InvalidFileException(\sprintf('Failed to parse dotenv file. %s', $error)); 31 | })->success()->get(); 32 | } 33 | 34 | /** 35 | * Convert the raw entries into proper entries. 36 | * 37 | * @param string[] $entries 38 | * 39 | * @return \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string> 40 | */ 41 | private static function process(array $entries) 42 | { 43 | /** @var \GrahamCampbell\ResultType\Result<\Dotenv\Parser\Entry[],string> */ 44 | return \array_reduce($entries, static function (Result $result, string $raw) { 45 | return $result->flatMap(static function (array $entries) use ($raw) { 46 | return EntryParser::parse($raw)->map(static function (Entry $entry) use ($entries) { 47 | return \array_merge($entries, [$entry]); 48 | }); 49 | }); 50 | }, Success::create([])); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php: -------------------------------------------------------------------------------- 1 | chars = $chars; 36 | $this->vars = $vars; 37 | } 38 | 39 | /** 40 | * Create an empty value instance. 41 | * 42 | * @return \Dotenv\Parser\Value 43 | */ 44 | public static function blank() 45 | { 46 | return new self('', []); 47 | } 48 | 49 | /** 50 | * Create a new value instance, appending the characters. 51 | * 52 | * @param string $chars 53 | * @param bool $var 54 | * 55 | * @return \Dotenv\Parser\Value 56 | */ 57 | public function append(string $chars, bool $var) 58 | { 59 | return new self( 60 | $this->chars.$chars, 61 | $var ? \array_merge($this->vars, [Str::len($this->chars)]) : $this->vars 62 | ); 63 | } 64 | 65 | /** 66 | * Get the string representation of the parsed value. 67 | * 68 | * @return string 69 | */ 70 | public function getChars() 71 | { 72 | return $this->chars; 73 | } 74 | 75 | /** 76 | * Get the locations of the variables in the value. 77 | * 78 | * @return int[] 79 | */ 80 | public function getVars() 81 | { 82 | $vars = $this->vars; 83 | 84 | \rsort($vars); 85 | 86 | return $vars; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php: -------------------------------------------------------------------------------- 1 | 13 | */ 14 | public static function create(); 15 | } 16 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php: -------------------------------------------------------------------------------- 1 | 27 | */ 28 | public static function create() 29 | { 30 | if (self::isSupported()) { 31 | /** @var \PhpOption\Option */ 32 | return Some::create(new self()); 33 | } 34 | 35 | return None::create(); 36 | } 37 | 38 | /** 39 | * Determines if the adapter is supported. 40 | * 41 | * This happens if PHP is running as an Apache module. 42 | * 43 | * @return bool 44 | */ 45 | private static function isSupported() 46 | { 47 | return \function_exists('apache_getenv') && \function_exists('apache_setenv'); 48 | } 49 | 50 | /** 51 | * Read an environment variable, if it exists. 52 | * 53 | * @param string $name 54 | * 55 | * @return \PhpOption\Option 56 | */ 57 | public function read(string $name) 58 | { 59 | /** @var \PhpOption\Option */ 60 | return Option::fromValue(apache_getenv($name))->filter(static function ($value) { 61 | return \is_string($value) && $value !== ''; 62 | }); 63 | } 64 | 65 | /** 66 | * Write to an environment variable, if possible. 67 | * 68 | * @param string $name 69 | * @param string $value 70 | * 71 | * @return bool 72 | */ 73 | public function write(string $name, string $value) 74 | { 75 | return apache_setenv($name, $value); 76 | } 77 | 78 | /** 79 | * Delete an environment variable, if possible. 80 | * 81 | * @param string $name 82 | * 83 | * @return bool 84 | */ 85 | public function delete(string $name) 86 | { 87 | return apache_setenv($name, ''); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php: -------------------------------------------------------------------------------- 1 | 16 | */ 17 | private $variables; 18 | 19 | /** 20 | * Create a new array adapter instance. 21 | * 22 | * @return void 23 | */ 24 | private function __construct() 25 | { 26 | $this->variables = []; 27 | } 28 | 29 | /** 30 | * Create a new instance of the adapter, if it is available. 31 | * 32 | * @return \PhpOption\Option<\Dotenv\Repository\Adapter\AdapterInterface> 33 | */ 34 | public static function create() 35 | { 36 | /** @var \PhpOption\Option */ 37 | return Some::create(new self()); 38 | } 39 | 40 | /** 41 | * Read an environment variable, if it exists. 42 | * 43 | * @param string $name 44 | * 45 | * @return \PhpOption\Option 46 | */ 47 | public function read(string $name) 48 | { 49 | return Option::fromArraysValue($this->variables, $name); 50 | } 51 | 52 | /** 53 | * Write to an environment variable, if possible. 54 | * 55 | * @param string $name 56 | * @param string $value 57 | * 58 | * @return bool 59 | */ 60 | public function write(string $name, string $value) 61 | { 62 | $this->variables[$name] = $value; 63 | 64 | return true; 65 | } 66 | 67 | /** 68 | * Delete an environment variable, if possible. 69 | * 70 | * @param string $name 71 | * 72 | * @return bool 73 | */ 74 | public function delete(string $name) 75 | { 76 | unset($this->variables[$name]); 77 | 78 | return true; 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php: -------------------------------------------------------------------------------- 1 | 26 | */ 27 | public static function create() 28 | { 29 | /** @var \PhpOption\Option */ 30 | return Some::create(new self()); 31 | } 32 | 33 | /** 34 | * Read an environment variable, if it exists. 35 | * 36 | * @param string $name 37 | * 38 | * @return \PhpOption\Option 39 | */ 40 | public function read(string $name) 41 | { 42 | /** @var \PhpOption\Option */ 43 | return Option::fromArraysValue($_ENV, $name) 44 | ->map(static function ($value) { 45 | if ($value === false) { 46 | return 'false'; 47 | } 48 | 49 | if ($value === true) { 50 | return 'true'; 51 | } 52 | 53 | return $value; 54 | })->filter(static function ($value) { 55 | return \is_string($value); 56 | }); 57 | } 58 | 59 | /** 60 | * Write to an environment variable, if possible. 61 | * 62 | * @param string $name 63 | * @param string $value 64 | * 65 | * @return bool 66 | */ 67 | public function write(string $name, string $value) 68 | { 69 | $_ENV[$name] = $value; 70 | 71 | return true; 72 | } 73 | 74 | /** 75 | * Delete an environment variable, if possible. 76 | * 77 | * @param string $name 78 | * 79 | * @return bool 80 | */ 81 | public function delete(string $name) 82 | { 83 | unset($_ENV[$name]); 84 | 85 | return true; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php: -------------------------------------------------------------------------------- 1 | writer = $writer; 34 | $this->allowList = $allowList; 35 | } 36 | 37 | /** 38 | * Write to an environment variable, if possible. 39 | * 40 | * @param string $name 41 | * @param string $value 42 | * 43 | * @return bool 44 | */ 45 | public function write(string $name, string $value) 46 | { 47 | // Don't set non-allowed variables 48 | if (!$this->isAllowed($name)) { 49 | return false; 50 | } 51 | 52 | // Set the value on the inner writer 53 | return $this->writer->write($name, $value); 54 | } 55 | 56 | /** 57 | * Delete an environment variable, if possible. 58 | * 59 | * @param string $name 60 | * 61 | * @return bool 62 | */ 63 | public function delete(string $name) 64 | { 65 | // Don't clear non-allowed variables 66 | if (!$this->isAllowed($name)) { 67 | return false; 68 | } 69 | 70 | // Set the value on the inner writer 71 | return $this->writer->delete($name); 72 | } 73 | 74 | /** 75 | * Determine if the given variable is allowed. 76 | * 77 | * @param string $name 78 | * 79 | * @return bool 80 | */ 81 | private function isAllowed(string $name) 82 | { 83 | return \in_array($name, $this->allowList, true); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php: -------------------------------------------------------------------------------- 1 | 27 | */ 28 | private $loaded; 29 | 30 | /** 31 | * Create a new immutable writer instance. 32 | * 33 | * @param \Dotenv\Repository\Adapter\WriterInterface $writer 34 | * @param \Dotenv\Repository\Adapter\ReaderInterface $reader 35 | * 36 | * @return void 37 | */ 38 | public function __construct(WriterInterface $writer, ReaderInterface $reader) 39 | { 40 | $this->writer = $writer; 41 | $this->reader = $reader; 42 | $this->loaded = []; 43 | } 44 | 45 | /** 46 | * Write to an environment variable, if possible. 47 | * 48 | * @param string $name 49 | * @param string $value 50 | * 51 | * @return bool 52 | */ 53 | public function write(string $name, string $value) 54 | { 55 | // Don't overwrite existing environment variables 56 | // Ruby's dotenv does this with `ENV[key] ||= value` 57 | if ($this->isExternallyDefined($name)) { 58 | return false; 59 | } 60 | 61 | // Set the value on the inner writer 62 | if (!$this->writer->write($name, $value)) { 63 | return false; 64 | } 65 | 66 | // Record that we have loaded the variable 67 | $this->loaded[$name] = ''; 68 | 69 | return true; 70 | } 71 | 72 | /** 73 | * Delete an environment variable, if possible. 74 | * 75 | * @param string $name 76 | * 77 | * @return bool 78 | */ 79 | public function delete(string $name) 80 | { 81 | // Don't clear existing environment variables 82 | if ($this->isExternallyDefined($name)) { 83 | return false; 84 | } 85 | 86 | // Clear the value on the inner writer 87 | if (!$this->writer->delete($name)) { 88 | return false; 89 | } 90 | 91 | // Leave the variable as fair game 92 | unset($this->loaded[$name]); 93 | 94 | return true; 95 | } 96 | 97 | /** 98 | * Determine if the given variable is externally defined. 99 | * 100 | * That is, is it an "existing" variable. 101 | * 102 | * @param string $name 103 | * 104 | * @return bool 105 | */ 106 | private function isExternallyDefined(string $name) 107 | { 108 | return $this->reader->read($name)->isDefined() && !isset($this->loaded[$name]); 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php: -------------------------------------------------------------------------------- 1 | readers = $readers; 28 | } 29 | 30 | /** 31 | * Read an environment variable, if it exists. 32 | * 33 | * @param string $name 34 | * 35 | * @return \PhpOption\Option 36 | */ 37 | public function read(string $name) 38 | { 39 | foreach ($this->readers as $reader) { 40 | $result = $reader->read($name); 41 | if ($result->isDefined()) { 42 | return $result; 43 | } 44 | } 45 | 46 | return None::create(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php: -------------------------------------------------------------------------------- 1 | writers = $writers; 26 | } 27 | 28 | /** 29 | * Write to an environment variable, if possible. 30 | * 31 | * @param string $name 32 | * @param string $value 33 | * 34 | * @return bool 35 | */ 36 | public function write(string $name, string $value) 37 | { 38 | foreach ($this->writers as $writers) { 39 | if (!$writers->write($name, $value)) { 40 | return false; 41 | } 42 | } 43 | 44 | return true; 45 | } 46 | 47 | /** 48 | * Delete an environment variable, if possible. 49 | * 50 | * @param string $name 51 | * 52 | * @return bool 53 | */ 54 | public function delete(string $name) 55 | { 56 | foreach ($this->writers as $writers) { 57 | if (!$writers->delete($name)) { 58 | return false; 59 | } 60 | } 61 | 62 | return true; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php: -------------------------------------------------------------------------------- 1 | 27 | */ 28 | public static function create() 29 | { 30 | if (self::isSupported()) { 31 | /** @var \PhpOption\Option */ 32 | return Some::create(new self()); 33 | } 34 | 35 | return None::create(); 36 | } 37 | 38 | /** 39 | * Determines if the adapter is supported. 40 | * 41 | * @return bool 42 | */ 43 | private static function isSupported() 44 | { 45 | return \function_exists('getenv') && \function_exists('putenv'); 46 | } 47 | 48 | /** 49 | * Read an environment variable, if it exists. 50 | * 51 | * @param string $name 52 | * 53 | * @return \PhpOption\Option 54 | */ 55 | public function read(string $name) 56 | { 57 | /** @var \PhpOption\Option */ 58 | return Option::fromValue(\getenv($name), false)->filter(static function ($value) { 59 | return \is_string($value); 60 | }); 61 | } 62 | 63 | /** 64 | * Write to an environment variable, if possible. 65 | * 66 | * @param string $name 67 | * @param string $value 68 | * 69 | * @return bool 70 | */ 71 | public function write(string $name, string $value) 72 | { 73 | \putenv("$name=$value"); 74 | 75 | return true; 76 | } 77 | 78 | /** 79 | * Delete an environment variable, if possible. 80 | * 81 | * @param string $name 82 | * 83 | * @return bool 84 | */ 85 | public function delete(string $name) 86 | { 87 | \putenv($name); 88 | 89 | return true; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php: -------------------------------------------------------------------------------- 1 | 15 | */ 16 | public function read(string $name); 17 | } 18 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php: -------------------------------------------------------------------------------- 1 | 27 | */ 28 | private $seen; 29 | 30 | /** 31 | * Create a new replacement writer instance. 32 | * 33 | * @param \Dotenv\Repository\Adapter\WriterInterface $writer 34 | * @param \Dotenv\Repository\Adapter\ReaderInterface $reader 35 | * 36 | * @return void 37 | */ 38 | public function __construct(WriterInterface $writer, ReaderInterface $reader) 39 | { 40 | $this->writer = $writer; 41 | $this->reader = $reader; 42 | $this->seen = []; 43 | } 44 | 45 | /** 46 | * Write to an environment variable, if possible. 47 | * 48 | * @param string $name 49 | * @param string $value 50 | * 51 | * @return bool 52 | */ 53 | public function write(string $name, string $value) 54 | { 55 | if ($this->exists($name)) { 56 | return $this->writer->write($name, $value); 57 | } 58 | 59 | // succeed if nothing to do 60 | return true; 61 | } 62 | 63 | /** 64 | * Delete an environment variable, if possible. 65 | * 66 | * @param string $name 67 | * 68 | * @return bool 69 | */ 70 | public function delete(string $name) 71 | { 72 | if ($this->exists($name)) { 73 | return $this->writer->delete($name); 74 | } 75 | 76 | // succeed if nothing to do 77 | return true; 78 | } 79 | 80 | /** 81 | * Does the given environment variable exist. 82 | * 83 | * Returns true if it currently exists, or existed at any point in the past 84 | * that we are aware of. 85 | * 86 | * @param string $name 87 | * 88 | * @return bool 89 | */ 90 | private function exists(string $name) 91 | { 92 | if (isset($this->seen[$name])) { 93 | return true; 94 | } 95 | 96 | if ($this->reader->read($name)->isDefined()) { 97 | $this->seen[$name] = ''; 98 | 99 | return true; 100 | } 101 | 102 | return false; 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php: -------------------------------------------------------------------------------- 1 | 26 | */ 27 | public static function create() 28 | { 29 | /** @var \PhpOption\Option */ 30 | return Some::create(new self()); 31 | } 32 | 33 | /** 34 | * Read an environment variable, if it exists. 35 | * 36 | * @param string $name 37 | * 38 | * @return \PhpOption\Option 39 | */ 40 | public function read(string $name) 41 | { 42 | /** @var \PhpOption\Option */ 43 | return Option::fromArraysValue($_SERVER, $name) 44 | ->map(static function ($value) { 45 | if ($value === false) { 46 | return 'false'; 47 | } 48 | 49 | if ($value === true) { 50 | return 'true'; 51 | } 52 | 53 | return $value; 54 | })->filter(static function ($value) { 55 | return \is_string($value); 56 | }); 57 | } 58 | 59 | /** 60 | * Write to an environment variable, if possible. 61 | * 62 | * @param string $name 63 | * @param string $value 64 | * 65 | * @return bool 66 | */ 67 | public function write(string $name, string $value) 68 | { 69 | $_SERVER[$name] = $value; 70 | 71 | return true; 72 | } 73 | 74 | /** 75 | * Delete an environment variable, if possible. 76 | * 77 | * @param string $name 78 | * 79 | * @return bool 80 | */ 81 | public function delete(string $name) 82 | { 83 | unset($_SERVER[$name]); 84 | 85 | return true; 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php: -------------------------------------------------------------------------------- 1 | reader = $reader; 37 | $this->writer = $writer; 38 | } 39 | 40 | /** 41 | * Determine if the given environment variable is defined. 42 | * 43 | * @param string $name 44 | * 45 | * @return bool 46 | */ 47 | public function has(string $name) 48 | { 49 | return $this->reader->read($name)->isDefined(); 50 | } 51 | 52 | /** 53 | * Get an environment variable. 54 | * 55 | * @param string $name 56 | * 57 | * @return string|null 58 | */ 59 | public function get(string $name) 60 | { 61 | return $this->reader->read($name)->getOrElse(null); 62 | } 63 | 64 | /** 65 | * Set an environment variable. 66 | * 67 | * @param string $name 68 | * @param string $value 69 | * 70 | * @return bool 71 | */ 72 | public function set(string $name, string $value) 73 | { 74 | return $this->writer->write($name, $value); 75 | } 76 | 77 | /** 78 | * Clear an environment variable. 79 | * 80 | * @param string $name 81 | * 82 | * @return bool 83 | */ 84 | public function clear(string $name) 85 | { 86 | return $this->writer->delete($name); 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php: -------------------------------------------------------------------------------- 1 | 42 | */ 43 | public static function read(array $filePaths, bool $shortCircuit = true, string $fileEncoding = null) 44 | { 45 | $output = []; 46 | 47 | foreach ($filePaths as $filePath) { 48 | $content = self::readFromFile($filePath, $fileEncoding); 49 | if ($content->isDefined()) { 50 | $output[$filePath] = $content->get(); 51 | if ($shortCircuit) { 52 | break; 53 | } 54 | } 55 | } 56 | 57 | return $output; 58 | } 59 | 60 | /** 61 | * Read the given file. 62 | * 63 | * @param string $path 64 | * @param string|null $encoding 65 | * 66 | * @throws \Dotenv\Exception\InvalidEncodingException 67 | * 68 | * @return \PhpOption\Option 69 | */ 70 | private static function readFromFile(string $path, string $encoding = null) 71 | { 72 | /** @var Option */ 73 | $content = Option::fromValue(@\file_get_contents($path), false); 74 | 75 | return $content->flatMap(static function (string $content) use ($encoding) { 76 | return Str::utf8($content, $encoding)->mapError(static function (string $error) { 77 | throw new InvalidEncodingException($error); 78 | })->success(); 79 | }); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Store/FileStore.php: -------------------------------------------------------------------------------- 1 | filePaths = $filePaths; 45 | $this->shortCircuit = $shortCircuit; 46 | $this->fileEncoding = $fileEncoding; 47 | } 48 | 49 | /** 50 | * Read the content of the environment file(s). 51 | * 52 | * @throws \Dotenv\Exception\InvalidEncodingException|\Dotenv\Exception\InvalidPathException 53 | * 54 | * @return string 55 | */ 56 | public function read() 57 | { 58 | if ($this->filePaths === []) { 59 | throw new InvalidPathException('At least one environment file path must be provided.'); 60 | } 61 | 62 | $contents = Reader::read($this->filePaths, $this->shortCircuit, $this->fileEncoding); 63 | 64 | if (\count($contents) > 0) { 65 | return \implode("\n", $contents); 66 | } 67 | 68 | throw new InvalidPathException( 69 | \sprintf('Unable to read any of the environment file(s) at [%s].', \implode(', ', $this->filePaths)) 70 | ); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php: -------------------------------------------------------------------------------- 1 | content = $content; 26 | } 27 | 28 | /** 29 | * Read the content of the environment file(s). 30 | * 31 | * @return string 32 | */ 33 | public function read() 34 | { 35 | return $this->content; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Backend/vendor/vlucas/phpdotenv/src/Util/Str.php: -------------------------------------------------------------------------------- 1 | 35 | */ 36 | public static function utf8(string $input, string $encoding = null) 37 | { 38 | if ($encoding !== null && !\in_array($encoding, \mb_list_encodings(), true)) { 39 | /** @var \GrahamCampbell\ResultType\Result */ 40 | return Error::create( 41 | \sprintf('Illegal character encoding [%s] specified.', $encoding) 42 | ); 43 | } 44 | 45 | /** @var \GrahamCampbell\ResultType\Result */ 46 | return Success::create( 47 | $encoding === null ? @\mb_convert_encoding($input, 'UTF-8') : @\mb_convert_encoding($input, 'UTF-8', $encoding) 48 | ); 49 | } 50 | 51 | /** 52 | * Search for a given substring of the input. 53 | * 54 | * @param string $haystack 55 | * @param string $needle 56 | * 57 | * @return \PhpOption\Option 58 | */ 59 | public static function pos(string $haystack, string $needle) 60 | { 61 | /** @var \PhpOption\Option */ 62 | return Option::fromValue(\mb_strpos($haystack, $needle, 0, 'UTF-8'), false); 63 | } 64 | 65 | /** 66 | * Grab the specified substring of the input. 67 | * 68 | * @param string $input 69 | * @param int $start 70 | * @param int|null $length 71 | * 72 | * @return string 73 | */ 74 | public static function substr(string $input, int $start, int $length = null) 75 | { 76 | return \mb_substr($input, $start, $length, 'UTF-8'); 77 | } 78 | 79 | /** 80 | * Compute the length of the given string. 81 | * 82 | * @param string $input 83 | * 84 | * @return int 85 | */ 86 | public static function len(string $input) 87 | { 88 | return \mb_strlen($input, 'UTF-8'); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /VueApp/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /VueApp/.env: -------------------------------------------------------------------------------- 1 | VUE_APP_BACKEND_URL=http://localhost/QuickRd/ 2 | -------------------------------------------------------------------------------- /VueApp/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/vue3-essential', 8 | 'eslint:recommended' 9 | ], 10 | parserOptions: { 11 | parser: 'babel-eslint' 12 | }, 13 | rules: { 14 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /VueApp/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /VueApp/README.md: -------------------------------------------------------------------------------- 1 | # rv 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /VueApp/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /VueApp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rv", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "core-js": "^3.6.5", 12 | "materialize-css": "^1.0.0-rc.2", 13 | "vue": "^3.0.0", 14 | "vue-router": "^4.0.0-0", 15 | "vuex": "^4.0.1" 16 | }, 17 | "devDependencies": { 18 | "@vue/cli-plugin-babel": "~4.5.0", 19 | "@vue/cli-plugin-eslint": "~4.5.0", 20 | "@vue/cli-plugin-router": "~4.5.0", 21 | "@vue/cli-service": "~4.5.0", 22 | "@vue/compiler-sfc": "^3.0.0", 23 | "babel-eslint": "^10.1.0", 24 | "eslint": "^6.7.2", 25 | "eslint-plugin-vue": "^7.0.0", 26 | "vue-materialize": "^1.0.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /VueApp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/VueApp/public/favicon.ico -------------------------------------------------------------------------------- /VueApp/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | <%= htmlWebpackPlugin.options.title %> 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /VueApp/src/App.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 39 | 40 | 41 | 53 | -------------------------------------------------------------------------------- /VueApp/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FalconHD/Appointments_Application_vuejs_3/ebdc2c2da7e05b36a8265fa955ad98ef7fcb595e/VueApp/src/assets/logo.png -------------------------------------------------------------------------------- /VueApp/src/components/Auth/Authorized.vue: -------------------------------------------------------------------------------- 1 | 6 | 50 | -------------------------------------------------------------------------------- /VueApp/src/components/Collapsible.vue: -------------------------------------------------------------------------------- 1 | 34 | 74 | -------------------------------------------------------------------------------- /VueApp/src/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 11 | 14 | -------------------------------------------------------------------------------- /VueApp/src/components/Header.vue: -------------------------------------------------------------------------------- 1 | 23 | 61 | 75 | -------------------------------------------------------------------------------- /VueApp/src/hooks/Api.js: -------------------------------------------------------------------------------- 1 | 2 | export default { 3 | async get(url,token) { 4 | url = `${process.env.VUE_APP_BACKEND_URL}${url}` 5 | const response = await fetch(url, { 6 | method: "GET", 7 | headers: { 8 | "accept": "application/json", 9 | "Authorization" : `Bearer ${token}` 10 | }, 11 | }); 12 | return await response.json() 13 | }, 14 | 15 | async post(url, body ,token) { 16 | url = `${process.env.VUE_APP_BACKEND_URL}${url}` 17 | const response = await fetch(url, { 18 | method: "POST", 19 | headers: { 20 | "accept": "application/json", 21 | "Authorization" : `Bearer ${token}` 22 | }, 23 | body: JSON.stringify(body) 24 | }); 25 | return await response.json() 26 | } 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /VueApp/src/hooks/checkAuth.js: -------------------------------------------------------------------------------- 1 | import Api from '@/hooks/Api.js' 2 | export default { 3 | addToken(Token,ref) { 4 | localStorage.setItem('Token', Token) 5 | localStorage.setItem('ref', ref) 6 | }, 7 | 8 | async checkAuth(token) { 9 | let ref = localStorage.getItem('ref') 10 | let result = await Api.get(`auth/Token/${ref}`,token) 11 | console.log(result); 12 | } 13 | } -------------------------------------------------------------------------------- /VueApp/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import 'materialize-css' 6 | import 'materialize-css/dist/css/materialize.css' 7 | import 'materialize-css/dist/js/materialize.js' 8 | 9 | 10 | createApp(App).use(store).use(router).mount('#app') 11 | -------------------------------------------------------------------------------- /VueApp/src/router/index.js: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory } from 'vue-router' 2 | 3 | import Home from '../views/Home.vue' 4 | import Login from '../components/Auth/Login.vue' 5 | 6 | import Register from '../components/Auth/Register.vue' 7 | import Contact from '../views/Contact.vue' 8 | import AuthPage from '../views/AuthPage.vue' 9 | import Dashboard from '../views/Dashboard.vue' 10 | 11 | 12 | const routes = [ 13 | { 14 | path: '/', 15 | name: 'Home', 16 | component: Home 17 | }, 18 | { 19 | path: '/Login', 20 | name: 'Login', 21 | component: Login 22 | }, 23 | { 24 | path: '/Register', 25 | name: 'Register', 26 | component: Register 27 | }, 28 | { 29 | path: '/Auth', 30 | name: 'Auth', 31 | component: AuthPage 32 | }, 33 | { 34 | path: '/Dashboard', 35 | name: 'Dashboard', 36 | component: Dashboard 37 | }, 38 | { 39 | path: '/Delete/:id', 40 | name: 'Delete', 41 | component: () => import(/* webpackChunkName: "group-foo" */ '@/views/Delete.vue') 42 | }, 43 | { 44 | path: '/Update/:id', 45 | name: 'Update', 46 | component: () => import(/* webpackChunkName: "group-foo" */ '@/views/Update.vue') 47 | }, 48 | { 49 | path: '/contact', 50 | name: 'Contact', 51 | component: Contact 52 | } 53 | , 54 | { 55 | path: '/Add', 56 | name: 'Add', 57 | component: () => import(/* webpackChunkName: "group-foo" */ '@/views/Add.vue') 58 | } 59 | ] 60 | 61 | const router = createRouter({ 62 | history: createWebHistory(process.env.BASE_URL), 63 | routes 64 | }) 65 | 66 | export default router 67 | -------------------------------------------------------------------------------- /VueApp/src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore } from 'vuex' 2 | import { ref } from 'vue'; 3 | 4 | export default createStore({ 5 | state: { 6 | isAuthed: ref(false), 7 | username: '' 8 | }, 9 | getters: { 10 | 11 | }, 12 | mutations: { 13 | 14 | }, 15 | actions: { 16 | 17 | }, 18 | modules: { 19 | } 20 | }) -------------------------------------------------------------------------------- /VueApp/src/views/AuthPage.vue: -------------------------------------------------------------------------------- 1 | 19 | 31 | -------------------------------------------------------------------------------- /VueApp/src/views/Contact.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /VueApp/src/views/Dashboard.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /VueApp/src/views/Delete.vue: -------------------------------------------------------------------------------- 1 | 25 | 47 | -------------------------------------------------------------------------------- /VueApp/src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 36 | 37 | 38 | 74 | --------------------------------------------------------------------------------