diff --git a/.dev/README.md b/.dev/README.md new file mode 100644 index 00000000..97d452a2 --- /dev/null +++ b/.dev/README.md @@ -0,0 +1,175 @@ +# InvoiceShelf Development Environment + +This is dockerized development environment that allows developers to easily get started to develop InvoiceShelf. + +This development environment is **NOT MEANT TO BE USED IN PRODUCTION** and is preconfigured with all the needed tools that InvoiceShelf requires for development purposes. It works on Windows, Linux and MacOS. + +For production grade docker image, please refer to [InvoiceShelf/docker](https://github.com/InvoiceShelf/docker) and [InvoiceShelf on DockerHub](https://hub.docker.com/r/invoiceshelf/invoiceshelf). + +## How to set up + +### 1. Hosts configuration + +We use `invoiceshelf.test` domain for local development within this environment and you need to adhere to it. + +For that purpose you need to edit your OS hosts file or DNS server and add the following line to make the local domain name available on your system. + +``` +127.0.0.1 invoiceshelf.test +``` + +#### 1.1. Windows + +The hosts file on Windows is located at `C:\Windows\system32\drivers\etc\hosts`. + +You need to launch Notepad as administrator, open the file through **File > Open**, add the line from above and save the file. + +#### 1.2. Linux/MacOS + +The hosts file on Linux and Mac is located at `/etc/hosts`. + +You need to open the file using your favorite editor as sudo/root, add the line from above and save the file. + +### 2. FileSystem configuration (Linux) + +If you are using **Linux**, you need to make sure that **USRID** and **GRPID** environment variables are set and matching your current session user ids. Those two variables are required to set up the filesystem permissions correctly on Linux. + +You can run it one time, every time before starting as follows: + +``` +export USRID=$(id -u) && export GRPID=$(id -g) +``` + +or you can append this to your .zshrc/.bashrc by running this command in your terminal: + +``` +grep -qxF 'export USRID=$(id -u) GRPID=$(id -g)' ~/.${SHELL##*/}rc || echo 'export USRID=$(id -u) GRPID=$(id -g)' >> ~/.${SHELL##*/}rc +``` +this will append the `export` line to your rc file and run it on each terminal session. + +### 3. Clone the project + +Clone the InvoiceShelf project directly from InvoiceShelf git or your forked repository: + +```bash +git clone git@github.com:InvoiceShelf/InvoiceShelf.git +``` + +## Development Workflow + +We bundled separate docker-compose.yml file for each database: MySQL, PostgresSQL and SQLite, you can use any of those to spin up your development environment. + +| Database | Compose File | +|---------|---------------------------| +| SQLite3 | docker-compose.sqlite.yml | +| MariaDB | docker-compose.mysql.yml | +| PostgresSQL | dpcler-compose.pgsql.yml | + +### 1. Spinning Up + +To **spin up** the environment, run docker compose as follows: + +**Important**: If you are on **Linux** and didn't add the `export` line to your .zshrc/.bashrc file, you need to repeat `step 2` before spinning up, otherwise you will face permissions issues. + +``` +docker compose -f .dev/docker-compose.mysql.yml up --build +``` + +### 2. Spinning Down + +To **spin down** the environment, run docker compose as follows: + +``` +docker compose -f .dev/docker-compose.mysql.yml down +``` + +### 3. Working with binaries + +To correctly run `composer`, `npm`, `artisan`, `pint`, `pest` or other binaries within this project, you must ssh into the container as follows: + +``` +docker exec -it --user invoiceshelf invoiceshelf-dev-php /bin/bash +``` + +In the `/home/invoiceshelf/app` directory you can find the application root and run the commands from there. + +## What is included + +### 1. Web Server + +This dockerized environment uses PHP-FPM and NGINX together to serve the website `invoiceshelf.test` + +Both NGINX and PHP-FPM are configured with optimal settings for development. Please don't use this in production. + +**URL**: http://invoiceshelf.test/ + +### 2. Databases + +This dockerized environment comes with support for all three databases that InvoiceShelf suppots: MySQL, PostgreSQL and SQLite. + +The setup parameters/credentials for each of the supported databases are as follows. + +| | MySQL | PostgreSQL | SQLite | +|---|---|---|---| +| **DB_USER** | invoiceshelf | invoiceshelf | Not applicable | +| **DB_PASS** | invoiceshelf | invoiceshelf | Not applicable | +| **DB_NAME** | invoiceshelf | invoiceshelf | /home/invoiceshelf/database/database.sqlite | +| **DB_HOST** | db-mysql | db-pgsql | Not applicable | +| **DB_PORT** | 3036 | 5432 | Not applicable | + +**Note:** The only required field for SQLite is **DB_NAME**. + +### 3. Adminer + +Adminer is UI tool for viewing the database contents and executing queries. + +It supports MySQL, PostgreSQL, SQLite. + +**URL**: http://invoiceshelf.test:8080 + +#### MySQL/PostgresSQL + +To log into the MySQL or PostgresSQL, use the database information specified in the above section (2. Databases) + +#### SQLite + +To log into the SQLite, use the following credentials: + +| KEY | VALUE | +|--------------|---------------------------| +| **USERNAME** | admin | +| **PASSWORD** | admin | +| **DATABASE** | /database/database.sqlite | + + +### 4. Mailpit (fake mail) + +To utilize Mailpit, use the following credentials: + +| KEY | VALUE | +|---------------------|-------------| +| **MAIL DRIVER** | smtp | +| **MAIL HOST** | mail | +| **MAIL PORT** | 1025 | +| **MAIL ENCRYPTION** | none | +| **MAIL USER** | leave empty | +| **MAIL PASS** | leave empty | +| **FROM MAIL ADDR** | your choice | +| **FROM MAIL NAME** | your choice | + + +**URL**: http://invoiceshelf.test:8025 + +--- + +If you have any questions, feel free to open issue. + + + + + + + + + + diff --git a/.dev/adminer/Dockerfile b/.dev/adminer/Dockerfile new file mode 100644 index 00000000..e858b2a2 --- /dev/null +++ b/.dev/adminer/Dockerfile @@ -0,0 +1,14 @@ +FROM adminer:latest + +USER root + +RUN set -x && \ + apt update && \ + apt install curl -y && \ + cd /var/www/html/plugins-enabled && \ + curl -O https://gist.githubusercontent.com/gdarko/00af6e9a754f09c3f81cd3c606c33311/raw/d5f6a30f00edecf30a5d380340d9dae79a3b7352/login-password-less.php + +USER adminer +CMD [ "php", "-S", "[::]:8080", "-t", "/var/www/html" ] + +EXPOSE 8080 diff --git a/.dev/docker-compose.mysql.yml b/.dev/docker-compose.mysql.yml new file mode 100644 index 00000000..c1d25570 --- /dev/null +++ b/.dev/docker-compose.mysql.yml @@ -0,0 +1,70 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: ./php + dockerfile: Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + ports: + - 5173:5173 + volumes: + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + db: + image: mariadb:10.9 + container_name: invoiceshelf-dev-mysql + environment: + MYSQL_ROOT_PASSWORD: invoiceshelf + MYSQL_DATABASE: invoiceshelf + MYSQL_USER: invoiceshelf + MYSQL_PASSWORD: invoiceshelf + ports: + - "3306:3306" + volumes: + - invoiceshelf-dev-mysql:/var/lib/mysql + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: ./adminer + dockerfile: Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + ports: + - '8080:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: + +volumes: + invoiceshelf-dev-mysql: diff --git a/.dev/docker-compose.pgsql.yml b/.dev/docker-compose.pgsql.yml new file mode 100644 index 00000000..2746a726 --- /dev/null +++ b/.dev/docker-compose.pgsql.yml @@ -0,0 +1,69 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: ./php + dockerfile: Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + ports: + - 5173:5173 + volumes: + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + db: + image: postgres:15 + container_name: invoiceshelf-dev-pgsql + environment: + - POSTGRES_PASSWORD=invoiceshelf + - POSTGRES_USER=invoiceshelf + - POSTGRES_DB=invoiceshelf + ports: + - 5432:5432 + volumes: + - invoiceshelf-dev-pgsql:/var/lib/postgresql/data + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: ./adminer + dockerfile: Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + ports: + - '8080:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: + +volumes: + invoiceshelf-dev-pgsql: diff --git a/.dev/docker-compose.sqlite.yml b/.dev/docker-compose.sqlite.yml new file mode 100644 index 00000000..d130c80f --- /dev/null +++ b/.dev/docker-compose.sqlite.yml @@ -0,0 +1,54 @@ +services: + php-fpm: + container_name: invoiceshelf-dev-php + build: + context: ./php + dockerfile: Dockerfile + args: + - UID=${USRID:-1000} + - GID=${GRPID:-1000} + volumes: + - ../:/home/invoiceshelf/app + ports: + - 5173:5173 + networks: + - invoiceshelf-dev + + nginx: + container_name: invoiceshelf-dev-nginx + image: nginx:stable + ports: + - '80:80' + volumes: + - ./nginx/conf.d/dev.conf:/etc/nginx/conf.d/dev.conf + - ../:/home/invoiceshelf/app + networks: + - invoiceshelf-dev + + adminer: + container_name: invoiceshelf-dev-adminer + build: + context: ./adminer + dockerfile: Dockerfile + environment: + ADMINER_PLUGINS: tables-filter + ADMINER_DESIGN: konya + volumes: + - ../database:/database + ports: + - '8080:8080' + networks: + - invoiceshelf-dev + + mail: + container_name: invoiceshelf-dev-mailpit + image: axllent/mailpit:latest + restart: always + ports: + - 1025:1025 + - 8025:8025 + networks: + - invoiceshelf-dev + +networks: + invoiceshelf-dev: diff --git a/.dev/nginx/conf.d/dev.conf b/.dev/nginx/conf.d/dev.conf new file mode 100644 index 00000000..2def2a74 --- /dev/null +++ b/.dev/nginx/conf.d/dev.conf @@ -0,0 +1,22 @@ +server { + listen 80; + + root /home/invoiceshelf/app/public; + index index.php; + + error_log /var/log/nginx/dev-error.log; + access_log /var/log/nginx/dev-access.log; + + server_name invoiceshelf.test; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass php-fpm:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + include fastcgi_params; + } +} diff --git a/.dev/php/Dockerfile b/.dev/php/Dockerfile new file mode 100644 index 00000000..ec4a7a3a --- /dev/null +++ b/.dev/php/Dockerfile @@ -0,0 +1,64 @@ +FROM php:8.3-fpm-bookworm + +ARG UID +ARG GID + +ENV UID=${UID} +ENV GID=${GID} + +USER root + +# Create user/group +RUN addgroup --gid ${GID} --system invoiceshelf && \ + adduser --gid ${GID} --system --disabled-password --shell /bin/sh -u ${UID} --home /home/invoiceshelf invoiceshelf && \ + sed -i "s/user = www-data/user = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf && \ + sed -i "s/group = www-data/group = invoiceshelf/g" /usr/local/etc/php-fpm.d/www.conf + +# Install composer & npm +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \ + curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ + apt install -y nodejs + +# install dependencies +RUN apt update && apt install -y \ + libpng-dev \ + zlib1g-dev \ + libxml2-dev \ + libzip-dev \ + libonig-dev \ + libpq-dev \ + sqlite3 \ + postgresql-client \ + mariadb-client \ + zip \ + curl \ + unzip \ + webp \ + && docker-php-ext-configure gd \ + && docker-php-ext-install -j$(nproc) gd \ + && docker-php-ext-install bcmath \ + && docker-php-ext-install mbstring \ + && docker-php-ext-install mysqli \ + && docker-php-ext-install pdo_mysql \ + && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \ + && docker-php-ext-install pgsql \ + && docker-php-ext-install pdo_pgsql \ + && docker-php-ext-install zip \ + && docker-php-ext-install xml \ + && docker-php-ext-install exif \ + && docker-php-source delete + +# Clear cache +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Set workdir +WORKDIR /home/invoiceshelf/app + +# Copy Files +COPY entrypoint.sh /entrypoint.sh + +# Entrypoint +ENTRYPOINT ["/entrypoint.sh"] + +# Launch php-fpm +CMD ["php-fpm"] diff --git a/.dev/php/entrypoint.sh b/.dev/php/entrypoint.sh new file mode 100755 index 00000000..22575bf0 --- /dev/null +++ b/.dev/php/entrypoint.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +echo "############################################" +echo "### InvoiceShelf Development Environment ###" +echo "############################################" + +cd /home/invoiceshelf/app + + +# Composer build +if [ ! -d vendor ]; then + composer install +fi + +# Empty sqlite database +if [ ! -f database/database.sqlite ]; then + cp database/stubs/sqlite.empty.db database/database.sqlite +fi + +# .env file set up +if [ ! -f .env ]; then + cp .env.example .env + php artisan key:generate --force +fi + +# NPM build +if [ ! -d node_modules ]; then + npm install + npm run build +fi + +# Storage symlink +php artisan storage:link + +# Permissions +chmod 775 storage/framework +chmod 775 storage/logs +chmod 775 bootstrap/cache +chown -R ${UID}:${GID} /home/invoiceshelf/app +chmod +x artisan + +echo "Entrypoint complete." + +exec $@ diff --git a/.dev/php/php.ini b/.dev/php/php.ini new file mode 100644 index 00000000..88d49d94 --- /dev/null +++ b/.dev/php/php.ini @@ -0,0 +1,1974 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. +; 3. A number of predefined registry keys on Windows +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security-conscious applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = On + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +; In production, it is recommended to set this to 0 to reduce the output +; of sensitive information in stack traces. +zend.exception_string_param_max_len = 0 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 90 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 512M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; https://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 128M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 64M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the ext/ +; extension folders as well as the separate PECL DLL download. +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=oci8_19 ; Use with Oracle Database 19 Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl +;extension=zip + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +;date.timezone = + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; Use mixed LF and CRLF line separators to keep compatibility with some +; RFC 2822 non conformant MTA. +mail.mixed_lf_and_crlf = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; https://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; https://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; https://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; https://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; https://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables row prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; https://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Tuning: Sets the amount of LOB data that is internally returned from +; Oracle Database when an Oracle LOB locator is initially retrieved as +; part of a query. Setting this can improve performance by reducing +; round-trips. +; https://php.net/oci8.prefetch-lob-size +; oci8.prefetch_lob_size = 0 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; https://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; https://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; https://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = -1 + +; Assert(expr); active by default. +; https://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; https://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; https://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; https://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; https://php.net/assert.callback +;assert.callback = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= diff --git a/.env.example b/.env.example index ebf4ab4e..5e3dfa29 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,20 @@ APP_ENV=production APP_KEY=base64:kgk/4DW1vEVy7aEvet5FPp5un6PIGe/so8H0mvoUtW0= APP_DEBUG=true +APP_NAME="InvoiceShelf" APP_LOG_LEVEL=debug +APP_TIMEZONE=UTC APP_URL=http://invoiceshelf.test +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +APP_MAINTENANCE_STORE=database + +BCRYPT_ROUNDS=12 + DB_CONNECTION=sqlite DB_HOST= DB_PORT= @@ -11,11 +22,14 @@ DB_DATABASE= DB_USERNAME= DB_PASSWORD= -BROADCAST_DRIVER=log -CACHE_DRIVER=file -QUEUE_DRIVER=sync -SESSION_DRIVER=cookie +BROADCAST_CONNECTION=log +CACHE_STORE=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file SESSION_LIFETIME=1440 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null @@ -36,8 +50,7 @@ PUSHER_KEY= PUSHER_SECRET= SANCTUM_STATEFUL_DOMAINS=invoiceshelf.test -SESSION_DOMAIN=invoiceshelf.test - TRUSTED_PROXIES="*" CRON_JOB_AUTH_TOKEN="" +LOG_STACK=single diff --git a/.gitattributes b/.gitattributes index a8763f8e..f9b559c4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,25 @@ -* text=auto +# Set the default behavior, in case people don't have core.autocrlf set. +* text eol=lf + +# Explicitly declare text files you want to always be normalized and converted +# to native line endings on checkout. +*.c text +*.h text + +# Declare files that will always have CRLF line endings on checkout. +*.sln text eol=crlf + +# Denote all files that are truly binary and should not be modified. +*.png binary +*.jpg binary +*.gif binary +*.otf binary +*.eot binary +*.svg binary +*.ttf binary +*.woff binary +*.woff2 binary + *.css linguist-vendored *.scss linguist-vendored +*.js linguist-vendored \ No newline at end of file diff --git a/.gitignore b/.gitignore index f3ceb21a..56983f08 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ Homestead.yaml .php-cs-fixer.cache /storage/fonts* package-lock.json +/.dev/docker-compose.yml +/.dev/docker-compose.yaml diff --git a/Makefile b/Makefile index 9ab43124..de45ca6c 100644 --- a/Makefile +++ b/Makefile @@ -29,14 +29,15 @@ dist-gen: clean composer npm-build @cp -r routes InvoiceShelf @cp -r storage InvoiceShelf @cp -r vendor InvoiceShelf 2> /dev/null || true + @cp -r version.md InvoiceShelf @cp -r .env.example InvoiceShelf @cp -r artisan InvoiceShelf @cp -r composer.json InvoiceShelf @cp -r composer.lock InvoiceShelf - @cp -r server.php InvoiceShelf @cp -r LICENSE InvoiceShelf @cp -r readme.md InvoiceShelf @cp -r SECURITY.md InvoiceShelf + @cp -r server.php InvoiceShelf @touch InvoiceShelf/storage/logs/laravel.log dist-clean: dist-gen diff --git a/app/Bouncer/Scopes/DefaultScope.php b/app/Bouncer/Scopes/DefaultScope.php index 17a0f650..b93a5664 100644 --- a/app/Bouncer/Scopes/DefaultScope.php +++ b/app/Bouncer/Scopes/DefaultScope.php @@ -1,6 +1,6 @@ argument('name'); $type = $this->option('type'); diff --git a/app/Console/Commands/InstallModuleCommand.php b/app/Console/Commands/InstallModuleCommand.php index c86144ea..a55e70cc 100644 --- a/app/Console/Commands/InstallModuleCommand.php +++ b/app/Console/Commands/InstallModuleCommand.php @@ -1,9 +1,9 @@ argument('module'), $this->argument('version')); diff --git a/app/Console/Commands/ResetApp.php b/app/Console/Commands/ResetApp.php index c704a857..d4e3fc42 100644 --- a/app/Console/Commands/ResetApp.php +++ b/app/Console/Commands/ResetApp.php @@ -1,6 +1,6 @@ confirmToProceed()) { return; diff --git a/app/Console/Commands/UpdateCommand.php b/app/Console/Commands/UpdateCommand.php index e14ce4b5..916ef627 100644 --- a/app/Console/Commands/UpdateCommand.php +++ b/app/Console/Commands/UpdateCommand.php @@ -1,10 +1,10 @@ command('check:invoices:status') - ->daily(); - - $schedule->command('check:estimates:status') - ->daily(); - - $recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get(); - foreach ($recurringInvoices as $recurringInvoice) { - $timeZone = CompanySetting::getSetting('time_zone', $recurringInvoice->company_id); - - $schedule->call(function () use ($recurringInvoice) { - $recurringInvoice->generateInvoice(); - })->cron($recurringInvoice->frequency)->timezone($timeZone); - } - } - } - - /** - * Register the Closure based commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); - require base_path('routes/console.php'); - } -} diff --git a/app/Events/ModuleDisabledEvent.php b/app/Events/ModuleDisabledEvent.php index 16eab58c..793fa94c 100644 --- a/app/Events/ModuleDisabledEvent.php +++ b/app/Events/ModuleDisabledEvent.php @@ -1,6 +1,6 @@ json([ 'version' => $version, + 'channel' => $channel, ]); } } diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 261a1253..345847e2 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -1,13 +1,13 @@ month) { - $startDate->month($terms[0])->startOfMonth(); - $start->month($terms[0])->startOfMonth(); - $end->month($terms[0])->endOfMonth(); + if ($companyStartMonth <= $start->month) { + $startDate->month($companyStartMonth)->startOfMonth(); + $start->month($companyStartMonth)->startOfMonth(); + $end->month($companyStartMonth)->endOfMonth(); } else { - $startDate->subYear()->month($terms[0])->startOfMonth(); - $start->subYear()->month($terms[0])->startOfMonth(); - $end->subYear()->month($terms[0])->endOfMonth(); + $startDate->subYear()->month($companyStartMonth)->startOfMonth(); + $start->subYear()->month($companyStartMonth)->startOfMonth(); + $end->subYear()->month($companyStartMonth)->endOfMonth(); } if ($request->has('previous_year')) { @@ -87,7 +88,7 @@ class CustomerStatsController extends Controller ($receiptTotals[$i] - $expenseTotals[$i]) ); $i++; - array_push($months, $start->format('M')); + array_push($months, $start->translatedFormat('M')); $monthCounter++; $end->startOfMonth(); $start->addMonth()->startOfMonth(); diff --git a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php index cc1bbc84..ada15c13 100644 --- a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php +++ b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php @@ -1,14 +1,14 @@ month) { - $startDate->month($terms[0])->startOfMonth(); - $start->month($terms[0])->startOfMonth(); - $end->month($terms[0])->endOfMonth(); + if ($companyStartMonth <= $start->month) { + $startDate->month($companyStartMonth)->startOfMonth(); + $start->month($companyStartMonth)->startOfMonth(); + $end->month($companyStartMonth)->endOfMonth(); } else { - $startDate->subYear()->month($terms[0])->startOfMonth(); - $start->subYear()->month($terms[0])->startOfMonth(); - $end->subYear()->month($terms[0])->endOfMonth(); + $startDate->subYear()->month($companyStartMonth)->startOfMonth(); + $start->subYear()->month($companyStartMonth)->startOfMonth(); + $end->subYear()->month($companyStartMonth)->endOfMonth(); } if ($request->has('previous_year')) { @@ -90,7 +91,7 @@ class DashboardController extends Controller ($receipt_totals[$i] - $expense_totals[$i]) ); $i++; - array_push($months, $start->format('M')); + array_push($months, $start->translatedFormat('M')); $monthCounter++; $end->startOfMonth(); $start->addMonth()->startOfMonth(); diff --git a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php index 3f21116f..ca8d5af8 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php @@ -1,10 +1,10 @@ authorize('create', Estimate::class); + + $date = Carbon::now(); + + $serial = (new SerialNumberFormatter()) + ->setModel($estimate) + ->setCompany($estimate->company_id) + ->setCustomer($estimate->customer_id) + ->setNextNumbers(); + + $due_date = null; + $dueDateEnabled = CompanySetting::getSetting( + 'estimate_set_expiry_date_automatically', + $request->header('company') + ); + + if ($dueDateEnabled === 'YES') { + $dueDateDays = intval(CompanySetting::getSetting( + 'estimate_expiry_date_days', + $request->header('company') + )); + $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); + } + + $exchange_rate = $estimate->exchange_rate; + + $newEstimate = Estimate::create([ + 'estimate_date' => $date->format('Y-m-d'), + 'expiry_date' => $due_date, + 'estimate_number' => $serial->getNextNumber(), + 'sequence_number' => $serial->nextSequenceNumber, + 'customer_sequence_number' => $serial->nextCustomerSequenceNumber, + 'reference_number' => $estimate->reference_number, + 'customer_id' => $estimate->customer_id, + 'company_id' => $request->header('company'), + 'template_name' => $estimate->template_name, + 'status' => Estimate::STATUS_DRAFT, + 'sub_total' => $estimate->sub_total, + 'discount' => $estimate->discount, + 'discount_type' => $estimate->discount_type, + 'discount_val' => $estimate->discount_val, + 'total' => $estimate->total, + 'due_amount' => $estimate->total, + 'tax_per_item' => $estimate->tax_per_item, + 'discount_per_item' => $estimate->discount_per_item, + 'tax' => $estimate->tax, + 'notes' => $estimate->notes, + 'exchange_rate' => $exchange_rate, + 'base_total' => $estimate->total * $exchange_rate, + 'base_discount_val' => $estimate->discount_val * $exchange_rate, + 'base_sub_total' => $estimate->sub_total * $exchange_rate, + 'base_tax' => $estimate->tax * $exchange_rate, + 'base_due_amount' => $estimate->total * $exchange_rate, + 'currency_id' => $estimate->currency_id, + 'sales_tax_type' => $estimate->sales_tax_type, + 'sales_tax_address_type' => $estimate->sales_tax_address_type, + ]); + + $newEstimate->unique_hash = Hashids::connection(Estimate::class)->encode($newEstimate->id); + $newEstimate->save(); + $estimate->load('items.taxes'); + + $estimateItems = $estimate->items->toArray(); + + foreach ($estimateItems as $estimateItem) { + $estimateItem['company_id'] = $request->header('company'); + $estimateItem['name'] = $estimateItem['name']; + $estimateItem['exchange_rate'] = $exchange_rate; + $estimateItem['base_price'] = $estimateItem['price'] * $exchange_rate; + $estimateItem['base_discount_val'] = $estimateItem['discount_val'] * $exchange_rate; + $estimateItem['base_tax'] = $estimateItem['tax'] * $exchange_rate; + $estimateItem['base_total'] = $estimateItem['total'] * $exchange_rate; + + $item = $newEstimate->items()->create($estimateItem); + + if (array_key_exists('taxes', $estimateItem) && $estimateItem['taxes']) { + foreach ($estimateItem['taxes'] as $tax) { + $tax['company_id'] = $request->header('company'); + + if ($tax['amount']) { + $item->taxes()->create($tax); + } + } + } + } + + if ($estimate->taxes) { + foreach ($estimate->taxes->toArray() as $tax) { + $tax['company_id'] = $request->header('company'); + $newEstimate->taxes()->create($tax); + } + } + + if ($estimate->fields()->exists()) { + $customFields = []; + + foreach ($estimate->fields as $data) { + $customFields[] = [ + 'id' => $data->custom_field_id, + 'value' => $data->defaultAnswer, + ]; + } + + $newEstimate->addCustomFields($customFields); + } + + return new EstimateResource($newEstimate); + } +} diff --git a/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php b/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php index 0a24f863..85d85451 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php @@ -1,16 +1,16 @@ header('company') - ); + )); $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); } diff --git a/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php b/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php index ad535e6c..6a4b1aa8 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/EstimateTemplatesController.php @@ -1,10 +1,10 @@ header('company') - ); + )); $due_date = Carbon::now()->addDays($dueDateDays)->format('Y-m-d'); } diff --git a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php index 8d974a8a..2bc845aa 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php @@ -1,10 +1,10 @@ id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php index d015a0d6..fc1ad264 100644 --- a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php @@ -1,15 +1,15 @@ id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php index 045b0060..684abe84 100644 --- a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php @@ -1,15 +1,15 @@ id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php index cc24aebf..a866b61c 100644 --- a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php @@ -1,16 +1,16 @@ id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php index e01e4ed2..0e3a762d 100644 --- a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php @@ -1,15 +1,15 @@ id); - $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->format($dateFormat); - $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); + $from_date = Carbon::createFromFormat('Y-m-d', $request->from_date)->translatedFormat($dateFormat); + $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->translatedFormat($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); $colors = [ diff --git a/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php b/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php index 1076caf6..293a67a4 100644 --- a/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php +++ b/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php @@ -1,9 +1,9 @@ config('mail.port'), 'mail_username' => config('mail.username'), 'mail_password' => config('mail.password'), - 'mail_encryption' => config('mail.encryption'), + 'mail_encryption' => is_null(config('mail.encryption')) ? 'none' : config('mail.encryption'), 'from_name' => config('mail.from.name'), 'from_mail' => config('mail.from.address'), 'mail_mailgun_endpoint' => config('services.mailgun.endpoint'), diff --git a/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php b/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php index 3d093cfc..aa2f8b42 100644 --- a/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php +++ b/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php @@ -1,12 +1,12 @@ get('channel', 'stable'); + $response = Updater::checkForUpdate(Setting::getSetting('version'), $channel); - return response()->json($json); + return response()->json($response); } } diff --git a/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php b/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php index 61574bda..4136f60c 100644 --- a/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php +++ b/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php @@ -1,10 +1,10 @@ $menu, 'current_customer_currency' => Currency::find($customer->currency_id), 'modules' => Module::where('enabled', true)->pluck('name'), + 'current_company_language' => CompanySetting::getSetting('language', $customer->company_id), ]]); } } diff --git a/app/Http/Controllers/V1/Customer/General/DashboardController.php b/app/Http/Controllers/V1/Customer/General/DashboardController.php index 5c705927..58d6fca9 100644 --- a/app/Http/Controllers/V1/Customer/General/DashboardController.php +++ b/app/Http/Controllers/V1/Customer/General/DashboardController.php @@ -1,13 +1,13 @@ json($results); diff --git a/app/Http/Controllers/V1/Installation/FilePermissionsController.php b/app/Http/Controllers/V1/Installation/FilePermissionsController.php index b8f03b29..05ac6777 100644 --- a/app/Http/Controllers/V1/Installation/FilePermissionsController.php +++ b/app/Http/Controllers/V1/Installation/FilePermissionsController.php @@ -1,10 +1,10 @@ json([ + 'languages' => config('invoiceshelf.languages'), + ]); + } +} diff --git a/app/Http/Controllers/V1/Installation/LoginController.php b/app/Http/Controllers/V1/Installation/LoginController.php index d814ca82..ef18eb73 100644 --- a/app/Http/Controllers/V1/Installation/LoginController.php +++ b/app/Http/Controllers/V1/Installation/LoginController.php @@ -1,11 +1,11 @@ json([ 'profile_complete' => 0, + 'profile_language' => 'en', ]); } return response()->json([ 'profile_complete' => Setting::getSetting('profile_complete'), + 'profile_language' => Setting::getSetting('profile_language'), ]); } @@ -43,4 +45,13 @@ class OnboardingWizardController extends Controller 'profile_complete' => Setting::getSetting('profile_complete'), ]); } + + public function saveLanguage(Request $request) + { + Setting::setSetting('profile_language', $request->profile_language); + + return response()->json([ + 'profile_language' => Setting::getSetting('profile_language'), + ]); + } } diff --git a/app/Http/Controllers/V1/Installation/RequirementsController.php b/app/Http/Controllers/V1/Installation/RequirementsController.php index 1a4ad44e..160af02e 100755 --- a/app/Http/Controllers/V1/Installation/RequirementsController.php +++ b/app/Http/Controllers/V1/Installation/RequirementsController.php @@ -1,10 +1,10 @@ [ - \InvoiceShelf\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - // \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - - 'api' => [ - EnsureFrontendRequestsAreStateful::class, - 'throttle:180,1', - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - ]; - - /** - * The application's route middleware. - * - * These middleware may be assigned to groups or used individually. - * - * @var array - */ - protected $routeMiddleware = [ - 'auth' => \InvoiceShelf\Http\Middleware\Authenticate::class, - 'bouncer' => \InvoiceShelf\Http\Middleware\ScopeBouncer::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \InvoiceShelf\Http\Middleware\RedirectIfAuthenticated::class, - 'customer' => \InvoiceShelf\Http\Middleware\CustomerRedirectIfAuthenticated::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - 'install' => \InvoiceShelf\Http\Middleware\InstallationMiddleware::class, - 'redirect-if-installed' => \InvoiceShelf\Http\Middleware\RedirectIfInstalled::class, - 'redirect-if-unauthenticated' => \InvoiceShelf\Http\Middleware\RedirectIfUnauthorized::class, - 'customer-guest' => \InvoiceShelf\Http\Middleware\CustomerGuest::class, - 'company' => \InvoiceShelf\Http\Middleware\CompanyMiddleware::class, - 'pdf-auth' => \InvoiceShelf\Http\Middleware\PdfMiddleware::class, - 'cron-job' => \InvoiceShelf\Http\Middleware\CronJobMiddleware::class, - 'customer-portal' => \InvoiceShelf\Http\Middleware\CustomerPortalMiddleware::class, - ]; - - /** - * The priority-sorted list of middleware. - * - * This forces the listed middleware to always be in the given order. - * - * @var array - */ - protected $middlewarePriority = [ - \Illuminate\Session\Middleware\StartSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \InvoiceShelf\Http\Middleware\Authenticate::class, - \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \Illuminate\Auth\Middleware\Authorize::class, - ]; -} diff --git a/app/Http/Middleware/AdminMiddleware.php b/app/Http/Middleware/AdminMiddleware.php index 7e1cbb54..12341fcc 100644 --- a/app/Http/Middleware/AdminMiddleware.php +++ b/app/Http/Middleware/AdminMiddleware.php @@ -1,20 +1,21 @@ guest() || ! Auth::user()->isSuperAdminOrAdmin()) { if ($request->ajax() || $request->wantsJson()) { diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index c76b3f3b..a4be5c58 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -1,6 +1,6 @@ user(); diff --git a/app/Http/Middleware/ConfigMiddleware.php b/app/Http/Middleware/ConfigMiddleware.php index b3b6567c..d4b918ad 100644 --- a/app/Http/Middleware/ConfigMiddleware.php +++ b/app/Http/Middleware/ConfigMiddleware.php @@ -1,20 +1,21 @@ has('file_disk_id')) { diff --git a/app/Http/Middleware/CronJobMiddleware.php b/app/Http/Middleware/CronJobMiddleware.php index ad992168..fad8ae67 100644 --- a/app/Http/Middleware/CronJobMiddleware.php +++ b/app/Http/Middleware/CronJobMiddleware.php @@ -1,9 +1,10 @@ header('x-authorization-token') && $request->header('x-authorization-token') == config('services.cron_job.auth_token')) { return $next($request); diff --git a/app/Http/Middleware/CustomerPortalMiddleware.php b/app/Http/Middleware/CustomerPortalMiddleware.php index 5cf03bf8..91d68acf 100644 --- a/app/Http/Middleware/CustomerPortalMiddleware.php +++ b/app/Http/Middleware/CustomerPortalMiddleware.php @@ -1,10 +1,11 @@ user(); diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php index 9cee42d4..e59cca6b 100644 --- a/app/Http/Middleware/EncryptCookies.php +++ b/app/Http/Middleware/EncryptCookies.php @@ -1,6 +1,6 @@ check() || Auth::guard('sanctum')->check() || Auth::guard('customer')->check()) { return $next($request); diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index f883959f..daa70891 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -1,10 +1,10 @@ check()) { return $next($request); diff --git a/app/Http/Middleware/ScopeBouncer.php b/app/Http/Middleware/ScopeBouncer.php index 717511e5..82b97fbc 100644 --- a/app/Http/Middleware/ScopeBouncer.php +++ b/app/Http/Middleware/ScopeBouncer.php @@ -1,9 +1,11 @@ user(); $tenantId = $request->header('company') diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php index ece5d79a..5a50e7b5 100644 --- a/app/Http/Middleware/TrimStrings.php +++ b/app/Http/Middleware/TrimStrings.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/BulkExchangeRateRequest.php b/app/Http/Requests/BulkExchangeRateRequest.php index 581a99c6..8b04d0cd 100644 --- a/app/Http/Requests/BulkExchangeRateRequest.php +++ b/app/Http/Requests/BulkExchangeRateRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompaniesRequest.php b/app/Http/Requests/CompaniesRequest.php index c774ea5c..cf4798cd 100644 --- a/app/Http/Requests/CompaniesRequest.php +++ b/app/Http/Requests/CompaniesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompanyLogoRequest.php b/app/Http/Requests/CompanyLogoRequest.php index cf2a75cf..7b5bebd3 100644 --- a/app/Http/Requests/CompanyLogoRequest.php +++ b/app/Http/Requests/CompanyLogoRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/CompanyRequest.php b/app/Http/Requests/CompanyRequest.php index 8dc5001a..5f3fb3b2 100644 --- a/app/Http/Requests/CompanyRequest.php +++ b/app/Http/Requests/CompanyRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CompanySettingRequest.php b/app/Http/Requests/CompanySettingRequest.php index 65842951..b6e267e2 100644 --- a/app/Http/Requests/CompanySettingRequest.php +++ b/app/Http/Requests/CompanySettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CustomFieldRequest.php b/app/Http/Requests/CustomFieldRequest.php index e5e10d2b..3f2ccffd 100644 --- a/app/Http/Requests/CustomFieldRequest.php +++ b/app/Http/Requests/CustomFieldRequest.php @@ -1,6 +1,6 @@ 'required', diff --git a/app/Http/Requests/Customer/CustomerLoginRequest.php b/app/Http/Requests/Customer/CustomerLoginRequest.php index 63b6db67..93f65d70 100644 --- a/app/Http/Requests/Customer/CustomerLoginRequest.php +++ b/app/Http/Requests/Customer/CustomerLoginRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/Customer/CustomerProfileRequest.php b/app/Http/Requests/Customer/CustomerProfileRequest.php index 64df7b8c..3782fb1e 100644 --- a/app/Http/Requests/Customer/CustomerProfileRequest.php +++ b/app/Http/Requests/Customer/CustomerProfileRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/CustomerEstimateStatusRequest.php b/app/Http/Requests/CustomerEstimateStatusRequest.php index ad8cb975..05211693 100644 --- a/app/Http/Requests/CustomerEstimateStatusRequest.php +++ b/app/Http/Requests/CustomerEstimateStatusRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/CustomerRequest.php b/app/Http/Requests/CustomerRequest.php index 36e557a1..58c58acd 100644 --- a/app/Http/Requests/CustomerRequest.php +++ b/app/Http/Requests/CustomerRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DatabaseEnvironmentRequest.php b/app/Http/Requests/DatabaseEnvironmentRequest.php index 85834d61..5621a7d9 100644 --- a/app/Http/Requests/DatabaseEnvironmentRequest.php +++ b/app/Http/Requests/DatabaseEnvironmentRequest.php @@ -1,6 +1,6 @@ get('database_connection')) { case 'sqlite': diff --git a/app/Http/Requests/DeleteCustomersRequest.php b/app/Http/Requests/DeleteCustomersRequest.php index a13e6d98..3bc72431 100644 --- a/app/Http/Requests/DeleteCustomersRequest.php +++ b/app/Http/Requests/DeleteCustomersRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteEstimatesRequest.php b/app/Http/Requests/DeleteEstimatesRequest.php index 7a144360..b94fbb6d 100644 --- a/app/Http/Requests/DeleteEstimatesRequest.php +++ b/app/Http/Requests/DeleteEstimatesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteExpensesRequest.php b/app/Http/Requests/DeleteExpensesRequest.php index 0653c5aa..553ab87b 100644 --- a/app/Http/Requests/DeleteExpensesRequest.php +++ b/app/Http/Requests/DeleteExpensesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteInvoiceRequest.php b/app/Http/Requests/DeleteInvoiceRequest.php index eb8d9d1b..b5e87509 100644 --- a/app/Http/Requests/DeleteInvoiceRequest.php +++ b/app/Http/Requests/DeleteInvoiceRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DeleteItemsRequest.php b/app/Http/Requests/DeleteItemsRequest.php index b75e65cf..0fbaa7f5 100644 --- a/app/Http/Requests/DeleteItemsRequest.php +++ b/app/Http/Requests/DeleteItemsRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/DeletePaymentsRequest.php b/app/Http/Requests/DeletePaymentsRequest.php index 66e2530c..50a53f93 100644 --- a/app/Http/Requests/DeletePaymentsRequest.php +++ b/app/Http/Requests/DeletePaymentsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DeleteUserRequest.php b/app/Http/Requests/DeleteUserRequest.php index b2323a9b..aafb05aa 100644 --- a/app/Http/Requests/DeleteUserRequest.php +++ b/app/Http/Requests/DeleteUserRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/DiskEnvironmentRequest.php b/app/Http/Requests/DiskEnvironmentRequest.php index cbd4cfea..2f2f1838 100644 --- a/app/Http/Requests/DiskEnvironmentRequest.php +++ b/app/Http/Requests/DiskEnvironmentRequest.php @@ -1,6 +1,6 @@ get('driver')) { diff --git a/app/Http/Requests/DomainEnvironmentRequest.php b/app/Http/Requests/DomainEnvironmentRequest.php index d1e1a4bc..3d91795b 100644 --- a/app/Http/Requests/DomainEnvironmentRequest.php +++ b/app/Http/Requests/DomainEnvironmentRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/EstimatesRequest.php b/app/Http/Requests/EstimatesRequest.php index 9bc0d2f4..3c3dd45b 100644 --- a/app/Http/Requests/EstimatesRequest.php +++ b/app/Http/Requests/EstimatesRequest.php @@ -1,31 +1,27 @@ [ @@ -59,7 +55,7 @@ class EstimatesRequest extends FormRequest 'total' => [ 'integer', 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ @@ -83,7 +79,7 @@ class EstimatesRequest extends FormRequest 'required', ], 'items.*.quantity' => [ - 'integer', + 'numeric', 'required', ], 'items.*.price' => [ diff --git a/app/Http/Requests/ExchangeRateLogRequest.php b/app/Http/Requests/ExchangeRateLogRequest.php index 1b593814..07d98d2c 100644 --- a/app/Http/Requests/ExchangeRateLogRequest.php +++ b/app/Http/Requests/ExchangeRateLogRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/ExchangeRateProviderRequest.php b/app/Http/Requests/ExchangeRateProviderRequest.php index 4c3d02f1..72584c41 100644 --- a/app/Http/Requests/ExchangeRateProviderRequest.php +++ b/app/Http/Requests/ExchangeRateProviderRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/ExpenseCategoryRequest.php b/app/Http/Requests/ExpenseCategoryRequest.php index da3e52c4..8e512c17 100644 --- a/app/Http/Requests/ExpenseCategoryRequest.php +++ b/app/Http/Requests/ExpenseCategoryRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/ExpenseRequest.php b/app/Http/Requests/ExpenseRequest.php index 40a187f9..1ea65d13 100644 --- a/app/Http/Requests/ExpenseRequest.php +++ b/app/Http/Requests/ExpenseRequest.php @@ -1,28 +1,24 @@ header('company')); diff --git a/app/Http/Requests/GetSettingRequest.php b/app/Http/Requests/GetSettingRequest.php index 71eebad2..a5441e71 100644 --- a/app/Http/Requests/GetSettingRequest.php +++ b/app/Http/Requests/GetSettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/GetSettingsRequest.php b/app/Http/Requests/GetSettingsRequest.php index f81702c5..4600ffb5 100644 --- a/app/Http/Requests/GetSettingsRequest.php +++ b/app/Http/Requests/GetSettingsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/InvoicesRequest.php b/app/Http/Requests/InvoicesRequest.php index 58102546..f2e65814 100644 --- a/app/Http/Requests/InvoicesRequest.php +++ b/app/Http/Requests/InvoicesRequest.php @@ -1,31 +1,27 @@ [ @@ -59,7 +55,7 @@ class InvoicesRequest extends FormRequest 'total' => [ 'integer', 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ @@ -83,7 +79,7 @@ class InvoicesRequest extends FormRequest 'required', ], 'items.*.quantity' => [ - 'integer', + 'numeric', 'required', ], 'items.*.price' => [ diff --git a/app/Http/Requests/ItemsRequest.php b/app/Http/Requests/ItemsRequest.php index 3e51b590..e8d9dd74 100644 --- a/app/Http/Requests/ItemsRequest.php +++ b/app/Http/Requests/ItemsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/LoginRequest.php b/app/Http/Requests/LoginRequest.php index 11dad9a7..2a637b10 100644 --- a/app/Http/Requests/LoginRequest.php +++ b/app/Http/Requests/LoginRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/MailEnvironmentRequest.php b/app/Http/Requests/MailEnvironmentRequest.php index 3d5e4ee3..242162c6 100644 --- a/app/Http/Requests/MailEnvironmentRequest.php +++ b/app/Http/Requests/MailEnvironmentRequest.php @@ -1,6 +1,6 @@ get('mail_driver')) { case 'smtp': diff --git a/app/Http/Requests/NotesRequest.php b/app/Http/Requests/NotesRequest.php index a47004cc..a1c16be9 100644 --- a/app/Http/Requests/NotesRequest.php +++ b/app/Http/Requests/NotesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/PaymentMethodRequest.php b/app/Http/Requests/PaymentMethodRequest.php index 965ebfb2..1e8f3888 100644 --- a/app/Http/Requests/PaymentMethodRequest.php +++ b/app/Http/Requests/PaymentMethodRequest.php @@ -1,29 +1,25 @@ [ diff --git a/app/Http/Requests/PaymentRequest.php b/app/Http/Requests/PaymentRequest.php index 51b45918..772d2a80 100644 --- a/app/Http/Requests/PaymentRequest.php +++ b/app/Http/Requests/PaymentRequest.php @@ -1,30 +1,26 @@ [ diff --git a/app/Http/Requests/ProfileRequest.php b/app/Http/Requests/ProfileRequest.php index cebad550..edac19a5 100644 --- a/app/Http/Requests/ProfileRequest.php +++ b/app/Http/Requests/ProfileRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/RecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoiceRequest.php index 08fbc709..f9792832 100644 --- a/app/Http/Requests/RecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoiceRequest.php @@ -1,30 +1,26 @@ header('company')); @@ -56,8 +52,7 @@ class RecurringInvoiceRequest extends FormRequest ], 'total' => [ 'integer', - 'numeric', - 'max:99999999', + 'max:999999999999', 'required', ], 'tax' => [ diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index 5107994f..76b2ffd4 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendEstimatesRequest.php b/app/Http/Requests/SendEstimatesRequest.php index 68f94a58..807e5fac 100644 --- a/app/Http/Requests/SendEstimatesRequest.php +++ b/app/Http/Requests/SendEstimatesRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendInvoiceRequest.php b/app/Http/Requests/SendInvoiceRequest.php index a610fb8a..758971d6 100644 --- a/app/Http/Requests/SendInvoiceRequest.php +++ b/app/Http/Requests/SendInvoiceRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SendPaymentRequest.php b/app/Http/Requests/SendPaymentRequest.php index 251e31a0..d020bcfa 100644 --- a/app/Http/Requests/SendPaymentRequest.php +++ b/app/Http/Requests/SendPaymentRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SettingKeyRequest.php b/app/Http/Requests/SettingKeyRequest.php index 7fc351d0..fbee5581 100644 --- a/app/Http/Requests/SettingKeyRequest.php +++ b/app/Http/Requests/SettingKeyRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/SettingRequest.php b/app/Http/Requests/SettingRequest.php index 488b86c4..f2fb859b 100644 --- a/app/Http/Requests/SettingRequest.php +++ b/app/Http/Requests/SettingRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/TaxTypeRequest.php b/app/Http/Requests/TaxTypeRequest.php index a0a48802..63605c4c 100644 --- a/app/Http/Requests/TaxTypeRequest.php +++ b/app/Http/Requests/TaxTypeRequest.php @@ -1,29 +1,25 @@ [ diff --git a/app/Http/Requests/UnitRequest.php b/app/Http/Requests/UnitRequest.php index d7c43ee2..d7151c9d 100644 --- a/app/Http/Requests/UnitRequest.php +++ b/app/Http/Requests/UnitRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UnzipUpdateRequest.php b/app/Http/Requests/UnzipUpdateRequest.php index 59a96062..cb4492ed 100644 --- a/app/Http/Requests/UnzipUpdateRequest.php +++ b/app/Http/Requests/UnzipUpdateRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UpdateSettingsRequest.php b/app/Http/Requests/UpdateSettingsRequest.php index 83fc5c53..83f4ae5c 100644 --- a/app/Http/Requests/UpdateSettingsRequest.php +++ b/app/Http/Requests/UpdateSettingsRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UploadExpenseReceiptRequest.php b/app/Http/Requests/UploadExpenseReceiptRequest.php index aacaef54..8329049a 100644 --- a/app/Http/Requests/UploadExpenseReceiptRequest.php +++ b/app/Http/Requests/UploadExpenseReceiptRequest.php @@ -1,28 +1,24 @@ [ diff --git a/app/Http/Requests/UploadModuleRequest.php b/app/Http/Requests/UploadModuleRequest.php index 973ffc91..af53cae0 100644 --- a/app/Http/Requests/UploadModuleRequest.php +++ b/app/Http/Requests/UploadModuleRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Requests/UserRequest.php b/app/Http/Requests/UserRequest.php index 9238a09c..d456ce83 100644 --- a/app/Http/Requests/UserRequest.php +++ b/app/Http/Requests/UserRequest.php @@ -1,6 +1,6 @@ [ diff --git a/app/Http/Resources/AbilityCollection.php b/app/Http/Resources/AbilityCollection.php index 51aba7f3..8583cc0b 100644 --- a/app/Http/Resources/AbilityCollection.php +++ b/app/Http/Resources/AbilityCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/AddressCollection.php b/app/Http/Resources/AddressCollection.php index 7663e664..684b1c08 100644 --- a/app/Http/Resources/AddressCollection.php +++ b/app/Http/Resources/AddressCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CompanyCollection.php b/app/Http/Resources/CompanyCollection.php index fce53898..77bb0e30 100644 --- a/app/Http/Resources/CompanyCollection.php +++ b/app/Http/Resources/CompanyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CountryCollection.php b/app/Http/Resources/CountryCollection.php index 237c5071..c92f4886 100644 --- a/app/Http/Resources/CountryCollection.php +++ b/app/Http/Resources/CountryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CurrencyCollection.php b/app/Http/Resources/CurrencyCollection.php index 0edf9544..841e97fb 100644 --- a/app/Http/Resources/CurrencyCollection.php +++ b/app/Http/Resources/CurrencyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomFieldCollection.php b/app/Http/Resources/CustomFieldCollection.php index 8f23e2ff..3248ae1d 100644 --- a/app/Http/Resources/CustomFieldCollection.php +++ b/app/Http/Resources/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomFieldValueCollection.php b/app/Http/Resources/CustomFieldValueCollection.php index 1a59565c..62ac75e5 100644 --- a/app/Http/Resources/CustomFieldValueCollection.php +++ b/app/Http/Resources/CustomFieldValueCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/AddressCollection.php b/app/Http/Resources/Customer/AddressCollection.php index 2bfe927b..0dca13a1 100644 --- a/app/Http/Resources/Customer/AddressCollection.php +++ b/app/Http/Resources/Customer/AddressCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CompanyResource.php b/app/Http/Resources/Customer/CompanyResource.php index b2b37060..4cd366f4 100644 --- a/app/Http/Resources/Customer/CompanyResource.php +++ b/app/Http/Resources/Customer/CompanyResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CountryCollection.php b/app/Http/Resources/Customer/CountryCollection.php index a64093c2..db802b9c 100644 --- a/app/Http/Resources/Customer/CountryCollection.php +++ b/app/Http/Resources/Customer/CountryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CurrencyCollection.php b/app/Http/Resources/Customer/CurrencyCollection.php index f9e0cc6f..803f30d3 100644 --- a/app/Http/Resources/Customer/CurrencyCollection.php +++ b/app/Http/Resources/Customer/CurrencyCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomFieldCollection.php b/app/Http/Resources/Customer/CustomFieldCollection.php index e6ccde4a..92ea7428 100644 --- a/app/Http/Resources/Customer/CustomFieldCollection.php +++ b/app/Http/Resources/Customer/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomFieldValueCollection.php b/app/Http/Resources/Customer/CustomFieldValueCollection.php index 0f6c24dd..dd596621 100644 --- a/app/Http/Resources/Customer/CustomFieldValueCollection.php +++ b/app/Http/Resources/Customer/CustomFieldValueCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/CustomerCollection.php b/app/Http/Resources/Customer/CustomerCollection.php index e9877ddd..7be718e6 100644 --- a/app/Http/Resources/Customer/CustomerCollection.php +++ b/app/Http/Resources/Customer/CustomerCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/EstimateCollection.php b/app/Http/Resources/Customer/EstimateCollection.php index e0e3c59b..88b6a828 100644 --- a/app/Http/Resources/Customer/EstimateCollection.php +++ b/app/Http/Resources/Customer/EstimateCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/EstimateResource.php b/app/Http/Resources/Customer/EstimateResource.php index 58de4e2a..5cbdb0a0 100644 --- a/app/Http/Resources/Customer/EstimateResource.php +++ b/app/Http/Resources/Customer/EstimateResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ExpenseCategoryCollection.php b/app/Http/Resources/Customer/ExpenseCategoryCollection.php index 6197b963..d5390e75 100644 --- a/app/Http/Resources/Customer/ExpenseCategoryCollection.php +++ b/app/Http/Resources/Customer/ExpenseCategoryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ExpenseCollection.php b/app/Http/Resources/Customer/ExpenseCollection.php index 239deaa0..d43a005f 100644 --- a/app/Http/Resources/Customer/ExpenseCollection.php +++ b/app/Http/Resources/Customer/ExpenseCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/InvoiceCollection.php b/app/Http/Resources/Customer/InvoiceCollection.php index ad91c305..50c74636 100644 --- a/app/Http/Resources/Customer/InvoiceCollection.php +++ b/app/Http/Resources/Customer/InvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/InvoiceResource.php b/app/Http/Resources/Customer/InvoiceResource.php index 55a1c01a..a66e0fb9 100644 --- a/app/Http/Resources/Customer/InvoiceResource.php +++ b/app/Http/Resources/Customer/InvoiceResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/ItemCollection.php b/app/Http/Resources/Customer/ItemCollection.php index ad5a0469..3fcc1458 100644 --- a/app/Http/Resources/Customer/ItemCollection.php +++ b/app/Http/Resources/Customer/ItemCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/PaymentResource.php b/app/Http/Resources/Customer/PaymentResource.php index a5e8aa89..d0e9736a 100644 --- a/app/Http/Resources/Customer/PaymentResource.php +++ b/app/Http/Resources/Customer/PaymentResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/RecurringInvoiceCollection.php b/app/Http/Resources/Customer/RecurringInvoiceCollection.php index 17c1c371..c6793672 100644 --- a/app/Http/Resources/Customer/RecurringInvoiceCollection.php +++ b/app/Http/Resources/Customer/RecurringInvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TaxCollection.php b/app/Http/Resources/Customer/TaxCollection.php index ee28aafd..0d21774d 100644 --- a/app/Http/Resources/Customer/TaxCollection.php +++ b/app/Http/Resources/Customer/TaxCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TaxTypeCollection.php b/app/Http/Resources/Customer/TaxTypeCollection.php index 1c408214..56335b67 100644 --- a/app/Http/Resources/Customer/TaxTypeCollection.php +++ b/app/Http/Resources/Customer/TaxTypeCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/TransactionCollection.php b/app/Http/Resources/Customer/TransactionCollection.php index 3c59bc63..1163645f 100644 --- a/app/Http/Resources/Customer/TransactionCollection.php +++ b/app/Http/Resources/Customer/TransactionCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/Customer/UserCollection.php b/app/Http/Resources/Customer/UserCollection.php index 0deda9b9..98a7ae5f 100644 --- a/app/Http/Resources/Customer/UserCollection.php +++ b/app/Http/Resources/Customer/UserCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/CustomerCollection.php b/app/Http/Resources/CustomerCollection.php index 5e7cf620..7b7f1cd2 100644 --- a/app/Http/Resources/CustomerCollection.php +++ b/app/Http/Resources/CustomerCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/EstimateCollection.php b/app/Http/Resources/EstimateCollection.php index 4782bf21..e34cee9f 100644 --- a/app/Http/Resources/EstimateCollection.php +++ b/app/Http/Resources/EstimateCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/EstimateResource.php b/app/Http/Resources/EstimateResource.php index e17b135e..67766ab4 100644 --- a/app/Http/Resources/EstimateResource.php +++ b/app/Http/Resources/EstimateResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExchangeRateLogCollection.php b/app/Http/Resources/ExchangeRateLogCollection.php index f63b813a..f4025c2a 100644 --- a/app/Http/Resources/ExchangeRateLogCollection.php +++ b/app/Http/Resources/ExchangeRateLogCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExchangeRateProviderCollection.php b/app/Http/Resources/ExchangeRateProviderCollection.php index 8675f6c3..0de39dc9 100644 --- a/app/Http/Resources/ExchangeRateProviderCollection.php +++ b/app/Http/Resources/ExchangeRateProviderCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExpenseCategoryCollection.php b/app/Http/Resources/ExpenseCategoryCollection.php index 36d517c5..1cf9260e 100644 --- a/app/Http/Resources/ExpenseCategoryCollection.php +++ b/app/Http/Resources/ExpenseCategoryCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ExpenseCollection.php b/app/Http/Resources/ExpenseCollection.php index 12d1a06d..764aae45 100644 --- a/app/Http/Resources/ExpenseCollection.php +++ b/app/Http/Resources/ExpenseCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/FileDiskCollection.php b/app/Http/Resources/FileDiskCollection.php index ceb50ac2..e9e97a05 100644 --- a/app/Http/Resources/FileDiskCollection.php +++ b/app/Http/Resources/FileDiskCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/InvoiceCollection.php b/app/Http/Resources/InvoiceCollection.php index 1b77c0b3..083d6b02 100644 --- a/app/Http/Resources/InvoiceCollection.php +++ b/app/Http/Resources/InvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/InvoiceResource.php b/app/Http/Resources/InvoiceResource.php index a6bef952..5aaf3fd5 100644 --- a/app/Http/Resources/InvoiceResource.php +++ b/app/Http/Resources/InvoiceResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ItemCollection.php b/app/Http/Resources/ItemCollection.php index ffa893ce..a8bc0eb6 100644 --- a/app/Http/Resources/ItemCollection.php +++ b/app/Http/Resources/ItemCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/ModuleCollection.php b/app/Http/Resources/ModuleCollection.php index 1eb74c80..8955f869 100644 --- a/app/Http/Resources/ModuleCollection.php +++ b/app/Http/Resources/ModuleCollection.php @@ -1,6 +1,6 @@ checkPurchased(); $this->installed_module = ModelsModule::where('name', $this->module_name)->first(); diff --git a/app/Http/Resources/NoteCollection.php b/app/Http/Resources/NoteCollection.php index 82b987e6..39eeb956 100644 --- a/app/Http/Resources/NoteCollection.php +++ b/app/Http/Resources/NoteCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/PaymentCollection.php b/app/Http/Resources/PaymentCollection.php index c7809460..076e7a97 100644 --- a/app/Http/Resources/PaymentCollection.php +++ b/app/Http/Resources/PaymentCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/PaymentResource.php b/app/Http/Resources/PaymentResource.php index 7ad14116..2801011b 100644 --- a/app/Http/Resources/PaymentResource.php +++ b/app/Http/Resources/PaymentResource.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/RecurringInvoiceCollection.php b/app/Http/Resources/RecurringInvoiceCollection.php index 1669d5ac..3bde614a 100644 --- a/app/Http/Resources/RecurringInvoiceCollection.php +++ b/app/Http/Resources/RecurringInvoiceCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/RoleCollection.php b/app/Http/Resources/RoleCollection.php index 5bb28ede..087f8334 100644 --- a/app/Http/Resources/RoleCollection.php +++ b/app/Http/Resources/RoleCollection.php @@ -1,6 +1,6 @@ $this->id, @@ -30,6 +29,6 @@ class RoleResource extends JsonResource { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->scope); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } } diff --git a/app/Http/Resources/TaxCollection.php b/app/Http/Resources/TaxCollection.php index 6e9c47bd..87b93543 100644 --- a/app/Http/Resources/TaxCollection.php +++ b/app/Http/Resources/TaxCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/TaxTypeCollection.php b/app/Http/Resources/TaxTypeCollection.php index eb9dc6b8..f146abf4 100644 --- a/app/Http/Resources/TaxTypeCollection.php +++ b/app/Http/Resources/TaxTypeCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/TransactionCollection.php b/app/Http/Resources/TransactionCollection.php index 785fdb1f..f8d72558 100644 --- a/app/Http/Resources/TransactionCollection.php +++ b/app/Http/Resources/TransactionCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/UnitCollection.php b/app/Http/Resources/UnitCollection.php index 6305a11c..1f01b3f8 100644 --- a/app/Http/Resources/UnitCollection.php +++ b/app/Http/Resources/UnitCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Http/Resources/UserCollection.php b/app/Http/Resources/UserCollection.php index b73e2f21..ad220cb4 100644 --- a/app/Http/Resources/UserCollection.php +++ b/app/Http/Resources/UserCollection.php @@ -1,6 +1,6 @@ $this->id, diff --git a/app/Jobs/CreateBackupJob.php b/app/Jobs/CreateBackupJob.php index 841cf829..f21fba98 100644 --- a/app/Jobs/CreateBackupJob.php +++ b/app/Jobs/CreateBackupJob.php @@ -1,13 +1,13 @@ data['file_disk_id']); $fileDisk->setConfig(); diff --git a/app/Jobs/GenerateEstimatePdfJob.php b/app/Jobs/GenerateEstimatePdfJob.php index 5eeb4535..8c2e0daa 100644 --- a/app/Jobs/GenerateEstimatePdfJob.php +++ b/app/Jobs/GenerateEstimatePdfJob.php @@ -1,6 +1,6 @@ estimate->generatePDF('estimate', $this->estimate->estimate_number, $this->deleteExistingFile); diff --git a/app/Jobs/GenerateInvoicePdfJob.php b/app/Jobs/GenerateInvoicePdfJob.php index e9df8ae0..04edd7a3 100644 --- a/app/Jobs/GenerateInvoicePdfJob.php +++ b/app/Jobs/GenerateInvoicePdfJob.php @@ -1,6 +1,6 @@ invoice->generatePDF('invoice', $this->invoice->invoice_number, $this->deleteExistingFile); diff --git a/app/Jobs/GeneratePaymentPdfJob.php b/app/Jobs/GeneratePaymentPdfJob.php index ae68e3dc..93f02096 100644 --- a/app/Jobs/GeneratePaymentPdfJob.php +++ b/app/Jobs/GeneratePaymentPdfJob.php @@ -1,6 +1,6 @@ payment->generatePDF('payment', $this->payment->payment_number, $this->deleteExistingFile); diff --git a/app/Listeners/Updates/Listener.php b/app/Listeners/Updates/Listener.php index fc600cad..5b9f395e 100644 --- a/app/Listeners/Updates/Listener.php +++ b/app/Listeners/Updates/Listener.php @@ -1,6 +1,6 @@ from(config('mail.from.address'), config('mail.from.name')) + ->subject(__('notification_view_estimate')) ->markdown('emails.viewed.estimate', ['data', $this->data]); } } diff --git a/app/Mail/InvoiceViewedMail.php b/app/Mail/InvoiceViewedMail.php index e658de35..a43b8662 100644 --- a/app/Mail/InvoiceViewedMail.php +++ b/app/Mail/InvoiceViewedMail.php @@ -1,6 +1,6 @@ from(config('mail.from.address'), config('mail.from.name')) + ->subject(__('notification_view_invoice')) ->markdown('emails.viewed.invoice', ['data', $this->data]); } } diff --git a/app/Mail/SendEstimateMail.php b/app/Mail/SendEstimateMail.php index fc6c9074..2ceb3e7f 100644 --- a/app/Mail/SendEstimateMail.php +++ b/app/Mail/SendEstimateMail.php @@ -1,12 +1,12 @@ belongsTo(User::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function country() + public function country(): BelongsTo { return $this->belongsTo(Country::class); } diff --git a/app/Models/Company.php b/app/Models/Company.php index c3b11307..05a163ac 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -1,9 +1,13 @@ hasMany(Customer::class); } - public function owner() + public function owner(): BelongsTo { return $this->belongsTo(User::class, 'owner_id'); } - public function settings() + public function settings(): HasMany { return $this->hasMany(CompanySetting::class); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class); } - public function customFields() + public function customFields(): HasMany { return $this->hasMany(CustomField::class); } - public function customFieldValues() + public function customFieldValues(): HasMany { return $this->hasMany(CustomFieldValue::class); } - public function exchangeRateLogs() + public function exchangeRateLogs(): HasMany { return $this->hasMany(ExchangeRateLog::class); } - public function exchangeRateProviders() + public function exchangeRateProviders(): HasMany { return $this->hasMany(ExchangeRateProvider::class); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function units() + public function units(): HasMany { return $this->hasMany(Unit::class); } - public function expenseCategories() + public function expenseCategories(): HasMany { return $this->hasMany(ExpenseCategory::class); } - public function taxTypes() + public function taxTypes(): HasMany { return $this->hasMany(TaxType::class); } - public function items() + public function items(): HasMany { return $this->hasMany(Item::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function paymentMethods() + public function paymentMethods(): HasMany { return $this->hasMany(PaymentMethod::class); } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class); } - public function address() + public function address(): HasOne { return $this->hasOne(Address::class); } - public function users() + public function users(): BelongsToMany { return $this->belongsToMany(User::class, 'user_company', 'company_id', 'user_id'); } diff --git a/app/Models/CompanySetting.php b/app/Models/CompanySetting.php index 8b1105f9..459e4bc5 100644 --- a/app/Models/CompanySetting.php +++ b/app/Models/CompanySetting.php @@ -1,9 +1,10 @@ belongsTo(Company::class); } diff --git a/app/Models/Country.php b/app/Models/Country.php index ea833fd7..a825584a 100644 --- a/app/Models/Country.php +++ b/app/Models/Country.php @@ -1,15 +1,16 @@ hasMany(Address::class); } diff --git a/app/Models/Currency.php b/app/Models/Currency.php index 44fbae4a..326aaf8b 100644 --- a/app/Models/Currency.php +++ b/app/Models/Currency.php @@ -1,6 +1,6 @@ 'array', - ]; + protected function casts(): array + { + return [ + 'options' => 'array', + ]; + } public function setTimeAnswerAttribute($value) { @@ -50,12 +55,12 @@ class CustomField extends Model return $this->customFieldValues()->exists(); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customFieldValues() + public function customFieldValues(): HasMany { return $this->hasMany(CustomFieldValue::class); } diff --git a/app/Models/CustomFieldValue.php b/app/Models/CustomFieldValue.php index e8509d8f..f3f39f1c 100644 --- a/app/Models/CustomFieldValue.php +++ b/app/Models/CustomFieldValue.php @@ -1,9 +1,11 @@ $value_type; } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customField() + public function customField(): BelongsTo { return $this->belongsTo(CustomField::class); } - public function customFieldValuable() + public function customFieldValuable(): MorphTo { return $this->morphTo(); } diff --git a/app/Models/Customer.php b/app/Models/Customer.php index b333338e..47eb2d65 100644 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -1,13 +1,16 @@ 'boolean', - ]; + protected function casts(): array + { + return [ + 'enable_portal' => 'boolean', + ]; + } public function getFormattedCreatedAtAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function setPasswordAttribute($value) @@ -58,57 +64,57 @@ class Customer extends Authenticatable implements HasMedia } } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function addresses() + public function addresses(): HasMany { return $this->hasMany(Address::class); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(Customer::class, 'creator_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function billingAddress() + public function billingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::BILLING_TYPE); } - public function shippingAddress() + public function shippingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::SHIPPING_TYPE); } diff --git a/app/Models/EmailLog.php b/app/Models/EmailLog.php index f1efa25e..340f47cf 100644 --- a/app/Models/EmailLog.php +++ b/app/Models/EmailLog.php @@ -1,10 +1,11 @@ morphTo(); } diff --git a/app/Models/Estimate.php b/app/Models/Estimate.php index 1b52c59c..395fee5b 100644 --- a/app/Models/Estimate.php +++ b/app/Models/Estimate.php @@ -1,19 +1,22 @@ 'integer', - 'tax' => 'integer', - 'sub_total' => 'integer', - 'discount' => 'float', - 'discount_val' => 'integer', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'total' => 'integer', + 'tax' => 'integer', + 'sub_total' => 'integer', + 'discount' => 'float', + 'discount_val' => 'integer', + 'exchange_rate' => 'float', + ]; + } public function getEstimatePdfUrlAttribute() { return url('/estimates/pdf/'.$this->unique_hash); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function items() + public function items(): HasMany { - return $this->hasMany('InvoiceShelf\Models\EstimateItem'); + return $this->hasMany(\App\Models\EstimateItem::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function company() + public function company(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\Company'); + return $this->belongsTo(\App\Models\Company::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } @@ -106,14 +112,14 @@ class Estimate extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->expiry_date)->format($dateFormat); + return Carbon::parse($this->expiry_date)->translatedFormat($dateFormat); } public function getFormattedEstimateDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->estimate_date)->format($dateFormat); + return Carbon::parse($this->estimate_date)->translatedFormat($dateFormat); } public function scopeEstimatesBetween($query, $start, $end) diff --git a/app/Models/EstimateItem.php b/app/Models/EstimateItem.php index ad1ffe19..2d9b9dfb 100644 --- a/app/Models/EstimateItem.php +++ b/app/Models/EstimateItem.php @@ -1,10 +1,12 @@ 'integer', - 'total' => 'integer', - 'discount' => 'float', - 'quantity' => 'float', - 'discount_val' => 'integer', - 'tax' => 'integer', - ]; + protected function casts(): array + { + return [ + 'price' => 'integer', + 'total' => 'integer', + 'discount' => 'float', + 'quantity' => 'float', + 'discount_val' => 'integer', + 'tax' => 'integer', + ]; + } - public function estimate() + public function estimate(): BelongsTo { return $this->belongsTo(Estimate::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } diff --git a/app/Models/ExchangeRateLog.php b/app/Models/ExchangeRateLog.php index 82960475..e716037b 100644 --- a/app/Models/ExchangeRateLog.php +++ b/app/Models/ExchangeRateLog.php @@ -1,9 +1,10 @@ 'float', - ]; + protected function casts(): array + { + return [ + 'exchange_rate' => 'float', + ]; + } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/ExchangeRateProvider.php b/app/Models/ExchangeRateProvider.php index fef6110c..51c80792 100644 --- a/app/Models/ExchangeRateProvider.php +++ b/app/Models/ExchangeRateProvider.php @@ -1,11 +1,12 @@ 'array', - 'driver_config' => 'array', - 'active' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'currencies' => 'array', + 'driver_config' => 'array', + 'active' => 'boolean', + ]; + } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 87bbb134..ef46b514 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -1,12 +1,13 @@ 'string', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'notes' => 'string', + 'exchange_rate' => 'float', + ]; + } - public function category() + public function category(): BelongsTo { return $this->belongsTo(ExpenseCategory::class, 'expense_category_id'); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class, 'company_id'); } - public function paymentMethod() + public function paymentMethod(): BelongsTo { return $this->belongsTo(PaymentMethod::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class, 'currency_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } public function getFormattedExpenseDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->expense_date)->format($dateFormat); + return Carbon::parse($this->expense_date)->translatedFormat($dateFormat); } public function getFormattedCreatedAtAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function getReceiptUrlAttribute($value) diff --git a/app/Models/ExpenseCategory.php b/app/Models/ExpenseCategory.php index 6347b675..3b02fe4c 100644 --- a/app/Models/ExpenseCategory.php +++ b/app/Models/ExpenseCategory.php @@ -1,10 +1,12 @@ hasMany(Expense::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/FileDisk.php b/app/Models/FileDisk.php index 1df45207..01725219 100644 --- a/app/Models/FileDisk.php +++ b/app/Models/FileDisk.php @@ -1,10 +1,10 @@ 'boolean', - ]; + protected function casts(): array + { + return [ + 'set_as_default' => 'boolean', + ]; + } public function setCredentialsAttribute($value) { diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 91ea77f1..7bcc754f 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1,19 +1,22 @@ 'integer', - 'tax' => 'integer', - 'sub_total' => 'integer', - 'discount' => 'float', - 'discount_val' => 'integer', - 'exchange_rate' => 'float', - ]; - protected $guarded = [ 'id', ]; @@ -68,52 +62,64 @@ class Invoice extends Model implements HasMedia 'invoicePdfUrl', ]; - public function transactions() + protected function casts(): array + { + return [ + 'total' => 'integer', + 'tax' => 'integer', + 'sub_total' => 'integer', + 'discount' => 'float', + 'discount_val' => 'integer', + 'exchange_rate' => 'float', + ]; + } + + public function transactions(): HasMany { return $this->hasMany(Transaction::class); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function items() + public function items(): HasMany { - return $this->hasMany('InvoiceShelf\Models\InvoiceItem'); + return $this->hasMany(\App\Models\InvoiceItem::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(User::class, 'creator_id'); } @@ -183,14 +189,14 @@ class Invoice extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->due_date)->format($dateFormat); + return Carbon::parse($this->due_date)->translatedFormat($dateFormat); } public function getFormattedInvoiceDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->invoice_date)->format($dateFormat); + return Carbon::parse($this->invoice_date)->translatedFormat($dateFormat); } public function scopeWhereStatus($query, $status) diff --git a/app/Models/InvoiceItem.php b/app/Models/InvoiceItem.php index 71341645..b4ec3a9d 100644 --- a/app/Models/InvoiceItem.php +++ b/app/Models/InvoiceItem.php @@ -1,12 +1,14 @@ 'integer', - 'total' => 'integer', - 'discount' => 'float', - 'quantity' => 'float', - 'discount_val' => 'integer', - 'tax' => 'integer', - ]; + protected function casts(): array + { + return [ + 'price' => 'integer', + 'total' => 'integer', + 'discount' => 'float', + 'quantity' => 'float', + 'discount_val' => 'integer', + 'tax' => 'integer', + ]; + } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } diff --git a/app/Models/Item.php b/app/Models/Item.php index 5e6d7448..a73b62b4 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -1,10 +1,12 @@ 'integer', - ]; - protected $appends = [ 'formattedCreatedAt', ]; - public function unit() + protected function casts(): array + { + return [ + 'price' => 'integer', + ]; + } + + public function unit(): BelongsTo { return $this->belongsTo(Unit::class, 'unit_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } @@ -106,10 +111,10 @@ class Item extends Model { $dateFormat = CompanySetting::getSetting('carbon_date_format', request()->header('company')); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class) ->where('invoice_item_id', null) @@ -121,12 +126,12 @@ class Item extends Model $query->where('items.company_id', request()->header('company')); } - public function invoiceItems() + public function invoiceItems(): HasMany { return $this->hasMany(InvoiceItem::class); } - public function estimateItems() + public function estimateItems(): HasMany { return $this->hasMany(EstimateItem::class); } diff --git a/app/Models/Module.php b/app/Models/Module.php index 179492a3..ce81ec2d 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -1,6 +1,6 @@ belongsTo(Company::class); } diff --git a/app/Models/Payment.php b/app/Models/Payment.php index f8af9ceb..be7cb407 100644 --- a/app/Models/Payment.php +++ b/app/Models/Payment.php @@ -1,16 +1,18 @@ 'string', - 'exchange_rate' => 'float', - ]; + protected function casts(): array + { + return [ + 'notes' => 'string', + 'exchange_rate' => 'float', + ]; + } protected static function booted() { @@ -69,14 +74,14 @@ class Payment extends Model implements HasMedia { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->created_at)->format($dateFormat); + return Carbon::parse($this->created_at)->translatedFormat($dateFormat); } public function getFormattedPaymentDateAttribute($value) { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->payment_date)->format($dateFormat); + return Carbon::parse($this->payment_date)->translatedFormat($dateFormat); } public function getPaymentPdfUrlAttribute() @@ -84,42 +89,42 @@ class Payment extends Model implements HasMedia return url('/payments/pdf/'.$this->unique_hash); } - public function transaction() + public function transaction(): BelongsTo { return $this->belongsTo(Transaction::class); } - public function emailLogs() + public function emailLogs(): MorphMany { return $this->morphMany('App\Models\EmailLog', 'mailable'); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class, 'customer_id'); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function paymentMethod() + public function paymentMethod(): BelongsTo { return $this->belongsTo(PaymentMethod::class); } diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index aab51b30..ab3a8a3c 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -1,9 +1,11 @@ 'array', - 'use_test_env' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'settings' => 'array', + 'use_test_env' => 'boolean', + ]; + } public function setSettingsAttribute($value) { $this->attributes['settings'] = json_encode($value); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index 33f10fd8..70b7a4ed 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -1,14 +1,16 @@ 'float', - 'send_automatically' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'exchange_rate' => 'float', + 'send_automatically' => 'boolean', + ]; + } public function getFormattedStartsAtAttribute() { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->starts_at)->format($dateFormat); + return Carbon::parse($this->starts_at)->translatedFormat($dateFormat); } public function getFormattedNextInvoiceAtAttribute() { $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); - return Carbon::parse($this->next_invoice_at)->format($dateFormat); + return Carbon::parse($this->next_invoice_at)->translatedFormat($dateFormat); } public function getFormattedLimitDateAttribute() @@ -76,37 +81,37 @@ class RecurringInvoice extends Model return Carbon::parse($this->created_at)->format($dateFormat); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class); } - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function items() + public function items(): HasMany { return $this->hasMany(InvoiceItem::class); } - public function customer() + public function customer(): BelongsTo { return $this->belongsTo(Customer::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } - public function creator() + public function creator(): BelongsTo { return $this->belongsTo(User::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } @@ -309,7 +314,7 @@ class RecurringInvoice extends Model ->setCustomer($this->customer_id) ->setNextNumbers(); - $days = CompanySetting::getSetting('invoice_due_date_days', $this->company_id); + $days = intval(CompanySetting::getSetting('invoice_due_date_days', $this->company_id)); if (! $days || $days == 'null') { $days = 7; @@ -376,7 +381,7 @@ class RecurringInvoice extends Model 'body' => CompanySetting::getSetting('invoice_mail_body', $this->company_id), 'from' => config('mail.from.address'), 'to' => $this->customer->email, - 'subject' => 'New Invoice', + 'subject' => trans('invoices')['new_invoice'], 'invoice' => $invoice->toArray(), 'customer' => $invoice->customer->toArray(), 'company' => Company::find($invoice->company_id), diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 188b595d..5031d3c0 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -1,6 +1,6 @@ 'integer', - 'percent' => 'float', - ]; + protected function casts(): array + { + return [ + 'amount' => 'integer', + 'percent' => 'float', + ]; + } - public function taxType() + public function taxType(): BelongsTo { return $this->belongsTo(TaxType::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function recurringInvoice() + public function recurringInvoice(): BelongsTo { return $this->belongsTo(RecurringInvoice::class); } - public function estimate() + public function estimate(): BelongsTo { return $this->belongsTo(Estimate::class); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class); } - public function invoiceItem() + public function invoiceItem(): BelongsTo { return $this->belongsTo(InvoiceItem::class); } - public function estimateItem() + public function estimateItem(): BelongsTo { return $this->belongsTo(EstimateItem::class); } - public function item() + public function item(): BelongsTo { return $this->belongsTo(Item::class); } diff --git a/app/Models/TaxType.php b/app/Models/TaxType.php index f14d6f34..30dc7392 100644 --- a/app/Models/TaxType.php +++ b/app/Models/TaxType.php @@ -1,9 +1,11 @@ 'float', - 'compound_tax' => 'boolean', - ]; + protected function casts(): array + { + return [ + 'percent' => 'float', + 'compound_tax' => 'boolean', + ]; + } public const TYPE_GENERAL = 'GENERAL'; public const TYPE_MODULE = 'MODULE'; - public function taxes() + public function taxes(): HasMany { return $this->hasMany(Tax::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 3dc761d3..6682a901 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -1,10 +1,12 @@ hasMany(Payment::class); } - public function invoice() + public function invoice(): BelongsTo { return $this->belongsTo(Invoice::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/Unit.php b/app/Models/Unit.php index 0328b615..5fe010ed 100644 --- a/app/Models/Unit.php +++ b/app/Models/Unit.php @@ -1,9 +1,11 @@ hasMany(Item::class); } - public function company() + public function company(): BelongsTo { return $this->belongsTo(Company::class); } diff --git a/app/Models/User.php b/app/Models/User.php index 0fe9005c..167a0477 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -1,15 +1,19 @@ header('company')); + $company_id = (CompanySetting::where('company_id', request()->header('company'))->exists()) + ? request()->header('company') + : $this->companies()->first()->id; + $dateFormat = CompanySetting::getSetting('carbon_date_format', $company_id); return Carbon::parse($this->created_at)->format($dateFormat); } - public function estimates() + public function estimates(): HasMany { return $this->hasMany(Estimate::class, 'creator_id'); } - public function customers() + public function customers(): HasMany { return $this->hasMany(Customer::class, 'creator_id'); } - public function recurringInvoices() + public function recurringInvoices(): HasMany { return $this->hasMany(RecurringInvoice::class, 'creator_id'); } - public function currency() + public function currency(): BelongsTo { return $this->belongsTo(Currency::class, 'currency_id'); } - public function creator() + public function creator(): BelongsTo { - return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); + return $this->belongsTo(\App\Models\User::class, 'creator_id'); } - public function companies() + public function companies(): BelongsToMany { return $this->belongsToMany(Company::class, 'user_company', 'user_id', 'company_id'); } - public function expenses() + public function expenses(): HasMany { return $this->hasMany(Expense::class, 'creator_id'); } - public function payments() + public function payments(): HasMany { return $this->hasMany(Payment::class, 'creator_id'); } - public function invoices() + public function invoices(): HasMany { return $this->hasMany(Invoice::class, 'creator_id'); } - public function items() + public function items(): HasMany { return $this->hasMany(Item::class, 'creator_id'); } - public function settings() + public function settings(): HasMany { return $this->hasMany(UserSetting::class, 'user_id'); } - public function addresses() + public function addresses(): HasMany { return $this->hasMany(Address::class); } - public function billingAddress() + public function billingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::BILLING_TYPE); } - public function shippingAddress() + public function shippingAddress(): HasOne { return $this->hasOne(Address::class)->where('type', Address::SHIPPING_TYPE); } diff --git a/app/Models/UserSetting.php b/app/Models/UserSetting.php index 15a67732..5229ee04 100644 --- a/app/Models/UserSetting.php +++ b/app/Models/UserSetting.php @@ -1,9 +1,10 @@ belongsTo(User::class); } diff --git a/app/Notifications/CustomerMailResetPasswordNotification.php b/app/Notifications/CustomerMailResetPasswordNotification.php index 6a64e2a1..f33b39c6 100644 --- a/app/Notifications/CustomerMailResetPasswordNotification.php +++ b/app/Notifications/CustomerMailResetPasswordNotification.php @@ -1,6 +1,6 @@ company->slug}/customer/reset/password/".$this->token); @@ -54,9 +52,8 @@ class CustomerMailResetPasswordNotification extends ResetPassword * Get the array representation of the notification. * * @param mixed $notifiable - * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ // diff --git a/app/Notifications/MailResetPasswordNotification.php b/app/Notifications/MailResetPasswordNotification.php index bf455365..73d57f63 100644 --- a/app/Notifications/MailResetPasswordNotification.php +++ b/app/Notifications/MailResetPasswordNotification.php @@ -1,6 +1,6 @@ token); @@ -54,9 +52,8 @@ class MailResetPasswordNotification extends ResetPassword * Get the array representation of the notification. * * @param mixed $notifiable - * @return array */ - public function toArray($notifiable) + public function toArray($notifiable): array { return [ // diff --git a/app/Policies/CompanyPolicy.php b/app/Policies/CompanyPolicy.php index 1d8d3d32..93210abd 100644 --- a/app/Policies/CompanyPolicy.php +++ b/app/Policies/CompanyPolicy.php @@ -1,16 +1,16 @@ isOwner()) { return true; @@ -19,7 +19,7 @@ class CompanyPolicy return false; } - public function delete(User $user, Company $company) + public function delete(User $user, Company $company): bool { if ($user->id == $company->owner_id) { return true; diff --git a/app/Policies/CustomFieldPolicy.php b/app/Policies/CustomFieldPolicy.php index add706ef..8b099b19 100644 --- a/app/Policies/CustomFieldPolicy.php +++ b/app/Policies/CustomFieldPolicy.php @@ -1,10 +1,10 @@ hasCompany($customField->company_id)) { return true; @@ -44,7 +44,7 @@ class CustomFieldPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-custom-field', CustomField::class)) { return true; @@ -58,7 +58,7 @@ class CustomFieldPolicy * * @return mixed */ - public function update(User $user, CustomField $customField) + public function update(User $user, CustomField $customField): bool { if (BouncerFacade::can('edit-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -72,7 +72,7 @@ class CustomFieldPolicy * * @return mixed */ - public function delete(User $user, CustomField $customField) + public function delete(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -86,7 +86,7 @@ class CustomFieldPolicy * * @return mixed */ - public function restore(User $user, CustomField $customField) + public function restore(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; @@ -100,7 +100,7 @@ class CustomFieldPolicy * * @return mixed */ - public function forceDelete(User $user, CustomField $customField) + public function forceDelete(User $user, CustomField $customField): bool { if (BouncerFacade::can('delete-custom-field', $customField) && $user->hasCompany($customField->company_id)) { return true; diff --git a/app/Policies/CustomerPolicy.php b/app/Policies/CustomerPolicy.php index 57194205..aa2feccb 100644 --- a/app/Policies/CustomerPolicy.php +++ b/app/Policies/CustomerPolicy.php @@ -1,10 +1,10 @@ hasCompany($company->id)) { return true; diff --git a/app/Policies/EstimatePolicy.php b/app/Policies/EstimatePolicy.php index 2817db9c..e83bf3ab 100644 --- a/app/Policies/EstimatePolicy.php +++ b/app/Policies/EstimatePolicy.php @@ -1,10 +1,10 @@ hasCompany($estimate->company_id)) { return true; @@ -44,7 +44,7 @@ class EstimatePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-estimate', Estimate::class)) { return true; @@ -58,7 +58,7 @@ class EstimatePolicy * * @return mixed */ - public function update(User $user, Estimate $estimate) + public function update(User $user, Estimate $estimate): bool { if (BouncerFacade::can('edit-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -72,7 +72,7 @@ class EstimatePolicy * * @return mixed */ - public function delete(User $user, Estimate $estimate) + public function delete(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -86,7 +86,7 @@ class EstimatePolicy * * @return mixed */ - public function restore(User $user, Estimate $estimate) + public function restore(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -100,7 +100,7 @@ class EstimatePolicy * * @return mixed */ - public function forceDelete(User $user, Estimate $estimate) + public function forceDelete(User $user, Estimate $estimate): bool { if (BouncerFacade::can('delete-estimate', $estimate) && $user->hasCompany($estimate->company_id)) { return true; @@ -112,7 +112,7 @@ class EstimatePolicy /** * Determine whether the user can send email of the model. * - * @param \InvoiceShelf\Models\Estimate $payment + * @param \App\Models\Estimate $payment * @return mixed */ public function send(User $user, Estimate $estimate) diff --git a/app/Policies/ExchangeRateProviderPolicy.php b/app/Policies/ExchangeRateProviderPolicy.php index 617599fa..b53addcc 100644 --- a/app/Policies/ExchangeRateProviderPolicy.php +++ b/app/Policies/ExchangeRateProviderPolicy.php @@ -1,10 +1,10 @@ hasCompany($exchangeRateProvider->company_id)) { return true; @@ -44,7 +44,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-exchange-rate-provider', ExchangeRateProvider::class)) { return true; @@ -58,7 +58,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function update(User $user, ExchangeRateProvider $exchangeRateProvider) + public function update(User $user, ExchangeRateProvider $exchangeRateProvider): bool { if (BouncerFacade::can('edit-exchange-rate-provider', $exchangeRateProvider) && $user->hasCompany($exchangeRateProvider->company_id)) { return true; @@ -72,7 +72,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function delete(User $user, ExchangeRateProvider $exchangeRateProvider) + public function delete(User $user, ExchangeRateProvider $exchangeRateProvider): bool { if (BouncerFacade::can('delete-exchange-rate-provider', $exchangeRateProvider) && $user->hasCompany($exchangeRateProvider->company_id)) { return true; @@ -86,7 +86,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function restore(User $user, ExchangeRateProvider $exchangeRateProvider) + public function restore(User $user, ExchangeRateProvider $exchangeRateProvider): bool { // } @@ -96,7 +96,7 @@ class ExchangeRateProviderPolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function forceDelete(User $user, ExchangeRateProvider $exchangeRateProvider) + public function forceDelete(User $user, ExchangeRateProvider $exchangeRateProvider): bool { // } diff --git a/app/Policies/ExpenseCategoryPolicy.php b/app/Policies/ExpenseCategoryPolicy.php index f6bf268b..7aa06563 100644 --- a/app/Policies/ExpenseCategoryPolicy.php +++ b/app/Policies/ExpenseCategoryPolicy.php @@ -1,11 +1,11 @@ hasCompany($expenseCategory->company_id)) { return true; @@ -45,7 +45,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-expense', Expense::class)) { return true; @@ -59,7 +59,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function update(User $user, ExpenseCategory $expenseCategory) + public function update(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -73,7 +73,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function delete(User $user, ExpenseCategory $expenseCategory) + public function delete(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -87,7 +87,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function restore(User $user, ExpenseCategory $expenseCategory) + public function restore(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; @@ -101,7 +101,7 @@ class ExpenseCategoryPolicy * * @return mixed */ - public function forceDelete(User $user, ExpenseCategory $expenseCategory) + public function forceDelete(User $user, ExpenseCategory $expenseCategory): bool { if (BouncerFacade::can('view-expense', Expense::class) && $user->hasCompany($expenseCategory->company_id)) { return true; diff --git a/app/Policies/ExpensePolicy.php b/app/Policies/ExpensePolicy.php index 29caaf88..770faa2d 100644 --- a/app/Policies/ExpensePolicy.php +++ b/app/Policies/ExpensePolicy.php @@ -1,10 +1,10 @@ hasCompany($expense->company_id)) { return true; @@ -44,7 +44,7 @@ class ExpensePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-expense', Expense::class)) { return true; @@ -58,7 +58,7 @@ class ExpensePolicy * * @return mixed */ - public function update(User $user, Expense $expense) + public function update(User $user, Expense $expense): bool { if (BouncerFacade::can('edit-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -72,7 +72,7 @@ class ExpensePolicy * * @return mixed */ - public function delete(User $user, Expense $expense) + public function delete(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -86,7 +86,7 @@ class ExpensePolicy * * @return mixed */ - public function restore(User $user, Expense $expense) + public function restore(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; @@ -100,7 +100,7 @@ class ExpensePolicy * * @return mixed */ - public function forceDelete(User $user, Expense $expense) + public function forceDelete(User $user, Expense $expense): bool { if (BouncerFacade::can('delete-expense', $expense) && $user->hasCompany($expense->company_id)) { return true; diff --git a/app/Policies/InvoicePolicy.php b/app/Policies/InvoicePolicy.php index d0704be6..cb67aae3 100644 --- a/app/Policies/InvoicePolicy.php +++ b/app/Policies/InvoicePolicy.php @@ -1,10 +1,10 @@ hasCompany($invoice->company_id)) { return true; @@ -44,7 +44,7 @@ class InvoicePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-invoice', Invoice::class)) { return true; @@ -58,7 +58,7 @@ class InvoicePolicy * * @return mixed */ - public function update(User $user, Invoice $invoice) + public function update(User $user, Invoice $invoice): bool { if (BouncerFacade::can('edit-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return $invoice->allow_edit; @@ -72,7 +72,7 @@ class InvoicePolicy * * @return mixed */ - public function delete(User $user, Invoice $invoice) + public function delete(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -86,7 +86,7 @@ class InvoicePolicy * * @return mixed */ - public function restore(User $user, Invoice $invoice) + public function restore(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -100,7 +100,7 @@ class InvoicePolicy * * @return mixed */ - public function forceDelete(User $user, Invoice $invoice) + public function forceDelete(User $user, Invoice $invoice): bool { if (BouncerFacade::can('delete-invoice', $invoice) && $user->hasCompany($invoice->company_id)) { return true; @@ -112,7 +112,7 @@ class InvoicePolicy /** * Determine whether the user can send email of the model. * - * @param \InvoiceShelf\Models\Payment $payment + * @param \App\Models\Payment $payment * @return mixed */ public function send(User $user, Invoice $invoice) diff --git a/app/Policies/ItemPolicy.php b/app/Policies/ItemPolicy.php index b93beeaa..074f33b2 100644 --- a/app/Policies/ItemPolicy.php +++ b/app/Policies/ItemPolicy.php @@ -1,10 +1,10 @@ hasCompany($item->company_id)) { return true; @@ -44,7 +44,7 @@ class ItemPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-item', Item::class)) { return true; @@ -58,7 +58,7 @@ class ItemPolicy * * @return mixed */ - public function update(User $user, Item $item) + public function update(User $user, Item $item): bool { if (BouncerFacade::can('edit-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -72,7 +72,7 @@ class ItemPolicy * * @return mixed */ - public function delete(User $user, Item $item) + public function delete(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -86,7 +86,7 @@ class ItemPolicy * * @return mixed */ - public function restore(User $user, Item $item) + public function restore(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; @@ -100,7 +100,7 @@ class ItemPolicy * * @return mixed */ - public function forceDelete(User $user, Item $item) + public function forceDelete(User $user, Item $item): bool { if (BouncerFacade::can('delete-item', $item) && $user->hasCompany($item->company_id)) { return true; diff --git a/app/Policies/ModulesPolicy.php b/app/Policies/ModulesPolicy.php index e4b729e2..f5c6e886 100644 --- a/app/Policies/ModulesPolicy.php +++ b/app/Policies/ModulesPolicy.php @@ -1,9 +1,9 @@ hasCompany($paymentMethod->company_id)) { return true; @@ -45,7 +45,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-payment', Payment::class)) { return true; @@ -59,7 +59,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function update(User $user, PaymentMethod $paymentMethod) + public function update(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -73,7 +73,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function delete(User $user, PaymentMethod $paymentMethod) + public function delete(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -87,7 +87,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function restore(User $user, PaymentMethod $paymentMethod) + public function restore(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; @@ -101,7 +101,7 @@ class PaymentMethodPolicy * * @return mixed */ - public function forceDelete(User $user, PaymentMethod $paymentMethod) + public function forceDelete(User $user, PaymentMethod $paymentMethod): bool { if (BouncerFacade::can('view-payment', Payment::class) && $user->hasCompany($paymentMethod->company_id)) { return true; diff --git a/app/Policies/PaymentPolicy.php b/app/Policies/PaymentPolicy.php index 9e2b5e92..8ca7dfda 100644 --- a/app/Policies/PaymentPolicy.php +++ b/app/Policies/PaymentPolicy.php @@ -1,10 +1,10 @@ hasCompany($payment->company_id)) { return true; @@ -44,7 +44,7 @@ class PaymentPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-payment', Payment::class)) { return true; @@ -58,7 +58,7 @@ class PaymentPolicy * * @return mixed */ - public function update(User $user, Payment $payment) + public function update(User $user, Payment $payment): bool { if (BouncerFacade::can('edit-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -72,7 +72,7 @@ class PaymentPolicy * * @return mixed */ - public function delete(User $user, Payment $payment) + public function delete(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -86,7 +86,7 @@ class PaymentPolicy * * @return mixed */ - public function restore(User $user, Payment $payment) + public function restore(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; @@ -100,7 +100,7 @@ class PaymentPolicy * * @return mixed */ - public function forceDelete(User $user, Payment $payment) + public function forceDelete(User $user, Payment $payment): bool { if (BouncerFacade::can('delete-payment', $payment) && $user->hasCompany($payment->company_id)) { return true; diff --git a/app/Policies/RecurringInvoicePolicy.php b/app/Policies/RecurringInvoicePolicy.php index f5f9b379..9750bfbf 100644 --- a/app/Policies/RecurringInvoicePolicy.php +++ b/app/Policies/RecurringInvoicePolicy.php @@ -1,10 +1,10 @@ hasCompany($recurringInvoice->company_id)) { return true; @@ -44,7 +44,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-recurring-invoice', RecurringInvoice::class)) { return true; @@ -58,7 +58,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function update(User $user, RecurringInvoice $recurringInvoice) + public function update(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('edit-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -72,7 +72,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function delete(User $user, RecurringInvoice $recurringInvoice) + public function delete(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -86,7 +86,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function restore(User $user, RecurringInvoice $recurringInvoice) + public function restore(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; @@ -100,7 +100,7 @@ class RecurringInvoicePolicy * * @return \Illuminate\Auth\Access\Response|bool */ - public function forceDelete(User $user, RecurringInvoice $recurringInvoice) + public function forceDelete(User $user, RecurringInvoice $recurringInvoice): bool { if (BouncerFacade::can('delete-recurring-invoice', $recurringInvoice) && $user->hasCompany($recurringInvoice->company_id)) { return true; diff --git a/app/Policies/ReportPolicy.php b/app/Policies/ReportPolicy.php index 6710e1b0..92642e6f 100644 --- a/app/Policies/ReportPolicy.php +++ b/app/Policies/ReportPolicy.php @@ -1,10 +1,10 @@ isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can view the model. - * - * @return mixed */ - public function view(User $user, Role $role) + public function view(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can create models. - * - * @return mixed */ - public function create(User $user) + public function create(User $user): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can update the model. - * - * @return mixed */ - public function update(User $user, Role $role) + public function update(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can delete the model. - * - * @return mixed */ - public function delete(User $user, Role $role) + public function delete(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can restore the model. - * - * @return mixed */ - public function restore(User $user, Role $role) + public function restore(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } /** * Determine whether the user can permanently delete the model. - * - * @return mixed */ - public function forceDelete(User $user, Role $role) + public function forceDelete(User $user, Role $role): bool { - if ($user->isOwner()) { - return true; - } - - return false; + return $user->isOwner(); } } diff --git a/app/Policies/SettingsPolicy.php b/app/Policies/SettingsPolicy.php index 2a68addb..6fd3d1a7 100644 --- a/app/Policies/SettingsPolicy.php +++ b/app/Policies/SettingsPolicy.php @@ -1,10 +1,10 @@ hasCompany($taxType->company_id)) { return true; @@ -44,7 +44,7 @@ class TaxTypePolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('create-tax-type', TaxType::class)) { return true; @@ -58,7 +58,7 @@ class TaxTypePolicy * * @return mixed */ - public function update(User $user, TaxType $taxType) + public function update(User $user, TaxType $taxType): bool { if (BouncerFacade::can('edit-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -72,7 +72,7 @@ class TaxTypePolicy * * @return mixed */ - public function delete(User $user, TaxType $taxType) + public function delete(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -86,7 +86,7 @@ class TaxTypePolicy * * @return mixed */ - public function restore(User $user, TaxType $taxType) + public function restore(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; @@ -100,7 +100,7 @@ class TaxTypePolicy * * @return mixed */ - public function forceDelete(User $user, TaxType $taxType) + public function forceDelete(User $user, TaxType $taxType): bool { if (BouncerFacade::can('delete-tax-type', $taxType) && $user->hasCompany($taxType->company_id)) { return true; diff --git a/app/Policies/UnitPolicy.php b/app/Policies/UnitPolicy.php index 34271f8a..4a8b7f3d 100644 --- a/app/Policies/UnitPolicy.php +++ b/app/Policies/UnitPolicy.php @@ -1,11 +1,11 @@ hasCompany($unit->company_id)) { return true; @@ -45,7 +45,7 @@ class UnitPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if (BouncerFacade::can('view-item', Item::class)) { return true; @@ -59,7 +59,7 @@ class UnitPolicy * * @return mixed */ - public function update(User $user, Unit $unit) + public function update(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -73,7 +73,7 @@ class UnitPolicy * * @return mixed */ - public function delete(User $user, Unit $unit) + public function delete(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -87,7 +87,7 @@ class UnitPolicy * * @return mixed */ - public function restore(User $user, Unit $unit) + public function restore(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; @@ -101,7 +101,7 @@ class UnitPolicy * * @return mixed */ - public function forceDelete(User $user, Unit $unit) + public function forceDelete(User $user, Unit $unit): bool { if (BouncerFacade::can('view-item', Item::class) && $user->hasCompany($unit->company_id)) { return true; diff --git a/app/Policies/UserPolicy.php b/app/Policies/UserPolicy.php index c6c9d273..ad1305b0 100644 --- a/app/Policies/UserPolicy.php +++ b/app/Policies/UserPolicy.php @@ -1,9 +1,9 @@ isOwner()) { return true; @@ -28,7 +28,7 @@ class UserPolicy * * @return mixed */ - public function view(User $user, User $model) + public function view(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -42,7 +42,7 @@ class UserPolicy * * @return mixed */ - public function create(User $user) + public function create(User $user): bool { if ($user->isOwner()) { return true; @@ -56,7 +56,7 @@ class UserPolicy * * @return mixed */ - public function update(User $user, User $model) + public function update(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -70,7 +70,7 @@ class UserPolicy * * @return mixed */ - public function delete(User $user, User $model) + public function delete(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -84,7 +84,7 @@ class UserPolicy * * @return mixed */ - public function restore(User $user, User $model) + public function restore(User $user, User $model): bool { if ($user->isOwner()) { return true; @@ -98,7 +98,7 @@ class UserPolicy * * @return mixed */ - public function forceDelete(User $user, User $model) + public function forceDelete(User $user, User $model): bool { if ($user->isOwner()) { return true; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 62881023..f140cb13 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,35 +1,71 @@ addMenus(); } + + Gate::policy(Role::class, RolePolicy::class); + + $this->bootAuth(); + $this->bootBroadcast(); } /** * Register any application services. - * - * @return void */ - public function register() + public function register(): void { BouncerModels::scope(new DefaultScope); } @@ -67,4 +103,46 @@ class AppServiceProvider extends ServiceProvider ->data('model', $data['model']) ->data('group', $data['group']); } + + public function bootAuth() + { + + Gate::define('create company', [CompanyPolicy::class, 'create']); + Gate::define('transfer company ownership', [CompanyPolicy::class, 'transferOwnership']); + Gate::define('delete company', [CompanyPolicy::class, 'delete']); + + Gate::define('manage modules', [ModulesPolicy::class, 'manageModules']); + + Gate::define('manage settings', [SettingsPolicy::class, 'manageSettings']); + Gate::define('manage company', [SettingsPolicy::class, 'manageCompany']); + Gate::define('manage backups', [SettingsPolicy::class, 'manageBackups']); + Gate::define('manage file disk', [SettingsPolicy::class, 'manageFileDisk']); + Gate::define('manage email config', [SettingsPolicy::class, 'manageEmailConfig']); + Gate::define('manage notes', [NotePolicy::class, 'manageNotes']); + Gate::define('view notes', [NotePolicy::class, 'viewNotes']); + + Gate::define('send invoice', [InvoicePolicy::class, 'send']); + Gate::define('send estimate', [EstimatePolicy::class, 'send']); + Gate::define('send payment', [PaymentPolicy::class, 'send']); + + Gate::define('delete multiple items', [ItemPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple customers', [CustomerPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple users', [UserPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple invoices', [InvoicePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple estimates', [EstimatePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple expenses', [ExpensePolicy::class, 'deleteMultiple']); + Gate::define('delete multiple payments', [PaymentPolicy::class, 'deleteMultiple']); + Gate::define('delete multiple recurring invoices', [RecurringInvoicePolicy::class, 'deleteMultiple']); + + Gate::define('view dashboard', [DashboardPolicy::class, 'view']); + + Gate::define('view report', [ReportPolicy::class, 'viewReport']); + + Gate::define('owner only', [OwnerPolicy::class, 'managedByOwner']); + } + + public function bootBroadcast() + { + Broadcast::routes(['middleware' => 'api.auth']); + } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index b5e59d15..00000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,90 +0,0 @@ - \InvoiceShelf\Policies\CustomerPolicy::class, - \InvoiceShelf\Models\Invoice::class => \InvoiceShelf\Policies\InvoicePolicy::class, - \InvoiceShelf\Models\Estimate::class => \InvoiceShelf\Policies\EstimatePolicy::class, - \InvoiceShelf\Models\Payment::class => \InvoiceShelf\Policies\PaymentPolicy::class, - \InvoiceShelf\Models\Expense::class => \InvoiceShelf\Policies\ExpensePolicy::class, - \InvoiceShelf\Models\ExpenseCategory::class => \InvoiceShelf\Policies\ExpenseCategoryPolicy::class, - \InvoiceShelf\Models\PaymentMethod::class => \InvoiceShelf\Policies\PaymentMethodPolicy::class, - \InvoiceShelf\Models\TaxType::class => \InvoiceShelf\Policies\TaxTypePolicy::class, - \InvoiceShelf\Models\CustomField::class => \InvoiceShelf\Policies\CustomFieldPolicy::class, - \InvoiceShelf\Models\User::class => \InvoiceShelf\Policies\UserPolicy::class, - \InvoiceShelf\Models\Item::class => \InvoiceShelf\Policies\ItemPolicy::class, - \Silber\Bouncer\Database\Role::class => \InvoiceShelf\Policies\RolePolicy::class, - \InvoiceShelf\Models\Unit::class => \InvoiceShelf\Policies\UnitPolicy::class, - \InvoiceShelf\Models\RecurringInvoice::class => \InvoiceShelf\Policies\RecurringInvoicePolicy::class, - \InvoiceShelf\Models\ExchangeRateProvider::class => \InvoiceShelf\Policies\ExchangeRateProviderPolicy::class, - ]; - - /** - * Register any authentication / authorization services. - * - * @return void - */ - public function boot() - { - $this->registerPolicies(); - - Gate::define('create company', [CompanyPolicy::class, 'create']); - Gate::define('transfer company ownership', [CompanyPolicy::class, 'transferOwnership']); - Gate::define('delete company', [CompanyPolicy::class, 'delete']); - - Gate::define('manage modules', [ModulesPolicy::class, 'manageModules']); - - Gate::define('manage settings', [SettingsPolicy::class, 'manageSettings']); - Gate::define('manage company', [SettingsPolicy::class, 'manageCompany']); - Gate::define('manage backups', [SettingsPolicy::class, 'manageBackups']); - Gate::define('manage file disk', [SettingsPolicy::class, 'manageFileDisk']); - Gate::define('manage email config', [SettingsPolicy::class, 'manageEmailConfig']); - Gate::define('manage notes', [NotePolicy::class, 'manageNotes']); - Gate::define('view notes', [NotePolicy::class, 'viewNotes']); - - Gate::define('send invoice', [InvoicePolicy::class, 'send']); - Gate::define('send estimate', [EstimatePolicy::class, 'send']); - Gate::define('send payment', [PaymentPolicy::class, 'send']); - - Gate::define('delete multiple items', [ItemPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple customers', [CustomerPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple users', [UserPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple invoices', [InvoicePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple estimates', [EstimatePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple expenses', [ExpensePolicy::class, 'deleteMultiple']); - Gate::define('delete multiple payments', [PaymentPolicy::class, 'deleteMultiple']); - Gate::define('delete multiple recurring invoices', [RecurringInvoicePolicy::class, 'deleteMultiple']); - - Gate::define('view dashboard', [DashboardPolicy::class, 'view']); - - Gate::define('view report', [ReportPolicy::class, 'viewReport']); - - Gate::define('owner only', [OwnerPolicy::class, 'managedByOwner']); - } -} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php deleted file mode 100644 index 03311fc2..00000000 --- a/app/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - 'api.auth']); - require base_path('routes/channels.php'); - } -} diff --git a/app/Providers/DropboxServiceProvider.php b/app/Providers/DropboxServiceProvider.php index 96fed754..334dc63e 100644 --- a/app/Providers/DropboxServiceProvider.php +++ b/app/Providers/DropboxServiceProvider.php @@ -1,6 +1,6 @@ [ - - ], - Registered::class => [ - SendEmailVerificationNotification::class, - ], - ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - parent::boot(); - - // - } -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 9c95749d..9dffbff5 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -1,6 +1,6 @@ configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') - ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') - ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. - * - * @return void */ - protected function configureRateLimiting() + protected function configureRateLimiting(): void { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60); diff --git a/app/Providers/ViewServiceProvider.php b/app/Providers/ViewServiceProvider.php index 16b868a4..17d7a106 100644 --- a/app/Providers/ViewServiceProvider.php +++ b/app/Providers/ViewServiceProvider.php @@ -1,6 +1,6 @@ extensions = $extensions; } - /** - * Determine if the validation rule passes. - * - * @param string $attribute - * @param mixed $value - * @return bool - */ - public function passes($attribute, $value) + public function validate(string $attribute, mixed $value, Closure $fail): void { $this->attribute = $attribute; + $failed = false; try { $decoded = json_decode(trim($value)); $name = ! empty($decoded->name) ? $decoded->name : ''; $data = ! empty($decoded->data) ? $decoded->data : ''; } catch (\Exception $e) { - return false; + $failed = true; } $extension = pathinfo($name, PATHINFO_EXTENSION); if (! in_array($extension, $this->extensions)) { - return false; + $failed = true; } $pattern = '/^data:\w+\/[\w\+]+;base64,[\w\+\=\/]+$/'; if (! preg_match($pattern, $data)) { - return false; + $failed = true; } $data = explode(',', $data); if (! isset($data[1]) || empty($data[1])) { - return false; + $failed = true; } try { @@ -62,34 +57,26 @@ class Base64Mime implements Rule $result = finfo_buffer($f, $data, FILEINFO_EXTENSION); if ($result === '???') { - return false; + $failed = true; } if (strpos($result, '/')) { foreach (explode('/', $result) as $ext) { if (in_array($ext, $this->extensions)) { - return true; + $failed = false; } } } else { if (in_array($result, $this->extensions)) { - return true; + $failed = false; } } } catch (\Exception $e) { - return false; + $failed = true; } - return false; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return 'The '.$this->attribute.' must be a json with file of type: '.implode(', ', $this->extensions).' encoded in base64.'; + if ($failed) { + $fail('The '.$this->attribute.' must be a json with file of type: '.implode(', ', $this->extensions).' encoded in base64.'); + } } } diff --git a/app/Rules/RelationNotExist.php b/app/Rules/RelationNotExist.php index fd100682..452c49fb 100644 --- a/app/Rules/RelationNotExist.php +++ b/app/Rules/RelationNotExist.php @@ -1,10 +1,11 @@ relation; if ($this->class::find($value)->$relation()->exists()) { - return false; + $fail("Relation {$this->relation} exists."); } - return true; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return "Relation {$this->relation} exists."; } } diff --git a/app/Services/Module/Module.php b/app/Services/Module/Module.php index c51a87ed..70e5103d 100644 --- a/app/Services/Module/Module.php +++ b/app/Services/Module/Module.php @@ -1,6 +1,6 @@ Carbon::now()->format($format['carbon_format']), + 'display_date' => Carbon::now()->translatedFormat($format['carbon_format']), 'carbon_format_value' => $format['carbon_format'], 'moment_format_value' => $format['moment_format'], ]; diff --git a/app/Space/EnvironmentManager.php b/app/Space/EnvironmentManager.php index 4c761fd7..24e5c905 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -1,13 +1,14 @@ $request->get('app_url'), + 'APP_LOCALE' => $request->get('app_locale'), 'DB_CONNECTION' => $request->get('database_connection'), 'SANCTUM_STATEFUL_DOMAINS' => $request->get('app_domain'), 'SESSION_DOMAIN' => explode(':', $request->get('app_domain'))[0], ]; - if ($request->has('database_username') && $request->has('database_password')) { - $dbEnv['DB_HOST'] = $request->get('database_hostname'); - $dbEnv['DB_PORT'] = $request->get('database_port'); - $dbEnv['DB_DATABASE'] = $request->get('database_name'); - $dbEnv['DB_USERNAME'] = $request->get('database_username'); - $dbEnv['DB_PASSWORD'] = $request->get('database_password'); - + if ($dbEnv['DB_CONNECTION'] != 'sqlite') { + if ($request->has('database_username') && $request->has('database_password')) { + $dbEnv['DB_HOST'] = $request->get('database_hostname'); + $dbEnv['DB_PORT'] = $request->get('database_port'); + $dbEnv['DB_DATABASE'] = $request->get('database_name'); + $dbEnv['DB_USERNAME'] = $request->get('database_username'); + $dbEnv['DB_PASSWORD'] = $request->get('database_password'); + } } else { + // Laravel 11 requires SQLite at least v3.35.0 + // https://laravel.com/docs/11.x/database#introduction + if (extension_loaded('sqlite3') && class_exists('\SQLite3') && method_exists('\SQLite3', 'version')) { + $version = \SQLite3::version(); + if (! empty($version['versionString']) && version_compare($version['versionString'], '3.35.0', '<')) { + return [ + 'error_message' => sprintf('The minimum SQLite version is %s. Your current SQLite version is %s which is not supported. Please upgrade SQLite and retry.', '3.35.0', $version['versionString']), + ]; + } + } else { + return [ + 'error_message' => sprintf('SQLite3 is not present. Please install SQLite >=%s and retry.', '3.35.0'), + ]; + } $dbEnv['DB_DATABASE'] = $request->get('database_name'); + if (! empty($dbEnv['DB_DATABASE'])) { + $sqlite_path = $dbEnv['DB_DATABASE']; + } else { + $sqlite_path = database_path('database.sqlite'); + } + // Create empty SQLite database if it doesn't exist. + if (! file_exists($sqlite_path)) { + copy(database_path('stubs/sqlite.empty.db'), $sqlite_path); + $dbEnv['DB_DATABASE'] = $sqlite_path; + } } try { $this->checkDatabaseConnection($request); - + if ($request->get('database_overwrite')) { + Artisan::call('db:wipe --force'); + } if (\Schema::hasTable('users')) { return [ 'error' => 'database_should_be_empty', @@ -165,7 +193,7 @@ class EnvironmentManager 'database' => $request->get('database_name'), ]); - if ($request->has('database_username') && $request->has('database_password')) { + if ($connection !== 'sqlite' && $request->has('database_username') && $request->has('database_password')) { $connectionArray = array_merge($connectionArray, [ 'username' => $request->get('database_username'), 'password' => $request->get('database_password'), @@ -230,7 +258,7 @@ class EnvironmentManager 'MAIL_PORT' => $request->get('mail_port'), 'MAIL_USERNAME' => $request->get('mail_username'), 'MAIL_PASSWORD' => $request->get('mail_password'), - 'MAIL_ENCRYPTION' => $request->get('mail_encryption'), + 'MAIL_ENCRYPTION' => $request->get('mail_encryption') !== 'none' ? $request->get('mail_encryption') : 'null', 'MAIL_FROM_ADDRESS' => $request->get('from_mail'), 'MAIL_FROM_NAME' => $request->get('from_name'), ]; diff --git a/app/Space/FilePermissionChecker.php b/app/Space/FilePermissionChecker.php index 6c48dc7e..4fb2a14d 100644 --- a/app/Space/FilePermissionChecker.php +++ b/app/Space/FilePermissionChecker.php @@ -1,6 +1,6 @@ 100, 'track_redirects' => true]); + $data = (object) ['success' => false, 'release' => null]; if ($response && ($response->getStatusCode() == 200)) { $data = $response->getBody()->getContents(); + $data = json_decode($data); } - $data = json_decode($data); - if ($data->success && $data->release && property_exists($data->release, 'extensions')) { $extensions = []; foreach ($data->release->extensions as $extension) { @@ -138,6 +139,7 @@ class Updater public static function finishUpdate($installed, $version) { + Setting::setSetting('version', $version); event(new UpdateFinished($installed, $version)); return [ diff --git a/app/Space/helpers.php b/app/Space/helpers.php index 4e05deb4..85341783 100644 --- a/app/Space/helpers.php +++ b/app/Space/helpers.php @@ -1,11 +1,11 @@ morphMany('InvoiceShelf\Models\CustomFieldValue', 'custom_field_valuable'); + return $this->morphMany(\App\Models\CustomFieldValue::class, 'custom_field_valuable'); } protected static function booted() diff --git a/artisan b/artisan old mode 100644 new mode 100755 index 5c23e2e2..8e04b422 --- a/artisan +++ b/artisan @@ -1,53 +1,15 @@ #!/usr/bin/env php make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ - -$kernel->terminate($input, $status); +// Bootstrap Laravel and handle the command... +$status = (require_once __DIR__.'/bootstrap/app.php') + ->handleCommand(new ArgvInput); exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php index cf96fb62..b71fd536 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -1,55 +1,73 @@ withProviders([ + \Lavary\Menu\ServiceProvider::class, + ]) + ->withRouting( + web: __DIR__.'/../routes/web.php', + api: __DIR__.'/../routes/api.php', + commands: __DIR__.'/../routes/console.php', + channels: __DIR__.'/../routes/channels.php', + health: '/up', + ) + ->withMiddleware(function (Middleware $middleware) { + $middleware->redirectGuestsTo(fn () => route('login')); + $middleware->redirectUsersTo(AppServiceProvider::HOME); -/* -|-------------------------------------------------------------------------- -| Bind Important Interfaces -|-------------------------------------------------------------------------- -| -| Next, we need to bind some important interfaces into the container so -| we will be able to resolve them when needed. The kernels serve the -| incoming requests to this application from both the web and CLI. -| -*/ + $middleware->validateCsrfTokens(except: [ + 'login', + ]); -$app->singleton( - Illuminate\Contracts\Http\Kernel::class, - InvoiceShelf\Http\Kernel::class -); + $middleware->append([ + \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, + \App\Http\Middleware\TrimStrings::class, + \App\Http\Middleware\TrustProxies::class, + \App\Http\Middleware\ConfigMiddleware::class, + ]); -$app->singleton( - Illuminate\Contracts\Console\Kernel::class, - InvoiceShelf\Console\Kernel::class -); + $middleware->web([ + \App\Http\Middleware\EncryptCookies::class, + \App\Http\Middleware\VerifyCsrfToken::class, + ]); -$app->singleton( - Illuminate\Contracts\Debug\ExceptionHandler::class, - InvoiceShelf\Exceptions\Handler::class -); + $middleware->statefulApi(); + $middleware->throttleApi('180,1'); -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ + $middleware->replace(\Illuminate\Http\Middleware\TrustProxies::class, \App\Http\Middleware\TrustProxies::class); -return $app; + $middleware->replaceInGroup('web', \Illuminate\Cookie\Middleware\EncryptCookies::class, \App\Http\Middleware\EncryptCookies::class); + + $middleware->alias([ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'bouncer' => \App\Http\Middleware\ScopeBouncer::class, + 'company' => \App\Http\Middleware\CompanyMiddleware::class, + 'cron-job' => \App\Http\Middleware\CronJobMiddleware::class, + 'customer' => \App\Http\Middleware\CustomerRedirectIfAuthenticated::class, + 'customer-guest' => \App\Http\Middleware\CustomerGuest::class, + 'customer-portal' => \App\Http\Middleware\CustomerPortalMiddleware::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'install' => \App\Http\Middleware\InstallationMiddleware::class, + 'pdf-auth' => \App\Http\Middleware\PdfMiddleware::class, + 'redirect-if-installed' => \App\Http\Middleware\RedirectIfInstalled::class, + 'redirect-if-unauthenticated' => \App\Http\Middleware\RedirectIfUnauthorized::class, + ]); + + $middleware->priority([ + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\Authenticate::class, + \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + \Illuminate\Auth\Middleware\Authorize::class, + ]); + }) + ->withExceptions(function (Exceptions $exceptions) { + // + })->create(); diff --git a/bootstrap/providers.php b/bootstrap/providers.php new file mode 100644 index 00000000..d1d8afb7 --- /dev/null +++ b/bootstrap/providers.php @@ -0,0 +1,8 @@ +=4.0.0" + "doctrine/dbal": "<4.0.0 || >=5.0.0" }, "require-dev": { - "doctrine/dbal": "^3.7.0", + "doctrine/dbal": "^4.0.0", "nesbot/carbon": "^2.71.0 || ^3.0.0", "phpunit/phpunit": "^10.3" }, @@ -343,7 +343,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" }, "funding": [ { @@ -359,20 +359,20 @@ "type": "tidelift" } ], - "time": "2023-12-11T17:09:12+00:00" + "time": "2024-02-09T16:56:22+00:00" }, { "name": "dflydev/dot-access-data", - "version": "v3.0.3", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" + "reference": "f41715465d65213d644d3141a6a93081be5d3549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", - "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", "shasum": "" }, "require": { @@ -432,146 +432,48 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" }, - "time": "2024-07-08T12:26:09+00:00" - }, - { - "name": "doctrine/cache", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:07:39+00:00" + "time": "2022-10-27T11:44:00+00:00" }, { "name": "doctrine/dbal", - "version": "3.8.6", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "b7411825cf7efb7e51f9791dea19d86e43b399a1" + "reference": "50fda19f80724b55ff770bb4ff352407008e63c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/b7411825cf7efb7e51f9791dea19d86e43b399a1", - "reference": "b7411825cf7efb7e51f9791dea19d86e43b399a1", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/50fda19f80724b55ff770bb4ff352407008e63c5", + "reference": "50fda19f80724b55ff770bb4ff352407008e63c5", "shasum": "" }, "require": { - "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1|^2", - "php": "^7.4 || ^8.0", + "php": "^8.1", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.1", + "jetbrains/phpstorm-stubs": "2023.2", "phpstan/phpstan": "1.11.5", + "phpstan/phpstan-phpunit": "1.4.0", "phpstan/phpstan-strict-rules": "^1.6", - "phpunit/phpunit": "9.6.19", - "psalm/plugin-phpunit": "0.18.4", + "phpunit/phpunit": "10.5.22", + "psalm/plugin-phpunit": "0.19.0", "slevomat/coding-standard": "8.13.1", "squizlabs/php_codesniffer": "3.10.1", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/console": "^4.4|^5.4|^6.0|^7.0", - "vimeo/psalm": "4.30.0" + "symfony/cache": "^6.3.8|^7.0", + "symfony/console": "^5.4|^6.3|^7.0", + "vimeo/psalm": "5.24.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." }, - "bin": [ - "bin/doctrine-dbal" - ], "type": "library", "autoload": { "psr-4": { @@ -624,7 +526,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.8.6" + "source": "https://github.com/doctrine/dbal/tree/4.0.4" }, "funding": [ { @@ -640,7 +542,7 @@ "type": "tidelift" } ], - "time": "2024-06-19T10:38:17+00:00" + "time": "2024-06-19T11:57:23+00:00" }, { "name": "doctrine/deprecations", @@ -689,97 +591,6 @@ }, "time": "2024-01-30T19:34:25+00:00" }, - { - "name": "doctrine/event-manager", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/b680156fa328f1dfd874fd48c7026c41570b9c6e", - "reference": "b680156fa328f1dfd874fd48c7026c41570b9c6e", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "phpstan/phpstan": "^1.8.8", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.24" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.0.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2024-05-22T20:47:39+00:00" - }, { "name": "doctrine/inflector", "version": "2.0.10", @@ -1937,90 +1748,6 @@ }, "time": "2023-02-23T15:00:54+00:00" }, - { - "name": "intervention/image", - "version": "2.7.2", - "source": { - "type": "git", - "url": "https://github.com/Intervention/image.git", - "reference": "04be355f8d6734c826045d02a1079ad658322dad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", - "reference": "04be355f8d6734c826045d02a1079ad658322dad", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "guzzlehttp/psr7": "~1.1 || ^2.0", - "php": ">=5.4.0" - }, - "require-dev": { - "mockery/mockery": "~0.9.2", - "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" - }, - "suggest": { - "ext-gd": "to use GD library based image processing.", - "ext-imagick": "to use Imagick based image processing.", - "intervention/imagecache": "Caching extension for the Intervention Image library" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - }, - "laravel": { - "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": { - "Image": "Intervention\\Image\\Facades\\Image" - } - } - }, - "autoload": { - "psr-4": { - "Intervention\\Image\\": "src/Intervention/Image" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Oliver Vogel", - "email": "oliver@intervention.io", - "homepage": "https://intervention.io/" - } - ], - "description": "Image handling and manipulation library with support for Laravel integration", - "homepage": "http://image.intervention.io/", - "keywords": [ - "gd", - "image", - "imagick", - "laravel", - "thumbnail", - "watermark" - ], - "support": { - "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/2.7.2" - }, - "funding": [ - { - "url": "https://paypal.me/interventionio", - "type": "custom" - }, - { - "url": "https://github.com/Intervention", - "type": "github" - } - ], - "time": "2022-05-21T17:30:32+00:00" - }, { "name": "invoiceshelf/modules", "version": "1.0.0", @@ -2089,23 +1816,23 @@ }, { "name": "jasonmccreary/laravel-test-assertions", - "version": "v2.4.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/jasonmccreary/laravel-test-assertions.git", - "reference": "e60bc8c737e535e55ac85eacf61718616bf0e2d6" + "reference": "e506c4eb57816e036b143bd1c64589e1d013337d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/e60bc8c737e535e55ac85eacf61718616bf0e2d6", - "reference": "e60bc8c737e535e55ac85eacf61718616bf0e2d6", + "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/e506c4eb57816e036b143bd1c64589e1d013337d", + "reference": "e506c4eb57816e036b143bd1c64589e1d013337d", "shasum": "" }, "require": { "illuminate/testing": "^10.0|^11.0", "mockery/mockery": "^1.4.4", "php": "^8.1", - "phpunit/phpunit": "^10.1|^11.0" + "phpunit/phpunit": "^10.1" }, "type": "library", "extra": { @@ -2133,22 +1860,22 @@ "description": "A set of helpful assertions when testing Laravel applications.", "support": { "issues": "https://github.com/jasonmccreary/laravel-test-assertions/issues", - "source": "https://github.com/jasonmccreary/laravel-test-assertions/tree/v2.4.1" + "source": "https://github.com/jasonmccreary/laravel-test-assertions/tree/v2.4.0" }, - "time": "2024-06-10T14:00:38+00:00" + "time": "2024-02-29T19:39:03+00:00" }, { "name": "laravel/framework", - "version": "v10.48.16", + "version": "v11.9.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "f9a3a50fae399d75e125b0eea637dda90c99eae7" + "reference": "2b3e8d75f10b0ed17416282946355dc026bf326c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/f9a3a50fae399d75e125b0eea637dda90c99eae7", - "reference": "f9a3a50fae399d75e125b0eea637dda90c99eae7", + "url": "https://api.github.com/repos/laravel/framework/zipball/2b3e8d75f10b0ed17416282946355dc026bf326c", + "reference": "2b3e8d75f10b0ed17416282946355dc026bf326c", "shasum": "" }, "require": { @@ -2164,40 +1891,39 @@ "ext-openssl": "*", "ext-session": "*", "ext-tokenizer": "*", - "fruitcake/php-cors": "^1.2", + "fruitcake/php-cors": "^1.3", + "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.9", + "laravel/prompts": "^0.1.18", "laravel/serializable-closure": "^1.3", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.67", - "nunomaduro/termwind": "^1.13", - "php": "^8.1", + "nesbot/carbon": "^2.72.2|^3.0", + "nunomaduro/termwind": "^2.0", + "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^6.2", - "symfony/error-handler": "^6.2", - "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.4", - "symfony/http-kernel": "^6.2", - "symfony/mailer": "^6.2", - "symfony/mime": "^6.2", - "symfony/process": "^6.2", - "symfony/routing": "^6.2", - "symfony/uid": "^6.2", - "symfony/var-dumper": "^6.2", + "symfony/console": "^7.0", + "symfony/error-handler": "^7.0", + "symfony/finder": "^7.0", + "symfony/http-foundation": "^7.0", + "symfony/http-kernel": "^7.0", + "symfony/mailer": "^7.0", + "symfony/mime": "^7.0", + "symfony/polyfill-php83": "^1.28", + "symfony/process": "^7.0", + "symfony/routing": "^7.0", + "symfony/uid": "^7.0", + "symfony/var-dumper": "^7.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.4.1", "voku/portable-ascii": "^2.0" }, "conflict": { - "carbonphp/carbon-doctrine-types": ">=3.0", - "doctrine/dbal": ">=4.0", "mockery/mockery": "1.6.8", - "phpunit/phpunit": ">=11.0.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -2237,36 +1963,35 @@ "illuminate/testing": "self.version", "illuminate/translation": "self.version", "illuminate/validation": "self.version", - "illuminate/view": "self.version" + "illuminate/view": "self.version", + "spatie/once": "*" }, "require-dev": { "ably/ably-php": "^1.0", "aws/aws-sdk-php": "^3.235.5", - "doctrine/dbal": "^3.5.1", "ext-gmp": "*", - "fakerphp/faker": "^1.21", - "guzzlehttp/guzzle": "^7.5", + "fakerphp/faker": "^1.23", "league/flysystem-aws-s3-v3": "^3.0", "league/flysystem-ftp": "^3.0", "league/flysystem-path-prefixing": "^3.3", "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", - "mockery/mockery": "^1.5.1", + "mockery/mockery": "^1.6", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.23.4", - "pda/pheanstalk": "^4.0", + "orchestra/testbench-core": "^9.0.15", + "pda/pheanstalk": "^5.0", "phpstan/phpstan": "^1.4.7", - "phpunit/phpunit": "^10.0.7", + "phpunit/phpunit": "^10.5|^11.0", "predis/predis": "^2.0.2", - "symfony/cache": "^6.2", - "symfony/http-client": "^6.2.4", - "symfony/psr-http-message-bridge": "^2.0" + "resend/resend-php": "^0.10.0", + "symfony/cache": "^7.0", + "symfony/http-client": "^7.0", + "symfony/psr-http-message-bridge": "^7.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", - "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", + "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", "ext-apcu": "Required to use the APC cache driver.", "ext-fileinfo": "Required to use the Filesystem class.", "ext-ftp": "Required to use the Flysystem FTP driver.", @@ -2275,34 +2000,34 @@ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", "ext-pdo": "Required to use all database features.", "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", - "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", "league/flysystem-read-only": "Required to use read-only disks (^3.3)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", - "mockery/mockery": "Required to use mocking (^1.5.1).", + "mockery/mockery": "Required to use mocking (^1.6).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", "predis/predis": "Required to use the predis connector (^2.0.2).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^6.2).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "10.x-dev" + "dev-master": "11.x-dev" } }, "autoload": { @@ -2342,7 +2067,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-07-09T15:25:22+00:00" + "time": "2024-05-30T09:40:11+00:00" }, { "name": "laravel/helpers", @@ -2403,16 +2128,16 @@ }, { "name": "laravel/prompts", - "version": "v0.1.24", + "version": "v0.1.23", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "409b0b4305273472f3754826e68f4edbd0150149" + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/409b0b4305273472f3754826e68f4edbd0150149", - "reference": "409b0b4305273472f3754826e68f4edbd0150149", + "url": "https://api.github.com/repos/laravel/prompts/zipball/9bc4df7c699b0452c6b815e64a2d84b6d7f99400", + "reference": "9bc4df7c699b0452c6b815e64a2d84b6d7f99400", "shasum": "" }, "require": { @@ -2455,43 +2180,41 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.24" + "source": "https://github.com/laravel/prompts/tree/v0.1.23" }, - "time": "2024-06-17T13:58:22+00:00" + "time": "2024-05-27T13:53:20+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.3", + "version": "v4.0.2", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", - "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/9cfc0ce80cabad5334efff73ec856339e8ec1ac1", + "reference": "9cfc0ce80cabad5334efff73ec856339e8ec1ac1", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^9.21|^10.0", - "illuminate/contracts": "^9.21|^10.0", - "illuminate/database": "^9.21|^10.0", - "illuminate/support": "^9.21|^10.0", - "php": "^8.0.2" + "illuminate/console": "^11.0", + "illuminate/contracts": "^11.0", + "illuminate/database": "^11.0", + "illuminate/support": "^11.0", + "php": "^8.2", + "symfony/console": "^7.0" }, "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^7.28.2|^8.8.3", + "mockery/mockery": "^1.6", + "orchestra/testbench": "^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.6" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - }, "laravel": { "providers": [ "Laravel\\Sanctum\\SanctumServiceProvider" @@ -2523,7 +2246,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-12-19T18:44:48+00:00" + "time": "2024-04-10T19:39:58+00:00" }, { "name": "laravel/serializable-closure", @@ -3145,71 +2868,6 @@ }, "time": "2024-05-06T20:05:52+00:00" }, - { - "name": "league/glide", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/glide.git", - "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/glide/zipball/2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", - "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", - "shasum": "" - }, - "require": { - "intervention/image": "^2.7", - "league/flysystem": "^2.0|^3.0", - "php": "^7.2|^8.0", - "psr/http-message": "^1.0|^2.0" - }, - "require-dev": { - "mockery/mockery": "^1.3.3", - "phpunit/php-token-stream": "^3.1|^4.0", - "phpunit/phpunit": "^8.5|^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "League\\Glide\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Reinink", - "email": "jonathan@reinink.ca", - "homepage": "http://reinink.ca" - }, - { - "name": "Titouan Galopin", - "email": "galopintitouan@gmail.com", - "homepage": "https://titouangalopin.com" - } - ], - "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", - "homepage": "http://glide.thephpleague.com", - "keywords": [ - "ImageMagick", - "editing", - "gd", - "image", - "imagick", - "league", - "manipulation", - "processing" - ], - "support": { - "issues": "https://github.com/thephpleague/glide/issues", - "source": "https://github.com/thephpleague/glide/tree/2.3.0" - }, - "time": "2023-07-08T06:26:07+00:00" - }, { "name": "league/mime-type-detection", "version": "1.15.0", @@ -3499,16 +3157,16 @@ }, { "name": "monolog/monolog", - "version": "3.7.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", - "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", "shasum": "" }, "require": { @@ -3584,7 +3242,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.7.0" + "source": "https://github.com/Seldaek/monolog/tree/3.6.0" }, "funding": [ { @@ -3596,7 +3254,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:40:51+00:00" + "time": "2024-04-12T21:02:21+00:00" }, { "name": "mtdowling/jmespath.php", @@ -3666,16 +3324,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -3683,12 +3341,11 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -3714,7 +3371,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -3722,46 +3379,45 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "nesbot/carbon", - "version": "2.72.5", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed" + "reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed", - "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8eab8983c83c30e0bacbef8d311e3f3b8172727f", + "reference": "8eab8983c83c30e0bacbef8d311e3f3b8172727f", "shasum": "" }, "require": { "carbonphp/carbon-doctrine-types": "*", "ext-json": "*", - "php": "^7.1.8 || ^8.0", + "php": "^8.1", "psr/clock": "^1.0", + "symfony/clock": "^6.3 || ^7.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0", - "doctrine/orm": "^2.7 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.0", - "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.99 || ^1.7.14", - "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", - "squizlabs/php_codesniffer": "^3.4" + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.52.1", + "kylekatarnls/multi-tester": "^2.5.3", + "ondrejmirtes/better-reflection": "^6.25.0.4", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.10.65", + "phpunit/phpunit": "^10.5.15", + "squizlabs/php_codesniffer": "^3.9.0" }, "bin": [ "bin/carbon" @@ -3829,7 +3485,7 @@ "type": "tidelift" } ], - "time": "2024-06-03T19:18:41+00:00" + "time": "2024-05-24T14:26:34+00:00" }, { "name": "nette/schema", @@ -3981,16 +3637,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.1.0", + "version": "v5.0.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", - "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", + "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", "shasum": "" }, "require": { @@ -4001,7 +3657,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -4033,39 +3689,38 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" }, - "time": "2024-07-01T20:03:41+00:00" + "time": "2024-03-05T20:51:40+00:00" }, { "name": "nunomaduro/termwind", - "version": "v1.15.1", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" + "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", - "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", + "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^8.0", - "symfony/console": "^5.3.0|^6.0.0" + "php": "^8.2", + "symfony/console": "^7.0.4" }, "require-dev": { - "ergebnis/phpstan-rules": "^1.0.", - "illuminate/console": "^8.0|^9.0", - "illuminate/support": "^8.0|^9.0", - "laravel/pint": "^1.0.0", - "pestphp/pest": "^1.21.0", - "pestphp/pest-plugin-mock": "^1.0", - "phpstan/phpstan": "^1.4.6", - "phpstan/phpstan-strict-rules": "^1.1.0", - "symfony/var-dumper": "^5.2.7|^6.0.0", + "ergebnis/phpstan-rules": "^2.2.0", + "illuminate/console": "^11.0.0", + "laravel/pint": "^1.14.0", + "mockery/mockery": "^1.6.7", + "pestphp/pest": "^2.34.1", + "phpstan/phpstan": "^1.10.59", + "phpstan/phpstan-strict-rules": "^1.5.2", + "symfony/var-dumper": "^7.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -4074,6 +3729,9 @@ "providers": [ "Termwind\\Laravel\\TermwindServiceProvider" ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -4105,7 +3763,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" + "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1" }, "funding": [ { @@ -4121,7 +3779,7 @@ "type": "github" } ], - "time": "2023-02-08T01:06:31+00:00" + "time": "2024-03-06T16:17:14+00:00" }, { "name": "phar-io/manifest", @@ -4408,16 +4066,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.15", + "version": "10.1.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", "shasum": "" }, "require": { @@ -4474,7 +4132,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" }, "funding": [ { @@ -4482,7 +4140,7 @@ "type": "github" } ], - "time": "2024-06-29T08:25:15+00:00" + "time": "2024-03-12T15:33:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -5352,16 +5010,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.4", + "version": "v0.12.3", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818" + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818", - "reference": "2fd717afa05341b4f8152547f142cd2f130f6818", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", "shasum": "" }, "require": { @@ -5425,9 +5083,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.4" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" }, - "time": "2024-06-10T01:18:23+00:00" + "time": "2024-04-02T15:57:53+00:00" }, { "name": "ralouphie/getallheaders", @@ -5656,16 +5314,16 @@ }, { "name": "sabberworm/php-css-parser", - "version": "v8.6.0", + "version": "v8.5.1", "source": { "type": "git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "d2fb94a9641be84d79c7548c6d39bbebba6e9a70" + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d2fb94a9641be84d79c7548c6d39bbebba6e9a70", - "reference": "d2fb94a9641be84d79c7548c6d39bbebba6e9a70", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152", + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152", "shasum": "" }, "require": { @@ -5715,9 +5373,9 @@ ], "support": { "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.6.0" + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.5.1" }, - "time": "2024-07-01T07:33:21+00:00" + "time": "2024-02-15T16:41:13+00:00" }, { "name": "sebastian/cli-parser", @@ -6637,32 +6295,33 @@ }, { "name": "silber/bouncer", - "version": "v1.0.1", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/JosephSilber/bouncer.git", - "reference": "502221b6724fe806aa01ffe08070edaa10222101" + "reference": "c4b3528990b1a6c652ff3705639dbb126dd9ee73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/502221b6724fe806aa01ffe08070edaa10222101", - "reference": "502221b6724fe806aa01ffe08070edaa10222101", + "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/c4b3528990b1a6c652ff3705639dbb126dd9ee73", + "reference": "c4b3528990b1a6c652ff3705639dbb126dd9ee73", "shasum": "" }, "require": { - "illuminate/auth": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/cache": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/container": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/database": "^6.0|^7.0|^8.0|^9.0|^10.0", - "php": "^7.2|^8.0" + "illuminate/auth": "^11.0", + "illuminate/cache": "^11.0", + "illuminate/container": "^11.0", + "illuminate/contracts": "^11.0", + "illuminate/database": "^11.0", + "php": "^8.2|^8.3" }, "require-dev": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/events": "^6.0|^7.0|^8.0|^9.0|^10.0", - "larapack/dd": "^1.1", - "mockery/mockery": "^1.3.3", - "phpunit/phpunit": "^8.0|^9.0" + "illuminate/console": "^11.0", + "illuminate/events": "^11.0", + "laravel/pint": "^1.14", + "orchestra/testbench": "^9.0", + "pestphp/pest": "3.x-dev", + "phpunit/phpunit": "^11.0" }, "suggest": { "illuminate/console": "Allows running the bouncer:clean artisan command", @@ -6706,9 +6365,9 @@ ], "support": { "issues": "https://github.com/JosephSilber/bouncer/issues", - "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.1" + "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.2" }, - "time": "2023-02-10T16:47:25+00:00" + "time": "2024-03-14T14:11:37+00:00" }, { "name": "spatie/db-dumper", @@ -6917,33 +6576,36 @@ }, { "name": "spatie/image", - "version": "2.2.7", + "version": "3.6.3", "source": { "type": "git", "url": "https://github.com/spatie/image.git", - "reference": "2f802853aab017aa615224daae1588054b5ab20e" + "reference": "1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image/zipball/2f802853aab017aa615224daae1588054b5ab20e", - "reference": "2f802853aab017aa615224daae1588054b5ab20e", + "url": "https://api.github.com/repos/spatie/image/zipball/1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99", + "reference": "1d4e9c536f1bf7b88e55555d0a1ae9eee6b76a99", "shasum": "" }, "require": { "ext-exif": "*", "ext-json": "*", "ext-mbstring": "*", - "league/glide": "^2.2.2", - "php": "^8.0", - "spatie/image-optimizer": "^1.7", - "spatie/temporary-directory": "^1.0|^2.0", - "symfony/process": "^3.0|^4.0|^5.0|^6.0" + "php": "^8.2", + "spatie/image-optimizer": "^1.7.5", + "spatie/temporary-directory": "^2.2", + "symfony/process": "^6.4|^7.0" }, "require-dev": { - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^9.5", - "symfony/var-dumper": "^4.0|^5.0|^6.0", - "vimeo/psalm": "^4.6" + "ext-gd": "*", + "ext-imagick": "*", + "pestphp/pest": "^2.28", + "phpstan/phpstan": "^1.10.50", + "spatie/pest-plugin-snapshots": "^2.1", + "spatie/pixelmatch-php": "^1.0", + "spatie/ray": "^1.40.1", + "symfony/var-dumper": "^6.4|7.0" }, "type": "library", "autoload": { @@ -6970,7 +6632,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/image/tree/2.2.7" + "source": "https://github.com/spatie/image/tree/3.6.3" }, "funding": [ { @@ -6982,7 +6644,7 @@ "type": "github" } ], - "time": "2023-07-24T13:54:13+00:00" + "time": "2024-05-24T14:08:59+00:00" }, { "name": "spatie/image-optimizer", @@ -7041,16 +6703,16 @@ }, { "name": "spatie/laravel-backup", - "version": "8.8.1", + "version": "8.8.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-backup.git", - "reference": "a9c2d2f726f4c60c2dc5d7c0c8380f72492638c2" + "reference": "7e74431fc5c46319a27daa44897df1c7bf4afe5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/a9c2d2f726f4c60c2dc5d7c0c8380f72492638c2", - "reference": "a9c2d2f726f4c60c2dc5d7c0c8380f72492638c2", + "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/7e74431fc5c46319a27daa44897df1c7bf4afe5a", + "reference": "7e74431fc5c46319a27daa44897df1c7bf4afe5a", "shasum": "" }, "require": { @@ -7124,7 +6786,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-backup/issues", - "source": "https://github.com/spatie/laravel-backup/tree/8.8.1" + "source": "https://github.com/spatie/laravel-backup/tree/8.8.0" }, "funding": [ { @@ -7136,57 +6798,57 @@ "type": "other" } ], - "time": "2024-06-04T11:31:33+00:00" + "time": "2024-05-02T13:09:01+00:00" }, { "name": "spatie/laravel-medialibrary", - "version": "10.15.0", + "version": "11.5.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "f464c82357500c5c68ea350edff35ed9831fd48e" + "reference": "99760ad7865a418708474cf594e736a381b45c0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/f464c82357500c5c68ea350edff35ed9831fd48e", - "reference": "f464c82357500c5c68ea350edff35ed9831fd48e", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/99760ad7865a418708474cf594e736a381b45c0e", + "reference": "99760ad7865a418708474cf594e736a381b45c0e", "shasum": "" }, "require": { "ext-exif": "*", "ext-fileinfo": "*", "ext-json": "*", - "illuminate/bus": "^9.18|^10.0", - "illuminate/conditionable": "^9.18|^10.0", - "illuminate/console": "^9.18|^10.0", - "illuminate/database": "^9.18|^10.0", - "illuminate/pipeline": "^9.18|^10.0", - "illuminate/support": "^9.18|^10.0", - "maennchen/zipstream-php": "^2.0|^3.0", - "php": "^8.0", - "spatie/image": "^2.2.7", - "spatie/temporary-directory": "^2.0", - "symfony/console": "^6.0" + "illuminate/bus": "^10.0|^11.0", + "illuminate/conditionable": "^10.0|^11.0", + "illuminate/console": "^10.0|^11.0", + "illuminate/database": "^10.0|^11.0", + "illuminate/pipeline": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "maennchen/zipstream-php": "^3.1", + "php": "^8.2", + "spatie/image": "^3.3.2", + "spatie/laravel-package-tools": "^1.16.1", + "spatie/temporary-directory": "^2.2", + "symfony/console": "^6.4.1|^7.0" }, "conflict": { "php-ffmpeg/php-ffmpeg": "<0.6.1" }, "require-dev": { - "aws/aws-sdk-php": "^3.133.11", - "doctrine/dbal": "^2.13", + "aws/aws-sdk-php": "^3.293.10", "ext-imagick": "*", "ext-pdo_sqlite": "*", "ext-zip": "*", - "guzzlehttp/guzzle": "^7.4", - "league/flysystem-aws-s3-v3": "^3.0", - "mockery/mockery": "^1.4", - "nunomaduro/larastan": "^2.0", - "orchestra/testbench": "^7.0|^8.0", - "pestphp/pest": "^1.21", - "phpstan/extension-installer": "^1.1", - "spatie/laravel-ray": "^1.28", - "spatie/pdf-to-image": "^2.1", - "spatie/phpunit-snapshot-assertions": "^4.2" + "guzzlehttp/guzzle": "^7.8.1", + "larastan/larastan": "^2.7", + "league/flysystem-aws-s3-v3": "^3.22", + "mockery/mockery": "^1.6.7", + "orchestra/testbench": "^7.0|^8.17|^9.0", + "pestphp/pest": "^2.28", + "phpstan/extension-installer": "^1.3.1", + "spatie/laravel-ray": "^1.33", + "spatie/pdf-to-image": "^2.2", + "spatie/pest-plugin-snapshots": "^2.1" }, "suggest": { "league/flysystem-aws-s3-v3": "Required to use AWS S3 file storage", @@ -7232,7 +6894,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/10.15.0" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.5.2" }, "funding": [ { @@ -7244,7 +6906,7 @@ "type": "github" } ], - "time": "2023-11-03T13:09:19+00:00" + "time": "2024-05-27T09:07:25+00:00" }, { "name": "spatie/laravel-package-tools", @@ -7308,30 +6970,31 @@ }, { "name": "spatie/laravel-signal-aware-command", - "version": "1.3.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-signal-aware-command.git", - "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571" + "reference": "49a5e671c3a3fd992187a777d01385fc6a84759d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/46cda09a85aef3fd47fb73ddc7081f963e255571", - "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571", + "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/49a5e671c3a3fd992187a777d01385fc6a84759d", + "reference": "49a5e671c3a3fd992187a777d01385fc6a84759d", "shasum": "" }, "require": { - "illuminate/contracts": "^8.35|^9.0|^10.0", - "php": "^8.0", - "spatie/laravel-package-tools": "^1.4.3" + "illuminate/contracts": "^11.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.4.3", + "symfony/console": "^7.0" }, "require-dev": { - "brianium/paratest": "^6.2", + "brianium/paratest": "^6.2|^7.0", "ext-pcntl": "*", - "nunomaduro/collision": "^5.3|^6.0", - "orchestra/testbench": "^6.16|^7.0|^8.0", - "pestphp/pest-plugin-laravel": "^1.3", - "phpunit/phpunit": "^9.5", + "nunomaduro/collision": "^5.3|^6.0|^7.0|^8.0", + "orchestra/testbench": "^9.0", + "pestphp/pest-plugin-laravel": "^1.3|^2.0", + "phpunit/phpunit": "^9.5|^10|^11", "spatie/laravel-ray": "^1.17" }, "type": "library", @@ -7370,7 +7033,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-signal-aware-command/issues", - "source": "https://github.com/spatie/laravel-signal-aware-command/tree/1.3.0" + "source": "https://github.com/spatie/laravel-signal-aware-command/tree/2.0.0" }, "funding": [ { @@ -7378,7 +7041,7 @@ "type": "github" } ], - "time": "2023-01-14T21:10:59+00:00" + "time": "2024-02-05T13:37:25+00:00" }, { "name": "spatie/temporary-directory", @@ -7442,48 +7105,121 @@ "time": "2023-12-25T11:46:58+00:00" }, { - "name": "symfony/console", - "version": "v6.4.9", + "name": "symfony/clock", + "version": "v7.0.7", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9" + "url": "https://github.com/symfony/clock.git", + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", - "reference": "6edb5363ec0c78ad4d48c5128ebf4d083d89d3a9", + "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6", + "reference": "2008671acb4a30b01c453de193cf9c80549ebda6", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v7.0.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:29:19+00:00" + }, + { + "name": "symfony/console", + "version": "v7.0.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", + "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", + "shasum": "" + }, + "require": { + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^6.4|^7.0" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7517,7 +7253,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.9" + "source": "https://github.com/symfony/console/tree/v7.0.7" }, "funding": [ { @@ -7533,20 +7269,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/css-selector", - "version": "v7.1.1", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", + "reference": "b08a4ad89e84b29cec285b7b1f781a7ae51cf4bc", "shasum": "" }, "require": { @@ -7582,7 +7318,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + "source": "https://github.com/symfony/css-selector/tree/v7.0.7" }, "funding": [ { @@ -7598,7 +7334,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7669,22 +7405,22 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.9", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c9b7cc075b3ab484239855622ca05cb0b99c13ec" + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c9b7cc075b3ab484239855622ca05cb0b99c13ec", - "reference": "c9b7cc075b3ab484239855622ca05cb0b99c13ec", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf97429887e40480c847bfeb6c3991e1e2c086ab", + "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", @@ -7693,7 +7429,7 @@ "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -7724,7 +7460,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.9" + "source": "https://github.com/symfony/error-handler/tree/v7.0.7" }, "funding": [ { @@ -7740,20 +7476,20 @@ "type": "tidelift" } ], - "time": "2024-06-21T16:04:15+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9", + "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9", "shasum": "" }, "require": { @@ -7804,7 +7540,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.7" }, "funding": [ { @@ -7820,7 +7556,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -7900,23 +7636,23 @@ }, { "name": "symfony/finder", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c" + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c", - "reference": "3ef977a43883215d560a2cecb82ec8e62131471c", + "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", + "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0|^7.0" + "symfony/filesystem": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -7944,7 +7680,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.8" + "source": "https://github.com/symfony/finder/tree/v7.0.7" }, "funding": [ { @@ -7960,40 +7696,40 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947" + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947", - "reference": "27de8cc95e11db7a50b027e71caaab9024545947", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0194e064b8bdc29381462f790bab04e1cac8fdc8", + "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4" }, "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" + "symfony/cache": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8021,7 +7757,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.8" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.7" }, "funding": [ { @@ -8037,77 +7773,76 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.9", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "cc4a9bec6e1bdd2405f40277a68a6ed1bb393005" + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", - "reference": "cc4a9bec6e1bdd2405f40277a68a6ed1bb393005", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", + "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.4", - "symfony/config": "<6.1", - "symfony/console": "<5.4", + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", - "symfony/doctrine-bridge": "<5.4", - "symfony/form": "<5.4", - "symfony/http-client": "<5.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/mailer": "<5.4", - "symfony/messenger": "<5.4", - "symfony/translation": "<5.4", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", "symfony/translation-contracts": "<2.5", - "symfony/twig-bridge": "<5.4", + "symfony/twig-bridge": "<6.4", "symfony/validator": "<6.4", - "symfony/var-dumper": "<6.3", - "twig/twig": "<2.13" + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.0.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0|^7.0", - "symfony/clock": "^6.2|^7.0", - "symfony/config": "^6.1|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/css-selector": "^5.4|^6.0|^7.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/property-access": "^5.4.5|^6.0.5|^7.0", - "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0", "symfony/serializer": "^6.4.4|^7.0.4", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^5.4|^6.4|^7.0", - "symfony/var-exporter": "^6.2|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "type": "library", "autoload": { @@ -8135,7 +7870,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.9" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.7" }, "funding": [ { @@ -8151,43 +7886,43 @@ "type": "tidelift" } ], - "time": "2024-06-28T11:48:06+00:00" + "time": "2024-04-29T12:20:25+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.9", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "url": "https://api.github.com/repos/symfony/mailer/zipball/4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", + "reference": "4ff41a7c7998a88cfdc31b5841ef64d9246fc56a", "shasum": "" }, "require": { "egulias/email-validator": "^2.1.10|^3|^4", - "php": ">=8.1", + "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/mime": "^6.2|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", - "symfony/messenger": "<6.2", - "symfony/mime": "<6.2", - "symfony/twig-bridge": "<6.2.1" + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/messenger": "^6.2|^7.0", - "symfony/twig-bridge": "^6.2|^7.0" + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8215,7 +7950,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.9" + "source": "https://github.com/symfony/mailer/tree/v7.0.7" }, "funding": [ { @@ -8231,25 +7966,24 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:05+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/mime", - "version": "v6.4.9", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7d048964877324debdcb4e0549becfa064a20d43" + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7d048964877324debdcb4e0549becfa064a20d43", - "reference": "7d048964877324debdcb4e0549becfa064a20d43", + "url": "https://api.github.com/repos/symfony/mime/zipball/3adbf110c306546f6f00337f421d2edca0e8d3c0", + "reference": "3adbf110c306546f6f00337f421d2edca0e8d3c0", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -8257,18 +7991,18 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4", - "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.4|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/property-info": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.4.3|^7.0.3" + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -8300,7 +8034,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.9" + "source": "https://github.com/symfony/mime/tree/v7.0.7" }, "funding": [ { @@ -8316,20 +8050,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -8379,7 +8113,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -8395,20 +8129,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -8457,7 +8191,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -8473,20 +8207,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -8541,7 +8275,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -8557,20 +8291,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -8622,7 +8356,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -8638,20 +8372,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -8702,7 +8436,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -8718,20 +8452,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "10112722600777e02d2745716b70c5db4ca70442" + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", - "reference": "10112722600777e02d2745716b70c5db4ca70442", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { @@ -8775,7 +8509,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -8791,20 +8525,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -8855,7 +8589,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -8871,24 +8605,25 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" }, "type": "library", "extra": { @@ -8931,7 +8666,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -8947,20 +8682,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:35:24+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.30.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9" + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/2ba1f33797470debcda07fe9dce20a0003df18e9", - "reference": "2ba1f33797470debcda07fe9dce20a0003df18e9", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { @@ -9010,7 +8745,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -9026,24 +8761,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", - "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", + "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -9071,7 +8806,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.8" + "source": "https://github.com/symfony/process/tree/v7.0.7" }, "funding": [ { @@ -9087,40 +8822,38 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/routing", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58" + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", - "reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58", + "url": "https://api.github.com/repos/symfony/routing/zipball/9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", + "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<6.2", - "symfony/dependency-injection": "<5.4", - "symfony/yaml": "<5.4" + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" }, "require-dev": { - "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", - "symfony/config": "^6.2|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9154,7 +8887,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.8" + "source": "https://github.com/symfony/routing/tree/v7.0.7" }, "funding": [ { @@ -9170,7 +8903,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/service-contracts", @@ -9257,16 +8990,16 @@ }, { "name": "symfony/string", - "version": "v7.1.2", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", - "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", + "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", "shasum": "" }, "require": { @@ -9280,7 +9013,6 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", @@ -9324,7 +9056,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.2" + "source": "https://github.com/symfony/string/tree/v7.0.7" }, "funding": [ { @@ -9340,37 +9072,36 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:27:18+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a" + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a", - "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a", + "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b", + "reference": "1515e03afaa93e6419aba5d5c9d209159317100b", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<5.4", + "symfony/http-kernel": "<6.4", "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" }, "provide": { "symfony/translation-implementation": "2.3|3.0" @@ -9378,17 +9109,17 @@ "require-dev": { "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/intl": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/routing": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^5.4|^6.0|^7.0" + "symfony/yaml": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9419,7 +9150,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.8" + "source": "https://github.com/symfony/translation/tree/v7.0.7" }, "funding": [ { @@ -9435,7 +9166,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/translation-contracts", @@ -9517,24 +9248,24 @@ }, { "name": "symfony/uid", - "version": "v6.4.8", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf" + "reference": "4f3a5d181999e25918586c8369de09e7814e7be2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", - "reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf", + "url": "https://api.github.com/repos/symfony/uid/zipball/4f3a5d181999e25918586c8369de09e7814e7be2", + "reference": "4f3a5d181999e25918586c8369de09e7814e7be2", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0" + "symfony/console": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9571,7 +9302,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.8" + "source": "https://github.com/symfony/uid/tree/v7.0.7" }, "funding": [ { @@ -9587,38 +9318,36 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.9", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c31566e4ca944271cc8d8ac6887cbf31b8c6a172" + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c31566e4ca944271cc8d8ac6887cbf31b8c6a172", - "reference": "c31566e4ca944271cc8d8ac6887cbf31b8c6a172", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d1627b66fd87c8b4d90cabe5671c29d575690924", + "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" @@ -9656,7 +9385,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.9" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.7" }, "funding": [ { @@ -9672,7 +9401,7 @@ "type": "tidelift" } ], - "time": "2024-06-27T13:23:14+00:00" + "time": "2024-04-18T09:29:19+00:00" }, { "name": "theseer/tokenizer", @@ -9779,35 +9508,35 @@ }, { "name": "vinkla/hashids", - "version": "11.0.0", + "version": "12.0.0", "source": { "type": "git", "url": "https://github.com/vinkla/laravel-hashids.git", - "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2" + "reference": "71e4be8347d8c77dd728b61c1ff3b53cb4941ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/5fbdbf21c432a877c281f396dc65da39a910aed2", - "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2", + "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/71e4be8347d8c77dd728b61c1ff3b53cb4941ef1", + "reference": "71e4be8347d8c77dd728b61c1ff3b53cb4941ef1", "shasum": "" }, "require": { "graham-campbell/manager": "^5.0", "hashids/hashids": "^5.0", - "illuminate/contracts": "^10.0", - "illuminate/support": "^10.0", - "php": "^8.1" + "illuminate/contracts": "^11.0", + "illuminate/support": "^11.0", + "php": "^8.2" }, "require-dev": { - "graham-campbell/analyzer": "^4.0", - "graham-campbell/testbench": "^6.0", - "mockery/mockery": "^1.5", + "graham-campbell/analyzer": "^4.1", + "graham-campbell/testbench": "^6.1", + "mockery/mockery": "^1.6.6", "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "11.0-dev" + "dev-master": "12.0-dev" }, "laravel": { "aliases": { @@ -9830,7 +9559,7 @@ "authors": [ { "name": "Vincent Klaiber", - "email": "hello@doubledip.se" + "homepage": "https://github.com/vinkla" } ], "description": "A Hashids bridge for Laravel", @@ -9840,9 +9569,9 @@ ], "support": { "issues": "https://github.com/vinkla/laravel-hashids/issues", - "source": "https://github.com/vinkla/laravel-hashids/tree/11.0.0" + "source": "https://github.com/vinkla/laravel-hashids/tree/12.0.0" }, - "time": "2023-02-26T18:30:57+00:00" + "time": "2024-02-05T08:07:21+00:00" }, { "name": "vlucas/phpdotenv", @@ -10210,28 +9939,31 @@ }, { "name": "beyondcode/laravel-dump-server", - "version": "1.9.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/beyondcode/laravel-dump-server.git", - "reference": "1f2452617afc64e47b3cf49978beb7beeef084df" + "reference": "e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/1f2452617afc64e47b3cf49978beb7beeef084df", - "reference": "1f2452617afc64e47b3cf49978beb7beeef084df", + "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715", + "reference": "e0dff1b2c7caf49d07ca5cb331fc7c5f1e52c715", "shasum": "" }, "require": { - "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/http": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/http": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": ">=7.2.5", - "symfony/var-dumper": "^5.0|^6.0" + "symfony/var-dumper": "^5.0|^6.0|^7.0" + }, + "conflict": { + "spatie/laravel-ray": "*" }, "require-dev": { "larapack/dd": "^1.0", - "phpunit/phpunit": "^7.0|^9.3" + "phpunit/phpunit": "^7.0|^9.3|^10.5" }, "type": "library", "extra": { @@ -10269,9 +10001,9 @@ ], "support": { "issues": "https://github.com/beyondcode/laravel-dump-server/issues", - "source": "https://github.com/beyondcode/laravel-dump-server/tree/1.9.0" + "source": "https://github.com/beyondcode/laravel-dump-server/tree/2.0.0" }, - "time": "2023-02-15T10:29:26+00:00" + "time": "2024-04-23T12:02:38+00:00" }, { "name": "brianium/paratest", @@ -10369,16 +10101,16 @@ }, { "name": "composer/class-map-generator", - "version": "1.3.4", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + "reference": "8286a62d243312ed99b3eee20d5005c961adb311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", - "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311", + "reference": "8286a62d243312ed99b3eee20d5005c961adb311", "shasum": "" }, "require": { @@ -10422,7 +10154,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + "source": "https://github.com/composer/class-map-generator/tree/1.1.1" }, "funding": [ { @@ -10438,7 +10170,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:13:04+00:00" + "time": "2024-03-15T12:53:41+00:00" }, { "name": "composer/pcre", @@ -10767,16 +10499,16 @@ }, { "name": "laravel/pint", - "version": "v1.16.2", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca" + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/51f1ba679a6afe0315621ad143d788bd7ded0eca", - "reference": "51f1ba679a6afe0315621ad143d788bd7ded0eca", + "url": "https://api.github.com/repos/laravel/pint/zipball/1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", + "reference": "1b3a3dc5bc6a81ff52828ba7277621f1d49d6d98", "shasum": "" }, "require": { @@ -10787,13 +10519,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.59.3", - "illuminate/view": "^10.48.12", - "larastan/larastan": "^2.9.7", + "friendsofphp/php-cs-fixer": "^3.57.1", + "illuminate/view": "^10.48.10", + "larastan/larastan": "^2.9.6", "laravel-zero/framework": "^10.4.0", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.34.8" + "pestphp/pest": "^2.34.7" }, "bin": [ "builds/pint" @@ -10829,20 +10561,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-07-09T15:58:08+00:00" + "time": "2024-05-21T18:08:25+00:00" }, { "name": "laravel/sail", - "version": "v1.30.2", + "version": "v1.29.2", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887" + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887", - "reference": "f5a9699a1001e15de1aa5e7cb5c9f50a3f63f887", + "url": "https://api.github.com/repos/laravel/sail/zipball/a8e4e749735ba2f091856eafeb3f99db8cd6b621", + "reference": "a8e4e749735ba2f091856eafeb3f99db8cd6b621", "shasum": "" }, "require": { @@ -10892,44 +10624,42 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-07-05T16:01:51+00:00" + "time": "2024-05-16T21:39:11+00:00" }, { "name": "nunomaduro/collision", - "version": "v7.10.0", + "version": "v8.1.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2" + "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", - "reference": "49ec67fa7b002712da8526678abd651c09f375b2", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9", + "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9", "shasum": "" }, "require": { - "filp/whoops": "^2.15.3", - "nunomaduro/termwind": "^1.15.1", - "php": "^8.1.0", - "symfony/console": "^6.3.4" + "filp/whoops": "^2.15.4", + "nunomaduro/termwind": "^2.0.1", + "php": "^8.2.0", + "symfony/console": "^7.0.4" }, "conflict": { - "laravel/framework": ">=11.0.0" + "laravel/framework": "<11.0.0 || >=12.0.0", + "phpunit/phpunit": "<10.5.1 || >=12.0.0" }, "require-dev": { - "brianium/paratest": "^7.3.0", - "laravel/framework": "^10.28.0", - "laravel/pint": "^1.13.3", - "laravel/sail": "^1.25.0", - "laravel/sanctum": "^3.3.1", - "laravel/tinker": "^2.8.2", - "nunomaduro/larastan": "^2.6.4", - "orchestra/testbench-core": "^8.13.0", - "pestphp/pest": "^2.23.2", - "phpunit/phpunit": "^10.4.1", - "sebastian/environment": "^6.0.1", - "spatie/laravel-ignition": "^2.3.1" + "larastan/larastan": "^2.9.2", + "laravel/framework": "^11.0.0", + "laravel/pint": "^1.14.0", + "laravel/sail": "^1.28.2", + "laravel/sanctum": "^4.0.0", + "laravel/tinker": "^2.9.0", + "orchestra/testbench-core": "^9.0.0", + "pestphp/pest": "^2.34.1 || ^3.0.0", + "sebastian/environment": "^6.0.1 || ^7.0.0" }, "type": "library", "extra": { @@ -10937,6 +10667,9 @@ "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" } }, "autoload": { @@ -10988,20 +10721,20 @@ "type": "patreon" } ], - "time": "2023-10-11T15:45:01+00:00" + "time": "2024-03-06T16:20:09+00:00" }, { "name": "pestphp/pest", - "version": "v2.34.9", + "version": "v2.34.7", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "ef120125e036bf84c9e46a9e62219702f5b92e16" + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/ef120125e036bf84c9e46a9e62219702f5b92e16", - "reference": "ef120125e036bf84c9e46a9e62219702f5b92e16", + "url": "https://api.github.com/repos/pestphp/pest/zipball/a7a3e4240e341d0fee1c54814ce18adc26ce5a76", + "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76", "shasum": "" }, "require": { @@ -11020,8 +10753,8 @@ }, "require-dev": { "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.8.4", - "symfony/process": "^6.4.0|^7.1.1" + "pestphp/pest-plugin-type-coverage": "^2.8.1", + "symfony/process": "^6.4.0|^7.0.4" }, "bin": [ "bin/pest" @@ -11084,7 +10817,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.34.9" + "source": "https://github.com/pestphp/pest/tree/v2.34.7" }, "funding": [ { @@ -11096,7 +10829,7 @@ "type": "github" } ], - "time": "2024-07-11T08:36:26+00:00" + "time": "2024-04-05T07:44:17+00:00" }, { "name": "pestphp/pest-plugin", @@ -11555,16 +11288,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.29.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc", + "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc", "shasum": "" }, "require": { @@ -11596,9 +11329,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-05-06T12:04:23+00:00" }, { "name": "spatie/backtrace", @@ -11663,98 +11396,24 @@ ], "time": "2024-04-24T13:22:11+00:00" }, - { - "name": "spatie/error-solutions", - "version": "1.0.5", - "source": { - "type": "git", - "url": "https://github.com/spatie/error-solutions.git", - "reference": "4bb6c734dc992b2db3e26df1ef021c75d2218b13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/4bb6c734dc992b2db3e26df1ef021c75d2218b13", - "reference": "4bb6c734dc992b2db3e26df1ef021c75d2218b13", - "shasum": "" - }, - "require": { - "php": "^8.0" - }, - "require-dev": { - "illuminate/broadcasting": "^10.0|^11.0", - "illuminate/cache": "^10.0|^11.0", - "illuminate/support": "^10.0|^11.0", - "livewire/livewire": "^2.11|^3.3.5", - "openai-php/client": "^0.10.1", - "orchestra/testbench": "^7.0|8.22.3|^9.0", - "pestphp/pest": "^2.20", - "phpstan/phpstan": "^1.11", - "psr/simple-cache": "^3.0", - "psr/simple-cache-implementation": "^3.0", - "spatie/ray": "^1.28", - "symfony/cache": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "vlucas/phpdotenv": "^5.5" - }, - "suggest": { - "openai-php/client": "Require get solutions from OpenAI", - "simple-cache-implementation": "To cache solutions from OpenAI" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Ignition\\": "legacy/ignition", - "Spatie\\ErrorSolutions\\": "src", - "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ruben Van Assche", - "email": "ruben@spatie.be", - "role": "Developer" - } - ], - "description": "This is my package error-solutions", - "homepage": "https://github.com/spatie/error-solutions", - "keywords": [ - "error-solutions", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.0.5" - }, - "funding": [ - { - "url": "https://github.com/Spatie", - "type": "github" - } - ], - "time": "2024-07-09T12:13:32+00:00" - }, { "name": "spatie/flare-client-php", - "version": "1.7.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "097040ff51e660e0f6fc863684ac4b02c93fa234" + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/097040ff51e660e0f6fc863684ac4b02c93fa234", - "reference": "097040ff51e660e0f6fc863684ac4b02c93fa234", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/220a7c8745e9fa427d54099f47147c4b97fe6462", + "reference": "220a7c8745e9fa427d54099f47147c4b97fe6462", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", "php": "^8.0", - "spatie/backtrace": "^1.6.1", + "spatie/backtrace": "^1.5.2", "symfony/http-foundation": "^5.2|^6.0|^7.0", "symfony/mime": "^5.2|^6.0|^7.0", "symfony/process": "^5.2|^6.0|^7.0", @@ -11796,7 +11455,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.7.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.6.0" }, "funding": [ { @@ -11804,28 +11463,28 @@ "type": "github" } ], - "time": "2024-06-12T14:39:14+00:00" + "time": "2024-05-22T09:45:39+00:00" }, { "name": "spatie/ignition", - "version": "1.15.0", + "version": "1.14.2", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2" + "reference": "5e11c11f675bb5251f061491a493e04a1a571532" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2", - "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5e11c11f675bb5251f061491a493e04a1a571532", + "reference": "5e11c11f675bb5251f061491a493e04a1a571532", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", "php": "^8.0", - "spatie/error-solutions": "^1.0", - "spatie/flare-client-php": "^1.7", + "spatie/backtrace": "^1.5.3", + "spatie/flare-client-php": "^1.4.0", "symfony/console": "^5.4|^6.0|^7.0", "symfony/var-dumper": "^5.4|^6.0|^7.0" }, @@ -11887,20 +11546,20 @@ "type": "github" } ], - "time": "2024-06-12T14:55:22+00:00" + "time": "2024-05-29T08:10:20+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.8.0", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c" + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/3c067b75bfb50574db8f7e2c3978c65eed71126c", - "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/f52124d50122611e8a40f628cef5c19ff6cc5b57", + "reference": "f52124d50122611e8a40f628cef5c19ff6cc5b57", "shasum": "" }, "require": { @@ -11909,7 +11568,8 @@ "ext-mbstring": "*", "illuminate/support": "^10.0|^11.0", "php": "^8.1", - "spatie/ignition": "^1.15", + "spatie/flare-client-php": "^1.5", + "spatie/ignition": "^1.14", "symfony/console": "^6.2.3|^7.0", "symfony/var-dumper": "^6.2.3|^7.0" }, @@ -11978,20 +11638,20 @@ "type": "github" } ], - "time": "2024-06-12T15:01:18+00:00" + "time": "2024-05-02T13:42:49+00:00" }, { "name": "symfony/yaml", - "version": "v7.1.1", + "version": "v7.0.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", + "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", "shasum": "" }, "require": { @@ -12033,7 +11693,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.1" + "source": "https://github.com/symfony/yaml/tree/v7.0.7" }, "funding": [ { @@ -12049,7 +11709,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-04-28T11:44:19+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", @@ -12112,12 +11772,12 @@ } ], "aliases": [], - "minimum-stability": "stable", + "minimum-stability": "dev", "stability-flags": [], "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.1", + "php": "^8.2", "ext-json": "*" }, "platform-dev": [], diff --git a/config/abilities.php b/config/abilities.php index f7558581..9e6a24b2 100644 --- a/config/abilities.php +++ b/config/abilities.php @@ -1,16 +1,16 @@ [ diff --git a/config/app.php b/config/app.php index 06989d8d..efd5f969 100644 --- a/config/app.php +++ b/config/app.php @@ -1,225 +1,14 @@ 'InvoiceShelf', - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services your application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => 'UTC', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Faker Locale - |-------------------------------------------------------------------------- - | - | This locale will be used by the Faker PHP library when generating fake - | data for your database seeds. For example, this will be used to get - | localized telephone numbers, street address information and more. - | - */ - 'faker_locale' => 'en_US', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY'), - - 'cipher' => 'AES-256-CBC', - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - Lavary\Menu\ServiceProvider::class, - - /* - * Application Service Providers... - */ - InvoiceShelf\Providers\AppServiceProvider::class, - InvoiceShelf\Providers\AuthServiceProvider::class, - InvoiceShelf\Providers\BroadcastServiceProvider::class, - InvoiceShelf\Providers\EventServiceProvider::class, - InvoiceShelf\Providers\RouteServiceProvider::class, - InvoiceShelf\Providers\DropboxServiceProvider::class, - InvoiceShelf\Providers\ViewServiceProvider::class, - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Http' => Illuminate\Support\Facades\Http::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, + 'aliases' => Facade::defaultAliases()->merge([ 'Flash' => Laracasts\Flash\Flash::class, - // 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, - 'Pusher' => Pusher\Pusher::class, 'Menu' => Lavary\Menu\Facade::class, - ], + 'Pusher' => Pusher\Pusher::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + ])->toArray(), + ]; diff --git a/config/auth.php b/config/auth.php index ae543eb2..703318b7 100644 --- a/config/auth.php +++ b/config/auth.php @@ -2,45 +2,7 @@ return [ - /* - |-------------------------------------------------------------------------- - | Authentication Defaults - |-------------------------------------------------------------------------- - | - | This option controls the default authentication "guard" and password - | reset options for your application. You may change these defaults - | as required, but they're a perfect start for most applications. - | - */ - - 'defaults' => [ - 'guard' => 'web', - 'passwords' => 'users', - ], - - /* - |-------------------------------------------------------------------------- - | Authentication Guards - |-------------------------------------------------------------------------- - | - | Next, you may define every authentication guard for your application. - | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | Supported: "session", "token" - | - */ - 'guards' => [ - 'web' => [ - 'driver' => 'session', - 'provider' => 'users', - ], - 'api' => [ 'driver' => 'token', 'provider' => 'users', @@ -54,77 +16,20 @@ return [ ], ], - /* - |-------------------------------------------------------------------------- - | User Providers - |-------------------------------------------------------------------------- - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then - | be assigned to any extra authentication guards you have defined. - | - | Supported: "database", "eloquent" - | - */ - 'providers' => [ - 'users' => [ - 'driver' => 'eloquent', - 'model' => \InvoiceShelf\Models\User::class, - ], - 'customers' => [ 'driver' => 'eloquent', - 'model' => \InvoiceShelf\Models\Customer::class, + 'model' => \App\Models\Customer::class, ], ], - /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. - | - | The expire time is the number of minutes that the reset token should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', - 'expire' => 60, - 'throttle' => 60, - ], - 'customers' => [ 'provider' => 'customers', - 'table' => 'password_resets', + 'table' => 'password_reset_tokens', 'expire' => 60, 'throttle' => 60, ], ], - /* - |-------------------------------------------------------------------------- - | Password Confirmation Timeout - |-------------------------------------------------------------------------- - | - | Here you may define the amount of seconds before a password confirmation - | times out and the user is prompted to re-enter their password via the - | confirmation screen. By default, the timeout lasts for three hours. - | - */ - - 'password_timeout' => 10800, - ]; diff --git a/config/backup.php b/config/backup.php index d8a14550..1ff51ad4 100644 --- a/config/backup.php +++ b/config/backup.php @@ -74,7 +74,7 @@ return [ * For a complete list of available customization options, see https://github.com/spatie/db-dumper */ 'databases' => [ - 'mysql', + env('DB_CONNECTION', 'mysql'), ], ], diff --git a/config/broadcasting.php b/config/broadcasting.php deleted file mode 100644 index 374f196e..00000000 --- a/config/broadcasting.php +++ /dev/null @@ -1,59 +0,0 @@ - env('BROADCAST_DRIVER', 'null'), - - /* - |-------------------------------------------------------------------------- - | Broadcast Connections - |-------------------------------------------------------------------------- - | - | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of - | each available type of connection are provided inside this array. - | - */ - - 'connections' => [ - - 'pusher' => [ - 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY'), - 'secret' => env('PUSHER_APP_SECRET'), - 'app_id' => env('PUSHER_APP_ID'), - 'options' => [ - 'cluster' => 'ap2', - 'encrypted' => true, - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - 'log' => [ - 'driver' => 'log', - ], - - 'null' => [ - 'driver' => 'null', - ], - - ], - -]; diff --git a/config/cache.php b/config/cache.php index 65c3bebb..a70ab8e5 100644 --- a/config/cache.php +++ b/config/cache.php @@ -1,93 +1,5 @@ env('CACHE_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - */ - - 'stores' => [ - - 'apc' => [ - 'driver' => 'apc', - ], - - 'array' => [ - 'driver' => 'array', - 'serialize' => false, - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - ], - - 'file' => [ - 'driver' => 'file', - 'path' => storage_path('framework/cache/data'), - ], - - 'memcached' => [ - 'driver' => 'memcached', - 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), - 'sasl' => [ - env('MEMCACHED_USERNAME'), - env('MEMCACHED_PASSWORD'), - ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], - 'servers' => [ - [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), - 'weight' => 100, - ], - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'cache', - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), + 'default' => env('CACHE_STORE', 'file'), ]; diff --git a/config/cors.php b/config/cors.php deleted file mode 100644 index 558369dc..00000000 --- a/config/cors.php +++ /dev/null @@ -1,34 +0,0 @@ - ['api/*'], - - 'allowed_methods' => ['*'], - - 'allowed_origins' => ['*'], - - 'allowed_origins_patterns' => [], - - 'allowed_headers' => ['*'], - - 'exposed_headers' => [], - - 'max_age' => 0, - - 'supports_credentials' => false, - -]; diff --git a/config/database.php b/config/database.php index 1f971c87..7b7cab87 100644 --- a/config/database.php +++ b/config/database.php @@ -2,43 +2,7 @@ return [ - /* - |-------------------------------------------------------------------------- - | Default Database Connection Name - |-------------------------------------------------------------------------- - | - | Here you may specify which of the database connections below you wish - | to use as your default connection for all database work. Of course - | you may use many connections at once using the Database library. - | - */ - - 'default' => env('DB_CONNECTION', 'mysql'), - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - 'connections' => [ - - 'sqlite' => [ - 'driver' => 'sqlite', - 'database' => env('DB_DATABASE', database_path('database.sqlite')), - 'prefix' => '', - ], - 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), @@ -68,44 +32,12 @@ return [ 'schema' => 'public', 'sslmode' => 'prefer', ], - - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - ], - ], - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => false, // disable to preserve original behavior for existing applications + ], 'redis' => [ diff --git a/config/filesystems.php b/config/filesystems.php index ededf290..2ffeec09 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -2,59 +2,9 @@ return [ - /* - |-------------------------------------------------------------------------- - | Default Filesystem Disk - |-------------------------------------------------------------------------- - | - | Here you may specify the default filesystem disk that should be used - | by the framework. The "local" disk, as well as a variety of cloud - | based disks are available to your application. Just store away! - | - */ - - 'default' => env('FILESYSTEM_DRIVER', 'local'), - - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - 'cloud' => env('FILESYSTEM_CLOUD', 's3'), - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - | Supported Drivers: "local", "ftp", "s3" - | - */ - 'disks' => [ - - 'local' => [ - 'driver' => 'local', - 'root' => storage_path('app'), - ], - - 'public' => [ - 'driver' => 'local', - 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', - 'visibility' => 'public', - ], - 's3' => [ 'driver' => 's3', 'key' => env('AWS_KEY'), @@ -105,22 +55,6 @@ return [ 'driver' => 'local', 'root' => resource_path('views'), ], - - ], - - /* - |-------------------------------------------------------------------------- - | Symbolic Links - |-------------------------------------------------------------------------- - | - | Here you may configure the symbolic links that will be created when the - | `storage:link` Artisan command is executed. The array keys should be - | the locations of the links and the values should be their targets. - | - */ - - 'links' => [ - public_path('storage') => storage_path('app/public'), ], ]; diff --git a/config/hashids.php b/config/hashids.php index 4942314c..b2ab92e3 100644 --- a/config/hashids.php +++ b/config/hashids.php @@ -9,12 +9,12 @@ * @see https://github.com/vinkla/laravel-hashids */ -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\EmailLog; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\Payment; -use InvoiceShelf\Models\Transaction; +use App\Models\Company; +use App\Models\EmailLog; +use App\Models\Estimate; +use App\Models\Invoice; +use App\Models\Payment; +use App\Models\Transaction; return [ diff --git a/config/hashing.php b/config/hashing.php deleted file mode 100644 index 00ed9e74..00000000 --- a/config/hashing.php +++ /dev/null @@ -1,45 +0,0 @@ - 'bcrypt', - /* - |-------------------------------------------------------------------------- - | Bcrypt Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Bcrypt algorithm. This will allow you - | to control the amount of time it takes to hash the given password. - | - */ - 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), - ], - /* - |-------------------------------------------------------------------------- - | Argon Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Argon algorithm. These will allow you - | to control the amount of time it takes to hash the given password. - | - */ - 'argon' => [ - 'memory' => 1024, - 'threads' => 2, - 'time' => 2, - ], -]; diff --git a/config/installer.php b/config/installer.php index 2f8b8add..cf584139 100755 --- a/config/installer.php +++ b/config/installer.php @@ -13,7 +13,7 @@ return [ | */ 'core' => [ - 'minPhpVersion' => '8.1.0', + 'minPhpVersion' => '8.2.0', ], 'final' => [ 'key' => true, @@ -31,6 +31,7 @@ return [ 'fileinfo', 'zip', 'curl', + 'sqlite3', ], 'apache' => [ 'mod_rewrite', diff --git a/config/invoiceshelf.php b/config/invoiceshelf.php index 0de993c1..e3305d38 100644 --- a/config/invoiceshelf.php +++ b/config/invoiceshelf.php @@ -1,23 +1,23 @@ '8.1.0', + 'min_php_version' => '8.2.0', /* * Minimum mysql version. @@ -78,18 +78,18 @@ return [ * List of Fiscal Years */ 'fiscal_years' => [ - ['key' => 'january-december', 'value' => '1-12'], - ['key' => 'february-january', 'value' => '2-1'], - ['key' => 'march-february', 'value' => '3-2'], - ['key' => 'april-march', 'value' => '4-3'], - ['key' => 'may-april', 'value' => '5-4'], - ['key' => 'june-may', 'value' => '6-5'], - ['key' => 'july-june', 'value' => '7-6'], - ['key' => 'august-july', 'value' => '8-7'], - ['key' => 'september-august', 'value' => '9-8'], - ['key' => 'october-september', 'value' => '10-9'], - ['key' => 'november-october', 'value' => '11-10'], - ['key' => 'december-november', 'value' => '12-11'], + ['key' => 'settings.preferences.fiscal_years.january_december', 'value' => '1-12'], + ['key' => 'settings.preferences.fiscal_years.february_january', 'value' => '2-1'], + ['key' => 'settings.preferences.fiscal_years.march_february', 'value' => '3-2'], + ['key' => 'settings.preferences.fiscal_years.april_march', 'value' => '4-3'], + ['key' => 'settings.preferences.fiscal_years.may_april', 'value' => '5-4'], + ['key' => 'settings.preferences.fiscal_years.june_may', 'value' => '6-5'], + ['key' => 'settings.preferences.fiscal_years.july_june', 'value' => '7-6'], + ['key' => 'settings.preferences.fiscal_years.august_july', 'value' => '8-7'], + ['key' => 'settings.preferences.fiscal_years.september_august', 'value' => '9-8'], + ['key' => 'settings.preferences.fiscal_years.october_september', 'value' => '10-9'], + ['key' => 'settings.preferences.fiscal_years.november_october', 'value' => '11-10'], + ['key' => 'settings.preferences.fiscal_years.december_november', 'value' => '12-11'], ], /* @@ -408,7 +408,7 @@ return [ */ 'customer_menu' => [ [ - 'title' => 'Dashboard', + 'title' => 'navigation.dashboard', 'link' => '/customer/dashboard', 'icon' => '', 'name' => '', @@ -418,7 +418,7 @@ return [ 'model' => '', ], [ - 'title' => 'Invoices', + 'title' => 'navigation.invoices', 'link' => '/customer/invoices', 'icon' => '', 'name' => '', @@ -428,7 +428,7 @@ return [ 'model' => '', ], [ - 'title' => 'Estimates', + 'title' => 'navigation.estimates', 'link' => '/customer/estimates', 'icon' => '', 'name' => '', @@ -438,7 +438,7 @@ return [ 'model' => '', ], [ - 'title' => 'Payments', + 'title' => 'navigation.payments', 'link' => '/customer/payments', 'icon' => '', 'name' => '', @@ -448,7 +448,7 @@ return [ 'model' => '', ], [ - 'title' => 'Settings', + 'title' => 'navigation.settings', 'link' => '/customer/settings', 'icon' => '', 'name' => '', diff --git a/config/logging.php b/config/logging.php deleted file mode 100644 index c179887f..00000000 --- a/config/logging.php +++ /dev/null @@ -1,80 +0,0 @@ - env('LOG_CHANNEL', 'stack'), - /* - |-------------------------------------------------------------------------- - | Log Channels - |-------------------------------------------------------------------------- - | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" - | - */ - 'channels' => [ - 'stack' => [ - 'driver' => 'stack', - 'channels' => ['daily'], - ], - 'single' => [ - 'driver' => 'single', - 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', - ], - 'daily' => [ - 'driver' => 'daily', - 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', - 'days' => 14, - ], - 'slack' => [ - 'driver' => 'slack', - 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Laravel Log', - 'emoji' => ':boom:', - 'level' => 'critical', - ], - 'papertrail' => [ - 'driver' => 'monolog', - 'level' => 'debug', - 'handler' => SyslogUdpHandler::class, - 'handler_with' => [ - 'host' => env('PAPERTRAIL_URL'), - 'port' => env('PAPERTRAIL_PORT'), - ], - ], - 'stderr' => [ - 'driver' => 'monolog', - 'handler' => StreamHandler::class, - 'with' => [ - 'stream' => 'php://stderr', - ], - ], - 'syslog' => [ - 'driver' => 'syslog', - 'level' => 'debug', - ], - 'errorlog' => [ - 'driver' => 'errorlog', - 'level' => 'debug', - ], - ], -]; diff --git a/config/mail.php b/config/mail.php index 62479798..49981d05 100644 --- a/config/mail.php +++ b/config/mail.php @@ -2,145 +2,20 @@ return [ - /* - |-------------------------------------------------------------------------- - | Mail Driver - |-------------------------------------------------------------------------- - | - | Laravel supports both SMTP and PHP's "mail" function as drivers for the - | sending of e-mail. You may specify which one you're using throughout - | your application here. By default, Laravel is setup for SMTP mail. - | - | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", - | "ses", "sparkpost", "log" - | - */ - 'driver' => env('MAIL_DRIVER', 'smtp'), - /* - |-------------------------------------------------------------------------- - | SMTP Host Address - |-------------------------------------------------------------------------- - | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. - | - */ - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- - | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. - | - */ - 'port' => env('MAIL_PORT', 587), - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'admin@invoiceshelf.com'), - 'name' => env('MAIL_FROM_NAME', 'InvoiceShelf'), - ], - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - 'username' => env('MAIL_USERNAME'), - /* - |-------------------------------------------------------------------------- - | SMTP Server Password - |-------------------------------------------------------------------------- - | - | Here you may set the password required by your SMTP server to send out - | messages from your application. This will be given to the server on - | connection so that the application will be able to send messages. - | - */ - 'password' => env('MAIL_PASSWORD'), - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - 'sendmail' => '/usr/sbin/sendmail -bs', - /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | - */ - - 'markdown' => [ - 'theme' => 'default', - - 'paths' => [ - resource_path('views/vendor/mail'), - ], - ], - - /* - |-------------------------------------------------------------------------- - | Log Channel - |-------------------------------------------------------------------------- - | - | If you are using the "log" driver, you may specify the logging channel - | if you prefer to keep mail messages separate from other log entries - | for simpler reading. Otherwise, the default channel will be used. - | - */ - 'log_channel' => env('MAIL_LOG_CHANNEL'), + ]; diff --git a/config/media-library.php b/config/media-library.php index 093b431d..af60e00e 100644 --- a/config/media-library.php +++ b/config/media-library.php @@ -71,7 +71,7 @@ return [ /* * The class that contains the strategy for determining a media file's path. */ - 'path_generator' => \InvoiceShelf\Generators\CustomPathGenerator::class, + 'path_generator' => \App\Generators\CustomPathGenerator::class, /* * The class that contains the strategy for determining how to remove files. diff --git a/config/queue.php b/config/queue.php index cfc88c80..e8ff285f 100644 --- a/config/queue.php +++ b/config/queue.php @@ -1,85 +1,5 @@ env('QUEUE_CONNECTION', 'sync'), - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - */ - - 'connections' => [ - - 'sync' => [ - 'driver' => 'sync', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, - ], - - 'sqs' => [ - 'driver' => 'sqs', - 'key' => 'your-public-key', - 'secret' => 'your-secret-key', - 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', - 'queue' => 'your-queue-name', - 'region' => 'us-east-1', - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => 'default', - 'retry_after' => 90, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => [ - 'database' => env('DB_CONNECTION', 'mysql'), - 'table' => 'failed_jobs', - ], - ]; diff --git a/config/sanctum.php b/config/sanctum.php index b2375c51..8c94e2a9 100644 --- a/config/sanctum.php +++ b/config/sanctum.php @@ -40,8 +40,9 @@ return [ */ 'middleware' => [ - 'verify_csrf_token' => InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, - 'encrypt_cookies' => InvoiceShelf\Http\Middleware\EncryptCookies::class, + 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, + 'encrypt_cookies' => Illuminate\Cookie\Middleware\EncryptCookies::class, + 'validate_csrf_token' => Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class, ], ]; diff --git a/config/services.php b/config/services.php index 9823d9c6..3fa966dd 100644 --- a/config/services.php +++ b/config/services.php @@ -2,30 +2,12 @@ return [ - /* - |-------------------------------------------------------------------------- - | Third Party Services - |-------------------------------------------------------------------------- - | - | This file is for storing the credentials for third party services such - | as Stripe, Mailgun, SparkPost and others. This file provides a sane - | default location for this type of information, allowing packages - | to have a conventional place to find your various credentials. - | - */ - 'mailgun' => [ 'domain' => env('MAILGUN_DOMAIN'), 'secret' => env('MAILGUN_SECRET'), 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), ], - 'ses' => [ - 'key' => env('SES_KEY'), - 'secret' => env('SES_SECRET'), - 'region' => 'us-east-1', - ], - 'sparkpost' => [ 'secret' => env('SPARKPOST_SECRET'), ], @@ -35,7 +17,7 @@ return [ ], 'stripe' => [ - 'model' => \InvoiceShelf\Models\User::class, + 'model' => \App\Models\User::class, 'key' => env('STRIPE_KEY'), 'secret' => env('STRIPE_SECRET'), 'webhook' => [ @@ -65,4 +47,5 @@ return [ 'cron_job' => [ 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0), ], + ]; diff --git a/config/session.php b/config/session.php deleted file mode 100644 index da692f3b..00000000 --- a/config/session.php +++ /dev/null @@ -1,199 +0,0 @@ - env('SESSION_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => env('SESSION_LIFETIME', 120), - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path('framework/sessions'), - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => env('SESSION_CONNECTION', null), - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Cache Store - |-------------------------------------------------------------------------- - | - | When using the "apc", "memcached", or "dynamodb" session drivers you may - | list a cache store that should be used for these sessions. This value - | must match with one of the application's configured cache "stores". - | - */ - - 'store' => env('SESSION_STORE', null), - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => [2, 100], - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => env( - 'SESSION_COOKIE', - Str::slug(env('APP_NAME', 'laravel'), '_').'_session' - ), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => env('SESSION_DOMAIN', null), - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => env('SESSION_SECURE_COOKIE'), - - /* - |-------------------------------------------------------------------------- - | HTTP Access Only - |-------------------------------------------------------------------------- - | - | Setting this value to true will prevent JavaScript from accessing the - | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. - | - */ - - 'http_only' => true, - - /* - |-------------------------------------------------------------------------- - | Same-Site Cookies - |-------------------------------------------------------------------------- - | - | This option determines how your cookies behave when cross-site requests - | take place, and can be used to mitigate CSRF attacks. By default, we - | will set this value to "lax" since this is a secure default value. - | - | Supported: "lax", "strict", "none", null - | - */ - - 'same_site' => 'lax', - -]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 2acfd9cc..00000000 --- a/config/view.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - resource_path('views'), - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => realpath(storage_path('framework/views')), - -]; diff --git a/database/factories/AddressFactory.php b/database/factories/AddressFactory.php index 32802733..9ebdc1c5 100644 --- a/database/factories/AddressFactory.php +++ b/database/factories/AddressFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Address; +use App\Models\Customer; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Address; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\User; class AddressFactory extends Factory { @@ -18,22 +18,20 @@ class AddressFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'address_street_1' => $this->faker->streetAddress, - 'address_street_2' => $this->faker->streetAddress, - 'city' => $this->faker->city, - 'state' => $this->faker->state, + 'name' => $this->faker->name(), + 'address_street_1' => $this->faker->streetAddress(), + 'address_street_2' => $this->faker->streetAddress(), + 'city' => $this->faker->city(), + 'state' => $this->faker->state(), 'country_id' => 231, 'company_id' => User::find(1)->companies()->first()->id, - 'zip' => $this->faker->postcode, - 'phone' => $this->faker->phoneNumber, - 'fax' => $this->faker->phoneNumber, + 'zip' => $this->faker->postcode(), + 'phone' => $this->faker->phoneNumber(), + 'fax' => $this->faker->phoneNumber(), 'type' => $this->faker->randomElement([Address::BILLING_TYPE, Address::SHIPPING_TYPE]), 'user_id' => User::factory(), 'customer_id' => Customer::factory(), diff --git a/database/factories/CompanyFactory.php b/database/factories/CompanyFactory.php index b3e413b3..22eed9c2 100644 --- a/database/factories/CompanyFactory.php +++ b/database/factories/CompanyFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Company; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\User; class CompanyFactory extends Factory { @@ -17,16 +17,14 @@ class CompanyFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'unique_hash' => str_random(20), 'name' => $this->faker->name(), 'owner_id' => User::where('role', 'super admin')->first()->id, - 'slug' => $this->faker->word, + 'slug' => $this->faker->word(), ]; } } diff --git a/database/factories/CompanySettingFactory.php b/database/factories/CompanySettingFactory.php index 554bbcb0..dcd290f0 100644 --- a/database/factories/CompanySettingFactory.php +++ b/database/factories/CompanySettingFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\CompanySetting; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CompanySetting; -use InvoiceShelf\Models\User; class CompanySettingFactory extends Factory { @@ -17,14 +17,12 @@ class CompanySettingFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'option' => $this->faker->word, - 'value' => $this->faker->word, + 'option' => $this->faker->word(), + 'value' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/CustomFieldFactory.php b/database/factories/CustomFieldFactory.php index 03b52ec0..42103af2 100644 --- a/database/factories/CustomFieldFactory.php +++ b/database/factories/CustomFieldFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\CustomField; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CustomField; -use InvoiceShelf\Models\User; class CustomFieldFactory extends Factory { @@ -17,15 +17,13 @@ class CustomFieldFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'label' => $this->faker->name, - 'order' => $this->faker->randomDigitNotNull, + 'name' => $this->faker->name(), + 'label' => $this->faker->name(), + 'order' => $this->faker->randomDigitNotNull(), 'is_required' => $this->faker->randomElement([true, false]), 'model_type' => $this->faker->randomElement(['Customer', 'Invoice', 'Estimate', 'Expense', 'Payment']), 'slug' => function (array $item) { diff --git a/database/factories/CustomFieldValueFactory.php b/database/factories/CustomFieldValueFactory.php index b50fed12..022a39d3 100644 --- a/database/factories/CustomFieldValueFactory.php +++ b/database/factories/CustomFieldValueFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\CustomField; +use App\Models\CustomFieldValue; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\CustomField; -use InvoiceShelf\Models\CustomFieldValue; -use InvoiceShelf\Models\User; class CustomFieldValueFactory extends Factory { @@ -18,15 +18,13 @@ class CustomFieldValueFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'custom_field_valuable_type' => $this->faker->name, + 'custom_field_valuable_type' => $this->faker->name(), 'custom_field_valuable_id' => 1, - 'type' => $this->faker->name, + 'type' => $this->faker->name(), 'custom_field_id' => CustomField::factory(), 'company_id' => User::find(1)->companies()->first()->id, ]; diff --git a/database/factories/CustomerFactory.php b/database/factories/CustomerFactory.php index 4823691d..14448ba3 100644 --- a/database/factories/CustomerFactory.php +++ b/database/factories/CustomerFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\User; class CustomerFactory extends Factory { @@ -19,20 +19,18 @@ class CustomerFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'company_name' => $this->faker->company, - 'contact_name' => $this->faker->name, - 'prefix' => $this->faker->randomDigitNotNull, - 'website' => $this->faker->url, + 'name' => $this->faker->name(), + 'company_name' => $this->faker->company(), + 'contact_name' => $this->faker->name(), + 'prefix' => $this->faker->randomDigitNotNull(), + 'website' => $this->faker->url(), 'enable_portal' => true, - 'email' => $this->faker->unique()->safeEmail, - 'phone' => $this->faker->phoneNumber, + 'email' => $this->faker->unique()->safeEmail(), + 'phone' => $this->faker->phoneNumber(), 'company_id' => User::find(1)->companies()->first()->id, 'password' => Hash::make('secret'), 'currency_id' => Currency::find(1)->id, diff --git a/database/factories/EmailLogFactory.php b/database/factories/EmailLogFactory.php index 1efe9eee..73457224 100644 --- a/database/factories/EmailLogFactory.php +++ b/database/factories/EmailLogFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\EmailLog; +use App\Models\Estimate; +use App\Models\Invoice; +use App\Models\Payment; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\EmailLog; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\Payment; class EmailLogFactory extends Factory { @@ -19,16 +19,14 @@ class EmailLogFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'from' => $this->faker->unique()->safeEmail, - 'to' => $this->faker->unique()->safeEmail, - 'subject' => $this->faker->sentence, - 'body' => $this->faker->text, + 'from' => $this->faker->unique()->safeEmail(), + 'to' => $this->faker->unique()->safeEmail(), + 'subject' => $this->faker->sentence(), + 'body' => $this->faker->text(), 'mailable_type' => $this->faker->randomElement([Invoice::class, Estimate::class, Payment::class]), 'mailable_id' => function (array $log) { return $log['mailable_type']::factory(); diff --git a/database/factories/EstimateFactory.php b/database/factories/EstimateFactory.php index e41f7cf6..1cf84e70 100644 --- a/database/factories/EstimateFactory.php +++ b/database/factories/EstimateFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Estimate; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class EstimateFactory extends Factory { @@ -65,10 +65,8 @@ class EstimateFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Estimate()) @@ -85,26 +83,26 @@ class EstimateFactory extends Factory 'company_id' => User::find(1)->companies()->first()->id, 'status' => Estimate::STATUS_DRAFT, 'template_name' => 'estimate1', - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $estimate) { - return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $estimate) { return $estimate['discount_type'] == 'percentage' ? (($estimate['discount_val'] * $estimate['total']) / 100) : $estimate['discount_val']; }, 'tax_per_item' => 'YES', 'discount_per_item' => 'No', - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'notes' => $this->faker->text(80), 'unique_hash' => str_random(60), 'customer_id' => Customer::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_sub_total' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_sub_total' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/EstimateItemFactory.php b/database/factories/EstimateItemFactory.php index 62cd5054..402a328e 100644 --- a/database/factories/EstimateItemFactory.php +++ b/database/factories/EstimateItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Estimate; +use App\Models\EstimateItem; +use App\Models\Item; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Estimate; -use InvoiceShelf\Models\EstimateItem; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\User; class EstimateItemFactory extends Factory { @@ -19,10 +19,8 @@ class EstimateItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'item_id' => Item::factory(), @@ -36,24 +34,24 @@ class EstimateItemFactory extends Factory return Item::find($item['item_id'])->price; }, 'estimate_id' => Estimate::factory(), - 'quantity' => $this->faker->randomDigitNotNull, + 'quantity' => $this->faker->randomDigitNotNull(), 'company_id' => User::find(1)->companies()->first()->id, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'total' => function (array $item) { return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $estimate) { - return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $estimate) { return $estimate['discount_type'] == 'percentage' ? (($estimate['discount_val'] * $estimate['total']) / 100) : $estimate['discount_val']; }, - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_price' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_price' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ExchangeRateLogFactory.php b/database/factories/ExchangeRateLogFactory.php index 6eaa360c..ccbd87e2 100644 --- a/database/factories/ExchangeRateLogFactory.php +++ b/database/factories/ExchangeRateLogFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\ExchangeRateLog; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\ExchangeRateLog; -use InvoiceShelf\Models\User; class ExchangeRateLogFactory extends Factory { @@ -18,16 +18,14 @@ class ExchangeRateLogFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'company_id' => Currency::find(1)->id, 'base_currency_id' => User::find(1)->companies()->first()->id, 'currency_id' => Currency::find(4)->id, - 'exchange_rate' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ExchangeRateProviderFactory.php b/database/factories/ExchangeRateProviderFactory.php index 566f8289..3ee19fc8 100644 --- a/database/factories/ExchangeRateProviderFactory.php +++ b/database/factories/ExchangeRateProviderFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; +use App\Models\ExchangeRateProvider; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\ExchangeRateProvider; class ExchangeRateProviderFactory extends Factory { @@ -16,13 +16,11 @@ class ExchangeRateProviderFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'driver' => $this->faker->word, + 'driver' => $this->faker->word(), 'key' => str_random(10), 'active' => $this->faker->randomElement([true, false]), ]; diff --git a/database/factories/ExpenseCategoryFactory.php b/database/factories/ExpenseCategoryFactory.php index 78fe6db6..64dde573 100644 --- a/database/factories/ExpenseCategoryFactory.php +++ b/database/factories/ExpenseCategoryFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\ExpenseCategory; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\ExpenseCategory; -use InvoiceShelf\Models\User; class ExpenseCategoryFactory extends Factory { @@ -17,15 +17,13 @@ class ExpenseCategoryFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, - 'description' => $this->faker->text, + 'description' => $this->faker->text(), ]; } } diff --git a/database/factories/ExpenseFactory.php b/database/factories/ExpenseFactory.php index c1849121..4a13562e 100644 --- a/database/factories/ExpenseFactory.php +++ b/database/factories/ExpenseFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Expense; +use App\Models\ExpenseCategory; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Expense; -use InvoiceShelf\Models\ExpenseCategory; -use InvoiceShelf\Models\User; class ExpenseFactory extends Factory { @@ -20,21 +20,19 @@ class ExpenseFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'expense_date' => $this->faker->date('Y-m-d', 'now'), 'expense_category_id' => ExpenseCategory::factory(), 'company_id' => User::find(1)->companies()->first()->id, - 'amount' => $this->faker->randomDigitNotNull, - 'notes' => $this->faker->text, + 'amount' => $this->faker->randomDigitNotNull(), + 'notes' => $this->faker->text(), 'attachment_receipt' => null, 'customer_id' => Customer::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_amount' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/FileDiskFactory.php b/database/factories/FileDiskFactory.php index a83a54d6..50c053e5 100644 --- a/database/factories/FileDiskFactory.php +++ b/database/factories/FileDiskFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; +use App\Models\FileDisk; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\FileDisk; class FileDiskFactory extends Factory { @@ -16,13 +16,11 @@ class FileDiskFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'driver' => 'local', 'set_as_default' => false, 'credentials' => [ diff --git a/database/factories/InvoiceFactory.php b/database/factories/InvoiceFactory.php index 7ecbb799..ac8fe416 100644 --- a/database/factories/InvoiceFactory.php +++ b/database/factories/InvoiceFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Invoice; +use App\Models\RecurringInvoice; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Invoice; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class InvoiceFactory extends Factory { @@ -75,10 +75,8 @@ class InvoiceFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Invoice()) @@ -98,16 +96,16 @@ class InvoiceFactory extends Factory 'discount_per_item' => 'NO', 'paid_status' => Invoice::STATUS_UNPAID, 'company_id' => User::find(1)->companies()->first()->id, - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $invoice) { - return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $invoice) { return $invoice['discount_type'] == 'percentage' ? (($invoice['discount_val'] * $invoice['total']) / 100) : $invoice['discount_val']; }, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'due_amount' => function (array $invoice) { return $invoice['total']; }, @@ -115,12 +113,12 @@ class InvoiceFactory extends Factory 'unique_hash' => str_random(60), 'customer_id' => Customer::factory(), 'recurring_invoice_id' => RecurringInvoice::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_sub_total' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, - 'base_due_amount' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_sub_total' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), + 'base_due_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/InvoiceItemFactory.php b/database/factories/InvoiceItemFactory.php index 671635a9..d0f2d953 100644 --- a/database/factories/InvoiceItemFactory.php +++ b/database/factories/InvoiceItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\InvoiceItem; +use App\Models\Item; +use App\Models\RecurringInvoice; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\InvoiceItem; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; class InvoiceItemFactory extends Factory { @@ -19,10 +19,8 @@ class InvoiceItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'item_id' => Item::factory(), @@ -36,24 +34,24 @@ class InvoiceItemFactory extends Factory return Item::find($item['item_id'])->price; }, 'company_id' => User::find(1)->companies()->first()->id, - 'quantity' => $this->faker->randomDigitNotNull, + 'quantity' => $this->faker->randomDigitNotNull(), 'total' => function (array $item) { return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $invoice) { - return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; + return $invoice['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull(); }, 'discount' => function (array $invoice) { return $invoice['discount_type'] == 'percentage' ? (($invoice['discount_val'] * $invoice['total']) / 100) : $invoice['discount_val']; }, - 'tax' => $this->faker->randomDigitNotNull, + 'tax' => $this->faker->randomDigitNotNull(), 'recurring_invoice_id' => RecurringInvoice::factory(), - 'exchange_rate' => $this->faker->randomDigitNotNull, - 'base_discount_val' => $this->faker->randomDigitNotNull, - 'base_price' => $this->faker->randomDigitNotNull, - 'base_total' => $this->faker->randomDigitNotNull, - 'base_tax' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), + 'base_discount_val' => $this->faker->randomDigitNotNull(), + 'base_price' => $this->faker->randomDigitNotNull(), + 'base_total' => $this->faker->randomDigitNotNull(), + 'base_tax' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/ItemFactory.php b/database/factories/ItemFactory.php index ba715316..67b7ad87 100644 --- a/database/factories/ItemFactory.php +++ b/database/factories/ItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Item; +use App\Models\Unit; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Item; -use InvoiceShelf\Models\Unit; -use InvoiceShelf\Models\User; class ItemFactory extends Factory { @@ -19,16 +19,14 @@ class ItemFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'description' => $this->faker->text, + 'name' => $this->faker->name(), + 'description' => $this->faker->text(), 'company_id' => User::find(1)->companies()->first()->id, - 'price' => $this->faker->randomDigitNotNull, + 'price' => $this->faker->randomDigitNotNull(), 'unit_id' => Unit::factory(), 'creator_id' => User::where('role', 'super admin')->first()->company_id, 'currency_id' => Currency::find(1)->id, diff --git a/database/factories/NoteFactory.php b/database/factories/NoteFactory.php index b3fcc3e3..8a557781 100644 --- a/database/factories/NoteFactory.php +++ b/database/factories/NoteFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Note; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Note; -use InvoiceShelf\Models\User; class NoteFactory extends Factory { @@ -17,15 +17,13 @@ class NoteFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'type' => $this->faker->randomElement(['Invoice', 'Estimate', 'Payment']), - 'name' => $this->faker->word, - 'notes' => $this->faker->text, + 'name' => $this->faker->word(), + 'notes' => $this->faker->text(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php index eec4a029..d2a9744c 100644 --- a/database/factories/PaymentFactory.php +++ b/database/factories/PaymentFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Customer; +use App\Models\Payment; +use App\Models\PaymentMethod; +use App\Models\User; +use App\Services\SerialNumberFormatter; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\Payment; -use InvoiceShelf\Models\PaymentMethod; -use InvoiceShelf\Models\User; -use InvoiceShelf\Services\SerialNumberFormatter; class PaymentFactory extends Factory { @@ -21,10 +21,8 @@ class PaymentFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { $sequenceNumber = (new SerialNumberFormatter()) ->setModel(new Payment()) @@ -35,14 +33,14 @@ class PaymentFactory extends Factory 'company_id' => User::find(1)->companies()->first()->id, 'payment_date' => $this->faker->date('Y-m-d', 'now'), 'notes' => $this->faker->text(80), - 'amount' => $this->faker->randomDigitNotNull, + 'amount' => $this->faker->randomDigitNotNull(), 'sequence_number' => $sequenceNumber->nextSequenceNumber, 'customer_sequence_number' => $sequenceNumber->nextCustomerSequenceNumber, 'payment_number' => $sequenceNumber->getNextNumber(), 'unique_hash' => str_random(60), 'payment_method_id' => PaymentMethod::find(1)->id, 'customer_id' => Customer::factory(), - 'base_amount' => $this->faker->randomDigitNotNull, + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::find(1)->id, ]; } diff --git a/database/factories/PaymentMethodFactory.php b/database/factories/PaymentMethodFactory.php index f63f4753..f1c15631 100644 --- a/database/factories/PaymentMethodFactory.php +++ b/database/factories/PaymentMethodFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\PaymentMethod; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\PaymentMethod; -use InvoiceShelf\Models\User; class PaymentMethodFactory extends Factory { @@ -17,13 +17,11 @@ class PaymentMethodFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, + 'name' => $this->faker->name(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/RecurringInvoiceFactory.php b/database/factories/RecurringInvoiceFactory.php index 9f977e32..96304a6b 100644 --- a/database/factories/RecurringInvoiceFactory.php +++ b/database/factories/RecurringInvoiceFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Customer; +use App\Models\RecurringInvoice; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Customer; -use InvoiceShelf\Models\RecurringInvoice; -use InvoiceShelf\Models\User; class RecurringInvoiceFactory extends Factory { @@ -18,10 +18,8 @@ class RecurringInvoiceFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'starts_at' => $this->faker->iso8601(), @@ -29,19 +27,19 @@ class RecurringInvoiceFactory extends Factory 'status' => $this->faker->randomElement(['COMPLETED', 'ON_HOLD', 'ACTIVE']), 'tax_per_item' => 'NO', 'discount_per_item' => 'NO', - 'sub_total' => $this->faker->randomDigitNotNull, - 'total' => $this->faker->randomDigitNotNull, - 'tax' => $this->faker->randomDigitNotNull, - 'due_amount' => $this->faker->randomDigitNotNull, - 'discount' => $this->faker->randomDigitNotNull, - 'discount_val' => $this->faker->randomDigitNotNull, + 'sub_total' => $this->faker->randomDigitNotNull(), + 'total' => $this->faker->randomDigitNotNull(), + 'tax' => $this->faker->randomDigitNotNull(), + 'due_amount' => $this->faker->randomDigitNotNull(), + 'discount' => $this->faker->randomDigitNotNull(), + 'discount_val' => $this->faker->randomDigitNotNull(), 'customer_id' => Customer::factory(), 'company_id' => User::find(1)->companies()->first()->id, 'frequency' => '* * 18 * *', 'limit_by' => $this->faker->randomElement(['NONE', 'COUNT', 'DATE']), - 'limit_count' => $this->faker->randomDigit, + 'limit_count' => $this->faker->randomDigit(), 'limit_date' => $this->faker->date(), - 'exchange_rate' => $this->faker->randomDigitNotNull, + 'exchange_rate' => $this->faker->randomDigitNotNull(), ]; } } diff --git a/database/factories/TaxFactory.php b/database/factories/TaxFactory.php index 6706779c..f93cb3a0 100644 --- a/database/factories/TaxFactory.php +++ b/database/factories/TaxFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\Tax; +use App\Models\TaxType; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\Tax; -use InvoiceShelf\Models\TaxType; -use InvoiceShelf\Models\User; class TaxFactory extends Factory { @@ -19,10 +19,8 @@ class TaxFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ 'tax_type_id' => TaxType::factory(), @@ -33,9 +31,9 @@ class TaxFactory extends Factory return TaxType::find($item['tax_type_id'])->name; }, 'company_id' => User::find(1)->companies()->first()->id, - 'amount' => $this->faker->randomDigitNotNull, - 'compound_tax' => $this->faker->randomDigitNotNull, - 'base_amount' => $this->faker->randomDigitNotNull, + 'amount' => $this->faker->randomDigitNotNull(), + 'compound_tax' => $this->faker->randomDigitNotNull(), + 'base_amount' => $this->faker->randomDigitNotNull(), 'currency_id' => Currency::where('name', 'US Dollar')->first()->id, ]; } diff --git a/database/factories/TaxTypeFactory.php b/database/factories/TaxTypeFactory.php index 1ad8f074..7af2321b 100644 --- a/database/factories/TaxTypeFactory.php +++ b/database/factories/TaxTypeFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\TaxType; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\TaxType; -use InvoiceShelf\Models\User; class TaxTypeFactory extends Factory { @@ -17,16 +17,14 @@ class TaxTypeFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->word, + 'name' => $this->faker->word(), 'company_id' => User::find(1)->companies()->first()->id, 'percent' => $this->faker->numberBetween($min = 0, $max = 100), - 'description' => $this->faker->text, + 'description' => $this->faker->text(), 'compound_tax' => 0, 'collective_tax' => 0, ]; diff --git a/database/factories/UnitFactory.php b/database/factories/UnitFactory.php index 05fac5a7..f3be3466 100644 --- a/database/factories/UnitFactory.php +++ b/database/factories/UnitFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; +use App\Models\Unit; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; -use InvoiceShelf\Models\Unit; -use InvoiceShelf\Models\User; class UnitFactory extends Factory { @@ -17,13 +17,11 @@ class UnitFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, + 'name' => $this->faker->name(), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 7a7cca4e..92156f00 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; +use App\Models\Currency; +use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; -use InvoiceShelf\Models\Currency; -use InvoiceShelf\Models\User; class UserFactory extends Factory { @@ -18,19 +18,17 @@ class UserFactory extends Factory /** * Define the model's default state. - * - * @return array */ - public function definition() + public function definition(): array { return [ - 'name' => $this->faker->name, - 'company_name' => $this->faker->company, - 'contact_name' => $this->faker->name, - 'website' => $this->faker->url, + 'name' => $this->faker->name(), + 'company_name' => $this->faker->company(), + 'contact_name' => $this->faker->name(), + 'website' => $this->faker->url(), 'enable_portal' => true, - 'email' => $this->faker->unique()->safeEmail, - 'phone' => $this->faker->phoneNumber, + 'email' => $this->faker->unique()->safeEmail(), + 'phone' => $this->faker->phoneNumber(), 'role' => 'super admin', 'password' => Hash::make('secret'), 'currency_id' => Currency::first()->id, diff --git a/database/migrations/2014_10_11_071840_create_companies_table.php b/database/migrations/2014_10_11_071840_create_companies_table.php index 8e948313..46ab5af6 100644 --- a/database/migrations/2014_10_11_071840_create_companies_table.php +++ b/database/migrations/2014_10_11_071840_create_companies_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCompaniesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('companies', function (Blueprint $table) { $table->increments('id'); @@ -24,11 +22,9 @@ class CreateCompaniesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('companies'); } -} +}; diff --git a/database/migrations/2014_10_11_125754_create_currencies_table.php b/database/migrations/2014_10_11_125754_create_currencies_table.php index 200b4eea..466ef269 100644 --- a/database/migrations/2014_10_11_125754_create_currencies_table.php +++ b/database/migrations/2014_10_11_125754_create_currencies_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCurrenciesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('currencies', function (Blueprint $table) { $table->increments('id'); @@ -28,11 +26,9 @@ class CreateCurrenciesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('currencies'); } -} +}; diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 13adfbf7..f2bda3ff 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUsersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('users', function (Blueprint $table) { $table->increments('id'); @@ -38,11 +36,9 @@ class CreateUsersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('users'); } -} +}; diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php index 0ee0a36a..4f42fe69 100644 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePasswordResetsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('password_resets', function (Blueprint $table) { $table->string('email')->index(); @@ -22,11 +20,9 @@ class CreatePasswordResetsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('password_resets'); } -} +}; diff --git a/database/migrations/2016_05_13_060834_create_settings_table.php b/database/migrations/2016_05_13_060834_create_settings_table.php index 79a6fe46..e4db440e 100644 --- a/database/migrations/2016_05_13_060834_create_settings_table.php +++ b/database/migrations/2016_05_13_060834_create_settings_table.php @@ -3,14 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateSettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('settings', function (Blueprint $table) { $table->increments('id'); @@ -22,11 +20,9 @@ class CreateSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::drop('settings'); } -} +}; diff --git a/database/migrations/2017_04_11_064308_create_units_table.php b/database/migrations/2017_04_11_064308_create_units_table.php index 2ce4ef33..8efa0b1d 100644 --- a/database/migrations/2017_04_11_064308_create_units_table.php +++ b/database/migrations/2017_04_11_064308_create_units_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUnitsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { if (! Schema::hasTable('units')) { Schema::create('units', function (Blueprint $table) { @@ -26,11 +24,9 @@ class CreateUnitsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('units'); } -} +}; diff --git a/database/migrations/2017_04_11_081227_create_items_table.php b/database/migrations/2017_04_11_081227_create_items_table.php index ba912e21..cfc5123a 100644 --- a/database/migrations/2017_04_11_081227_create_items_table.php +++ b/database/migrations/2017_04_11_081227_create_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('items', function (Blueprint $table) { $table->increments('id'); @@ -29,11 +27,9 @@ class CreateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('items'); } -} +}; diff --git a/database/migrations/2017_04_12_090759_create_invoices_table.php b/database/migrations/2017_04_12_090759_create_invoices_table.php index 444313e9..f41afb56 100644 --- a/database/migrations/2017_04_12_090759_create_invoices_table.php +++ b/database/migrations/2017_04_12_090759_create_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('invoices', function (Blueprint $table) { $table->increments('id'); @@ -44,11 +42,9 @@ class CreateInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('invoices'); } -} +}; diff --git a/database/migrations/2017_04_12_091015_create_invoice_items_table.php b/database/migrations/2017_04_12_091015_create_invoice_items_table.php index 4b5bcf24..3afd7989 100644 --- a/database/migrations/2017_04_12_091015_create_invoice_items_table.php +++ b/database/migrations/2017_04_12_091015_create_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('invoice_items', function (Blueprint $table) { $table->increments('id'); @@ -36,11 +34,9 @@ class CreateInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('invoice_items'); } -} +}; diff --git a/database/migrations/2017_05_05_055609_create_estimates_table.php b/database/migrations/2017_05_05_055609_create_estimates_table.php index c3259e29..19feda13 100644 --- a/database/migrations/2017_05_05_055609_create_estimates_table.php +++ b/database/migrations/2017_05_05_055609_create_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('estimates', function (Blueprint $table) { $table->increments('id'); @@ -40,11 +38,9 @@ class CreateEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('estimates'); } -} +}; diff --git a/database/migrations/2017_05_05_073927_create_notifications_table.php b/database/migrations/2017_05_05_073927_create_notifications_table.php index 9797596d..d7380322 100644 --- a/database/migrations/2017_05_05_073927_create_notifications_table.php +++ b/database/migrations/2017_05_05_073927_create_notifications_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNotificationsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('notifications', function (Blueprint $table) { $table->uuid('id')->primary(); @@ -25,11 +23,9 @@ class CreateNotificationsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('notifications'); } -} +}; diff --git a/database/migrations/2017_05_06_173745_create_countries_table.php b/database/migrations/2017_05_06_173745_create_countries_table.php index fd6e7a5c..20e79dcf 100755 --- a/database/migrations/2017_05_06_173745_create_countries_table.php +++ b/database/migrations/2017_05_06_173745_create_countries_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCountriesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('countries', function (Blueprint $table) { $table->engine = 'InnoDB'; @@ -24,11 +22,9 @@ class CreateCountriesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('countries'); } -} +}; diff --git a/database/migrations/2017_10_02_123501_create_estimate_items_table.php b/database/migrations/2017_10_02_123501_create_estimate_items_table.php index bddd5e3f..f685d6a6 100644 --- a/database/migrations/2017_10_02_123501_create_estimate_items_table.php +++ b/database/migrations/2017_10_02_123501_create_estimate_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEstimateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('estimate_items', function (Blueprint $table) { $table->increments('id'); @@ -36,11 +34,9 @@ class CreateEstimateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('estimate_items'); } -} +}; diff --git a/database/migrations/2018_11_02_133825_create_ expense_categories_table.php b/database/migrations/2018_11_02_133825_create_ expense_categories_table.php index 90175227..c75e6496 100644 --- a/database/migrations/2018_11_02_133825_create_ expense_categories_table.php +++ b/database/migrations/2018_11_02_133825_create_ expense_categories_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExpenseCategoriesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('expense_categories', function (Blueprint $table) { $table->increments('id'); @@ -25,11 +23,9 @@ class CreateExpenseCategoriesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('expense_categories'); } -} +}; diff --git a/database/migrations/2018_11_02_133956_create_expenses_table.php b/database/migrations/2018_11_02_133956_create_expenses_table.php index 1e738ce9..6846e59b 100644 --- a/database/migrations/2018_11_02_133956_create_expenses_table.php +++ b/database/migrations/2018_11_02_133956_create_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('expenses', function (Blueprint $table) { $table->increments('id'); @@ -29,11 +27,9 @@ class CreateExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('expenses'); } -} +}; diff --git a/database/migrations/2019_08_30_072639_create_addresses_table.php b/database/migrations/2019_08_30_072639_create_addresses_table.php index c9fb5b22..51eb2567 100644 --- a/database/migrations/2019_08_30_072639_create_addresses_table.php +++ b/database/migrations/2019_08_30_072639_create_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('addresses', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,11 +32,9 @@ class CreateAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('addresses'); } -} +}; diff --git a/database/migrations/2019_09_02_053155_create_payment_methods_table.php b/database/migrations/2019_09_02_053155_create_payment_methods_table.php index 43961fbb..949dc0f0 100644 --- a/database/migrations/2019_09_02_053155_create_payment_methods_table.php +++ b/database/migrations/2019_09_02_053155_create_payment_methods_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePaymentMethodsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { if (! Schema::hasTable('payment_methods')) { Schema::create('payment_methods', function (Blueprint $table) { @@ -26,11 +24,9 @@ class CreatePaymentMethodsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('payment_methods'); } -} +}; diff --git a/database/migrations/2019_09_03_135234_create_payments_table.php b/database/migrations/2019_09_03_135234_create_payments_table.php index 2ac1893b..57e523f0 100644 --- a/database/migrations/2019_09_03_135234_create_payments_table.php +++ b/database/migrations/2019_09_03_135234_create_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('payments', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,11 +32,9 @@ class CreatePaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('payments'); } -} +}; diff --git a/database/migrations/2019_09_14_120124_create_media_table.php b/database/migrations/2019_09_14_120124_create_media_table.php index d35782be..e6cceb31 100644 --- a/database/migrations/2019_09_14_120124_create_media_table.php +++ b/database/migrations/2019_09_14_120124_create_media_table.php @@ -4,12 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateMediaTable extends Migration +return new class extends Migration { /** * Run the migrations. */ - public function up() + public function up(): void { Schema::create('media', function (Blueprint $table) { $table->bigIncrements('id'); @@ -31,8 +31,8 @@ class CreateMediaTable extends Migration /** * Reverse the migrations. */ - public function down() + public function down(): void { Schema::dropIfExists('media'); } -} +}; diff --git a/database/migrations/2019_09_21_052540_create_tax_types_table.php b/database/migrations/2019_09_21_052540_create_tax_types_table.php index 0e2eb3c0..51327922 100644 --- a/database/migrations/2019_09_21_052540_create_tax_types_table.php +++ b/database/migrations/2019_09_21_052540_create_tax_types_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateTaxTypesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('tax_types', function (Blueprint $table) { $table->increments('id'); @@ -28,11 +26,9 @@ class CreateTaxTypesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('tax_types'); } -} +}; diff --git a/database/migrations/2019_09_21_052548_create_taxes_table.php b/database/migrations/2019_09_21_052548_create_taxes_table.php index dae0bfab..38877209 100644 --- a/database/migrations/2019_09_21_052548_create_taxes_table.php +++ b/database/migrations/2019_09_21_052548_create_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('taxes', function (Blueprint $table) { $table->increments('id'); @@ -39,11 +37,9 @@ class CreateTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('taxes'); } -} +}; diff --git a/database/migrations/2019_09_26_145012_create_company_settings_table.php b/database/migrations/2019_09_26_145012_create_company_settings_table.php index ca030e36..d41172be 100644 --- a/database/migrations/2019_09_26_145012_create_company_settings_table.php +++ b/database/migrations/2019_09_26_145012_create_company_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCompanySettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('company_settings', function (Blueprint $table) { $table->increments('id'); @@ -25,11 +23,9 @@ class CreateCompanySettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('company_settings'); } -} +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php index 3ce00023..89927c68 100644 --- a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePersonalAccessTokensTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('personal_access_tokens', function (Blueprint $table) { $table->bigIncrements('id'); @@ -26,11 +24,9 @@ class CreatePersonalAccessTokensTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('personal_access_tokens'); } -} +}; diff --git a/database/migrations/2020_02_01_063235_create_custom_fields_table.php b/database/migrations/2020_02_01_063235_create_custom_fields_table.php index 480506a4..a53971d0 100644 --- a/database/migrations/2020_02_01_063235_create_custom_fields_table.php +++ b/database/migrations/2020_02_01_063235_create_custom_fields_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCustomFieldsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('custom_fields', function (Blueprint $table) { $table->bigIncrements('id'); @@ -38,10 +36,8 @@ class CreateCustomFieldsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('custom_fields', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -50,4 +46,4 @@ class CreateCustomFieldsTable extends Migration }); Schema::dropIfExists('custom_fields'); } -} +}; diff --git a/database/migrations/2020_02_01_063509_create_custom_field_values_table.php b/database/migrations/2020_02_01_063509_create_custom_field_values_table.php index c8fc4c1e..a79e937a 100644 --- a/database/migrations/2020_02_01_063509_create_custom_field_values_table.php +++ b/database/migrations/2020_02_01_063509_create_custom_field_values_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateCustomFieldValuesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('custom_field_values', function (Blueprint $table) { $table->bigIncrements('id'); @@ -34,10 +32,8 @@ class CreateCustomFieldValuesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('custom_field_values', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -47,4 +43,4 @@ class CreateCustomFieldValuesTable extends Migration }); Schema::dropIfExists('custom_field_values'); } -} +}; diff --git a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php index a947b73b..b91a4bc7 100644 --- a/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php +++ b/database/migrations/2020_05_12_154129_add_user_id_to_expenses_table.php @@ -24,5 +24,7 @@ class AddUserIdToExpensesTable extends Migration * * @return void */ - public function down() {} + public function down() + { + } } diff --git a/database/migrations/2020_09_07_103054_create_file_disks_table.php b/database/migrations/2020_09_07_103054_create_file_disks_table.php index b137fe67..16aeeff3 100644 --- a/database/migrations/2020_09_07_103054_create_file_disks_table.php +++ b/database/migrations/2020_09_07_103054_create_file_disks_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateFileDisksTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('file_disks', function (Blueprint $table) { $table->id(); @@ -26,11 +24,9 @@ class CreateFileDisksTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('file_disks'); } -} +}; diff --git a/database/migrations/2020_09_22_153617_add_columns_to_media_table.php b/database/migrations/2020_09_22_153617_add_columns_to_media_table.php index 2410fd97..4c18cc2b 100644 --- a/database/migrations/2020_09_22_153617_add_columns_to_media_table.php +++ b/database/migrations/2020_09_22_153617_add_columns_to_media_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddColumnsToMediaTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('media', function (Blueprint $table) { $table->uuid('uuid')->nullable(); @@ -21,14 +19,12 @@ class AddColumnsToMediaTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('media', function (Blueprint $table) { $table->dropColumn('uuid'); $table->dropColumn('conversions_disk'); }); } -} +}; diff --git a/database/migrations/2020_09_26_100951_create_user_settings_table.php b/database/migrations/2020_09_26_100951_create_user_settings_table.php index d59beffc..6d5e2a56 100644 --- a/database/migrations/2020_09_26_100951_create_user_settings_table.php +++ b/database/migrations/2020_09_26_100951_create_user_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUserSettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('user_settings', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateUserSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('user_settings'); } -} +}; diff --git a/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php b/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php index e9ce5a43..e93d350f 100644 --- a/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php +++ b/database/migrations/2020_10_01_102913_add_company_to_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCompanyToAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('addresses', function (Blueprint $table) { $table->integer('user_id')->unsigned()->nullable()->change(); @@ -22,10 +20,8 @@ class AddCompanyToAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('addresses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCompanyToAddressesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_10_17_074745_create_notes_table.php b/database/migrations/2020_10_17_074745_create_notes_table.php index 84888bb1..96bad1c2 100644 --- a/database/migrations/2020_10_17_074745_create_notes_table.php +++ b/database/migrations/2020_10_17_074745_create_notes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNotesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('notes', function (Blueprint $table) { $table->id(); @@ -24,11 +22,9 @@ class CreateNotesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('notes'); } -} +}; diff --git a/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php b/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php index 9b0f1c10..a971e91b 100644 --- a/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php +++ b/database/migrations/2020_10_24_091934_change_value_column_to_text_on_company_settings_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class ChangeValueColumnToTextOnCompanySettingsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('company_settings', function (Blueprint $table) { $table->text('value')->change(); @@ -20,13 +18,11 @@ class ChangeValueColumnToTextOnCompanySettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('company_settings', function (Blueprint $table) { $table->string('value')->change(); }); } -} +}; diff --git a/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php b/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php index e39625fa..59ed4f08 100644 --- a/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php +++ b/database/migrations/2020_11_23_050206_add_creator_in_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInInvoicesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php b/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php index 8287f50f..6398b33b 100644 --- a/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php +++ b/database/migrations/2020_11_23_050252_add_creator_in_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInEstimatesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php b/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php index 9f243340..818b2554 100644 --- a/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php +++ b/database/migrations/2020_11_23_050316_add_creator_in_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInPaymentsTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php b/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php index 822c72d5..b9e1b789 100644 --- a/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php +++ b/database/migrations/2020_11_23_050333_add_creator_in_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInExpensesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_050406_add_creator_in_items_table.php b/database/migrations/2020_11_23_050406_add_creator_in_items_table.php index 9287a482..c90f01ba 100644 --- a/database/migrations/2020_11_23_050406_add_creator_in_items_table.php +++ b/database/migrations/2020_11_23_050406_add_creator_in_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('items', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInItemsTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_065815_add_creator_in_users_table.php b/database/migrations/2020_11_23_065815_add_creator_in_users_table.php index a4925369..8699f456 100644 --- a/database/migrations/2020_11_23_065815_add_creator_in_users_table.php +++ b/database/migrations/2020_11_23_065815_add_creator_in_users_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCreatorInUsersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('users', function (Blueprint $table) { $table->unsignedInteger('creator_id')->nullable(); @@ -21,10 +19,8 @@ class AddCreatorInUsersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('users', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -32,4 +28,4 @@ class AddCreatorInUsersTable extends Migration } }); } -} +}; diff --git a/database/migrations/2020_11_23_074154_create_email_logs_table.php b/database/migrations/2020_11_23_074154_create_email_logs_table.php index 89923cfb..93b52b5d 100644 --- a/database/migrations/2020_11_23_074154_create_email_logs_table.php +++ b/database/migrations/2020_11_23_074154_create_email_logs_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateEmailLogsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('email_logs', function (Blueprint $table) { $table->id(); @@ -27,11 +25,9 @@ class CreateEmailLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('email_logs'); } -} +}; diff --git a/database/migrations/2020_12_02_064933_update_crater_version_320.php b/database/migrations/2020_12_02_064933_update_crater_version_320.php index 8cbe22bf..02a0ad53 100644 --- a/database/migrations/2020_12_02_064933_update_crater_version_320.php +++ b/database/migrations/2020_12_02_064933_update_crater_version_320.php @@ -1,29 +1,25 @@ fileDiskSeed(); @@ -51,10 +49,8 @@ class UpdateCraterVersion400 extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } @@ -130,4 +126,4 @@ class UpdateCraterVersion400 extends Migration CompanySetting::setSettings($settings, $user->company_id); } -} +}; diff --git a/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php b/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php index a42967e3..ff43cae3 100644 --- a/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php +++ b/database/migrations/2020_12_08_065715_change_description_and_notes_column_type.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class ChangeDescriptionAndNotesColumnType extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->text('notes')->nullable()->change(); @@ -36,11 +34,9 @@ class ChangeDescriptionAndNotesColumnType extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2020_12_08_133131_update_crater_version_401.php b/database/migrations/2020_12_08_133131_update_crater_version_401.php index bd5286bb..cbdac711 100644 --- a/database/migrations/2020_12_08_133131_update_crater_version_401.php +++ b/database/migrations/2020_12_08_133131_update_crater_version_401.php @@ -1,27 +1,23 @@ string('template_name')->nullable(); @@ -20,13 +18,11 @@ class AddTemplateNameToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn('template_name'); }); } -} +}; diff --git a/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php b/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php index 0028d9c6..5c3a02e0 100644 --- a/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php +++ b/database/migrations/2020_12_14_045310_add_template_name_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddTemplateNameToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->string('template_name')->nullable(); @@ -20,13 +18,11 @@ class AddTemplateNameToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn('template_name'); }); } -} +}; diff --git a/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php b/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php index 097a17bb..e7c20f45 100644 --- a/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php +++ b/database/migrations/2020_12_14_051450_remove_template_id_from_invoices_and_estimates_table.php @@ -1,19 +1,17 @@ string('unit_name')->nullable()->after('quantity'); @@ -23,10 +21,8 @@ class AddUnitNameToPdf extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->dropColumn('unit_name'); @@ -35,4 +31,4 @@ class AddUnitNameToPdf extends Migration $table->dropColumn('unit_name'); }); } -} +}; diff --git a/database/migrations/2021_03_23_145012_add_number_length_setting.php b/database/migrations/2021_03_23_145012_add_number_length_setting.php index c9b2ae0b..cf630e30 100644 --- a/database/migrations/2021_03_23_145012_add_number_length_setting.php +++ b/database/migrations/2021_03_23_145012_add_number_length_setting.php @@ -1,17 +1,15 @@ first(); @@ -35,11 +33,9 @@ class AddNumberLengthSetting extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_05_05_063533_update_crater_version_410.php b/database/migrations/2021_05_05_063533_update_crater_version_410.php index 87fcc993..8ee8764e 100644 --- a/database/migrations/2021_05_05_063533_update_crater_version_410.php +++ b/database/migrations/2021_05_05_063533_update_crater_version_410.php @@ -1,27 +1,23 @@ id(); @@ -39,11 +37,9 @@ class CreateCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('customers'); } -} +}; diff --git a/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php b/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php index c2762011..2c94133a 100644 --- a/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php +++ b/database/migrations/2021_06_28_120010_add_customer_id_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToEstimatesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php b/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php index ebe905ca..8385413a 100644 --- a/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php +++ b/database/migrations/2021_06_28_120133_add_customer_id_to_expenses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToExpensesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -20,13 +18,11 @@ class AddCustomerIdToExpensesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php b/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php index 5df3fb3b..17295fd7 100644 --- a/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php +++ b/database/migrations/2021_06_28_120208_add_customer_id_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToInvoicesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php index 31e2240b..07288d86 100644 --- a/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php +++ b/database/migrations/2021_06_28_120231_add_customer_id_to_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::disableForeignKeyConstraints(); Schema::table('payments', function (Blueprint $table) { @@ -24,10 +22,8 @@ class AddCustomerIdToPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -36,4 +32,4 @@ class AddCustomerIdToPaymentsTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php b/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php index ca435c4c..9070f826 100644 --- a/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php +++ b/database/migrations/2021_06_29_052745_add_customer_id_to_addresses_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCustomerIdToAddressesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('addresses', function (Blueprint $table) { $table->unsignedBigInteger('customer_id')->nullable(); @@ -21,10 +19,8 @@ class AddCustomerIdToAddressesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('addresses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCustomerIdToAddressesTable extends Migration $table->dropColumn('customer_id'); }); } -} +}; diff --git a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php index 6e8977ca..eca3aed2 100644 --- a/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php +++ b/database/migrations/2021_06_30_062411_update_customer_id_in_all_tables.php @@ -1,27 +1,25 @@ get(); @@ -58,9 +56,9 @@ class UpdateCustomerIdInAllTables extends Migration ]); CustomFieldValue::where('custom_field_valuable_id', $user->id) - ->where('custom_field_valuable_type', 'InvoiceShelf\Models\User') + ->where('custom_field_valuable_type', \App\Models\User::class) ->update([ - 'custom_field_valuable_type' => 'InvoiceShelf\Models\Customer', + 'custom_field_valuable_type' => \App\Models\Customer::class, 'custom_field_valuable_id' => $newCustomer->id, ]); } @@ -76,33 +74,35 @@ class UpdateCustomerIdInAllTables extends Migration } } - Schema::table('estimates', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + if (config('database.default') !== 'sqlite') { + Schema::table('estimates', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('expenses', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('expenses', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('invoices', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('invoices', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); - Schema::table('payments', function (Blueprint $table) { - if (config('database.default') !== 'sqlite') { - $table->dropForeign(['user_id']); - } - $table->dropColumn('user_id'); - }); + Schema::table('payments', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['user_id']); + } + $table->dropColumn('user_id'); + }); + } Schema::table('items', function (Blueprint $table) { $table->dropColumn('unit'); @@ -114,11 +114,9 @@ class UpdateCustomerIdInAllTables extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_01_060700_create_user_company_table.php b/database/migrations/2021_07_01_060700_create_user_company_table.php index 48013b6d..fe0a5f0e 100644 --- a/database/migrations/2021_07_01_060700_create_user_company_table.php +++ b/database/migrations/2021_07_01_060700_create_user_company_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUserCompanyTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('user_company', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateUserCompanyTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('user_company'); } -} +}; diff --git a/database/migrations/2021_07_05_100256_change_relationship_of_company.php b/database/migrations/2021_07_05_100256_change_relationship_of_company.php index 8f0e05fa..7de24069 100644 --- a/database/migrations/2021_07_05_100256_change_relationship_of_company.php +++ b/database/migrations/2021_07_05_100256_change_relationship_of_company.php @@ -1,18 +1,16 @@ dropForeign(['company_id']); - } - $table->dropColumn('company_id'); - }); + if (config('database.default') !== 'sqlite') { + Schema::table('users', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['company_id']); + } + $table->dropColumn('company_id'); + }); + } + } /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php b/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php index 9b82656a..b639ff4d 100644 --- a/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php +++ b/database/migrations/2021_07_06_070204_add_owner_id_to_companies_table.php @@ -1,20 +1,18 @@ string('slug')->nullable(); @@ -45,10 +43,8 @@ class AddOwnerIdToCompaniesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('companies', function (Blueprint $table) { $table->dropColumn('slug'); @@ -57,4 +53,4 @@ class AddOwnerIdToCompaniesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2021_07_08_110940_add_company_to_notes_table.php b/database/migrations/2021_07_08_110940_add_company_to_notes_table.php index 354a1bfb..1844a72c 100644 --- a/database/migrations/2021_07_08_110940_add_company_to_notes_table.php +++ b/database/migrations/2021_07_08_110940_add_company_to_notes_table.php @@ -1,19 +1,17 @@ unsignedInteger('company_id')->nullable(); @@ -33,10 +31,8 @@ class AddCompanyToNotesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('notes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -44,4 +40,4 @@ class AddCompanyToNotesTable extends Migration } }); } -} +}; diff --git a/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php b/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php index 76baab0a..d9caa8b9 100644 --- a/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php +++ b/database/migrations/2021_07_09_063502_create_recurring_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateRecurringInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('recurring_invoices', function (Blueprint $table) { $table->id(); @@ -49,11 +47,9 @@ class CreateRecurringInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('recurring_invoices'); } -} +}; diff --git a/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php b/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php index 45009746..13c63443 100644 --- a/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php +++ b/database/migrations/2021_07_09_063712_add_recurring_invoice_id_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedBigInteger('recurring_invoice_id')->nullable(); @@ -21,10 +19,8 @@ class AddRecurringInvoiceIdToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddRecurringInvoiceIdToInvoicesTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php b/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php index 094443e6..394655c2 100644 --- a/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php +++ b/database/migrations/2021_07_09_063755_add_recurring_invoice_id_to_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->integer('invoice_id')->unsigned()->nullable()->change(); @@ -22,10 +20,8 @@ class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -34,4 +30,4 @@ class AddRecurringInvoiceIdToInvoiceItemsTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php b/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php index 0caf39ef..62cade65 100644 --- a/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php +++ b/database/migrations/2021_07_15_054753_make_due_date_optional_in_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class MakeDueDateOptionalInInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->date('due_date')->nullable()->change(); @@ -20,13 +18,11 @@ class MakeDueDateOptionalInInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { // }); } -} +}; diff --git a/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php b/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php index 455e3c49..e130d44e 100644 --- a/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php +++ b/database/migrations/2021_07_15_054929_make_expiry_date_optional_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class MakeExpiryDateOptionalEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->date('expiry_date')->nullable()->change(); @@ -20,11 +18,9 @@ class MakeExpiryDateOptionalEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php b/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php index 8554ab61..97be4f0a 100644 --- a/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php +++ b/database/migrations/2021_07_16_072458_add_base_columns_into_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -25,10 +23,8 @@ class AddBaseColumnsIntoInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn([ @@ -41,4 +37,4 @@ class AddBaseColumnsIntoInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php b/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php index 32b6837a..22a0f9c5 100644 --- a/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php +++ b/database/migrations/2021_07_16_072925_add_base_columns_into_invoice_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoInvoiceItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->unsignedBigInteger('base_price')->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoInvoiceItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoice_items', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoInvoiceItemsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php b/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php index d08cb8e2..e225eb62 100644 --- a/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php +++ b/database/migrations/2021_07_16_073040_add_base_columns_into_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoEstimatesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php b/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php index ea6c3172..9ab8a7c1 100644 --- a/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php +++ b/database/migrations/2021_07_16_073441_add_base_columns_into_estimate_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsIntoEstimateItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimate_items', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -24,10 +22,8 @@ class AddBaseColumnsIntoEstimateItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimate_items', function (Blueprint $table) { $table->dropColumn([ @@ -39,4 +35,4 @@ class AddBaseColumnsIntoEstimateItemsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php b/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php index 18aa0f2d..22bf083b 100644 --- a/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php +++ b/database/migrations/2021_07_16_074810_add_base_column_into_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnIntoPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -21,13 +19,11 @@ class AddBaseColumnIntoPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { $table->dropColumn('base_amount'); }); } -} +}; diff --git a/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php b/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php index 15ca8928..302675d5 100644 --- a/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php +++ b/database/migrations/2021_07_16_075100_add_base_values_into_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseValuesIntoTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -21,10 +19,8 @@ class AddBaseValuesIntoTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddBaseValuesIntoTaxesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php b/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php index ab49fd0b..dde19c6f 100644 --- a/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php +++ b/database/migrations/2021_07_16_080253_add_currency_id_into_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoInvoicesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php b/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php index b68ef26d..1938af28 100644 --- a/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php +++ b/database/migrations/2021_07_16_080508_add_currency_id_into_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoPaymentsTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php b/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php index f2a27429..f654316a 100644 --- a/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php +++ b/database/migrations/2021_07_16_080611_add_currency_id_into_items_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoItemsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('items', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoItemsTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php b/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php index f21c0ad1..3570b9dc 100644 --- a/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php +++ b/database/migrations/2021_07_16_080702_add_currency_id_into_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoTaxesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php b/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php index 17d6f115..d77452b8 100644 --- a/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php +++ b/database/migrations/2021_07_16_112429_add_currency_id_into_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddCurrencyIdIntoEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->unsignedInteger('currency_id')->nullable(); @@ -21,10 +19,8 @@ class AddCurrencyIdIntoEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddCurrencyIdIntoEstimatesTable extends Migration $table->dropColumn('currency_id'); }); } -} +}; diff --git a/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php b/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php index c3dc9cf5..2f392b64 100644 --- a/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php +++ b/database/migrations/2021_08_05_103535_create_exchange_rate_logs_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExchangeRateLogsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('exchange_rate_logs', function (Blueprint $table) { $table->id(); @@ -28,11 +26,9 @@ class CreateExchangeRateLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('exchange_rate_logs'); } -} +}; diff --git a/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php b/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php index 34a259be..90e3215e 100644 --- a/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php +++ b/database/migrations/2021_08_16_091413_add_tax_per_item_into_items_table.php @@ -1,18 +1,16 @@ boolean('tax_per_item')->default(false); @@ -32,13 +30,11 @@ class AddTaxPerItemIntoItemsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('items', function (Blueprint $table) { $table->dropColumn('tax_per_item'); }); } -} +}; diff --git a/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php b/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php index 63c327db..599b13d7 100644 --- a/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php +++ b/database/migrations/2021_08_19_063244_add_base_columns_to_expense_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddBaseColumnsToExpenseTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->decimal('exchange_rate', 19, 6)->nullable(); @@ -22,10 +20,8 @@ class AddBaseColumnsToExpenseTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { $table->dropColumn([ @@ -35,4 +31,4 @@ class AddBaseColumnsToExpenseTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php b/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php index 7a303d02..7c163614 100644 --- a/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php +++ b/database/migrations/2021_09_28_081543_create_exchange_rate_providers_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExchangeRateProvidersTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('exchange_rate_providers', function (Blueprint $table) { $table->id(); @@ -28,11 +26,9 @@ class CreateExchangeRateProvidersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('exchange_rate_providers'); } -} +}; diff --git a/database/migrations/2021_09_28_130822_add_sequence_column.php b/database/migrations/2021_09_28_130822_add_sequence_column.php index 56518fdd..fe702b5b 100644 --- a/database/migrations/2021_09_28_130822_add_sequence_column.php +++ b/database/migrations/2021_09_28_130822_add_sequence_column.php @@ -1,19 +1,17 @@ string('prefix')->nullable()->after('id'); @@ -80,10 +78,8 @@ class AddSequenceColumn extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn('sequence_number'); @@ -98,4 +94,4 @@ class AddSequenceColumn extends Migration $table->dropColumn('customer_sequence_number'); }); } -} +}; diff --git a/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php b/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php index 413f3fd6..aadbe96f 100644 --- a/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php +++ b/database/migrations/2021_10_06_100539_add_recurring_invoice_id_to_taxes_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddRecurringInvoiceIdToTaxesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedBigInteger('recurring_invoice_id')->nullable(); @@ -21,10 +19,8 @@ class AddRecurringInvoiceIdToTaxesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddRecurringInvoiceIdToTaxesTable extends Migration $table->dropColumn('recurring_invoice_id'); }); } -} +}; diff --git a/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php b/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php index 4208af90..423e8b29 100644 --- a/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php +++ b/database/migrations/2021_11_13_051127_add_payment_method_to_expense_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddPaymentMethodToExpenseTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('expenses', function (Blueprint $table) { $table->integer('payment_method_id')->unsigned()->nullable(); @@ -21,10 +19,8 @@ class AddPaymentMethodToExpenseTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('expenses', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddPaymentMethodToExpenseTable extends Migration $table->dropColumn('payment_method_id'); }); } -} +}; diff --git a/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php b/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php index 441ee8c2..acaf68fa 100644 --- a/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php +++ b/database/migrations/2021_11_13_114808_calculate_base_values_for_existing_data.php @@ -1,19 +1,17 @@ first(); @@ -134,11 +132,9 @@ class CalculateBaseValuesForExistingData extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_11_23_092111_add_new_company_settings.php b/database/migrations/2021_11_23_092111_add_new_company_settings.php index cc5df0ab..775d1a16 100644 --- a/database/migrations/2021_11_23_092111_add_new_company_settings.php +++ b/database/migrations/2021_11_23_092111_add_new_company_settings.php @@ -1,17 +1,15 @@ files('/app/pdf/invoice'); @@ -35,11 +33,9 @@ class MigrateTemplatesFromVersion4 extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_02_123007_update_crater_version_502.php b/database/migrations/2021_12_02_123007_update_crater_version_502.php index 07ee4380..f62017e1 100644 --- a/database/migrations/2021_12_02_123007_update_crater_version_502.php +++ b/database/migrations/2021_12_02_123007_update_crater_version_502.php @@ -1,27 +1,23 @@ id(); @@ -30,11 +28,9 @@ class CreateTransactionsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('transactions'); } -} +}; diff --git a/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php b/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php index 8267f16e..87537dc8 100644 --- a/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php +++ b/database/migrations/2021_12_04_123315_add_transaction_id_to_payments_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddTransactionIdToPaymentsTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('payments', function (Blueprint $table) { $table->unsignedBigInteger('transaction_id')->nullable(); @@ -21,10 +19,8 @@ class AddTransactionIdToPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payments', function (Blueprint $table) { if (config('database.default') !== 'sqlite') { @@ -33,4 +29,4 @@ class AddTransactionIdToPaymentsTable extends Migration $table->dropColumn('transaction_id'); }); } -} +}; diff --git a/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php b/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php index cb374abe..587b9daa 100644 --- a/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php +++ b/database/migrations/2021_12_04_123415_add_type_to_payment_methods_table.php @@ -1,18 +1,16 @@ string('driver')->nullable(); @@ -34,10 +32,8 @@ class AddTypeToPaymentMethodsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('payment_methods', function (Blueprint $table) { $table->dropColumn([ @@ -48,4 +44,4 @@ class AddTypeToPaymentMethodsTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2021_12_06_131201_update_crater_version_504.php b/database/migrations/2021_12_06_131201_update_crater_version_504.php index fc15e94a..2609ed46 100644 --- a/database/migrations/2021_12_06_131201_update_crater_version_504.php +++ b/database/migrations/2021_12_06_131201_update_crater_version_504.php @@ -1,27 +1,23 @@ first(); if ($user) { @@ -35,11 +33,9 @@ class CalculateBaseValuesForExpenses extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_09_062434_update_crater_version_505.php b/database/migrations/2021_12_09_062434_update_crater_version_505.php index e4e2ca19..7391ce75 100644 --- a/database/migrations/2021_12_09_062434_update_crater_version_505.php +++ b/database/migrations/2021_12_09_062434_update_crater_version_505.php @@ -1,27 +1,23 @@ dropUnique(['email']); @@ -20,11 +18,9 @@ class DropUniqueEmailOnCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_10_121739_update_creater_version_506.php b/database/migrations/2021_12_10_121739_update_creater_version_506.php index d83531a9..5a70461f 100644 --- a/database/migrations/2021_12_10_121739_update_creater_version_506.php +++ b/database/migrations/2021_12_10_121739_update_creater_version_506.php @@ -1,27 +1,23 @@ ', null)->get(); @@ -24,11 +22,9 @@ class CalculateBaseAmountOfPaymentsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php b/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php index 5aa4904f..3a053d87 100644 --- a/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php +++ b/database/migrations/2021_12_13_093701_add_fields_to_email_logs_table.php @@ -1,20 +1,18 @@ string('token')->unique()->nullable(); @@ -38,13 +36,11 @@ class AddFieldsToEmailLogsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('email_logs', function (Blueprint $table) { $table->dropColumn('token'); }); } -} +}; diff --git a/database/migrations/2021_12_15_053223_create_modules_table.php b/database/migrations/2021_12_15_053223_create_modules_table.php index af7360ac..ce2428a8 100644 --- a/database/migrations/2021_12_15_053223_create_modules_table.php +++ b/database/migrations/2021_12_15_053223_create_modules_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateModulesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::create('modules', function (Blueprint $table) { $table->id(); @@ -25,11 +23,9 @@ class CreateModulesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::dropIfExists('modules'); } -} +}; diff --git a/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php b/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php index 4492d57d..2343c4b0 100644 --- a/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php +++ b/database/migrations/2021_12_21_102521_change_enable_portal_field_of_customers_table.php @@ -1,18 +1,16 @@ boolean('enable_portal')->default(false)->change(); @@ -30,11 +28,9 @@ class ChangeEnablePortalFieldOfCustomersTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php b/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php index ae2c4882..aedcd531 100644 --- a/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php +++ b/database/migrations/2021_12_31_042453_add_type_to_tax_types_table.php @@ -1,18 +1,16 @@ enum('type', ['GENERAL', 'MODULE'])->default(TaxType::TYPE_GENERAL); @@ -30,13 +28,11 @@ class AddTypeToTaxTypesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('tax_types', function (Blueprint $table) { $table->dropColumn('type'); }); } -} +}; diff --git a/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php b/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php index 558d380e..46f2255e 100644 --- a/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php +++ b/database/migrations/2022_01_05_101841_add_sales_tax_fields_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php b/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php index 8b5675e4..6f2f6835 100644 --- a/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php +++ b/database/migrations/2022_01_05_102538_add_sales_tax_fields_to_estimates_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToEstimatesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('estimates', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToEstimatesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('estimates', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToEstimatesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php b/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php index cbe6dc6d..49758d7f 100644 --- a/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php +++ b/database/migrations/2022_01_05_103607_add_sales_tax_fields_to_recurring_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('recurring_invoices', function (Blueprint $table) { $table->string('sales_tax_type')->nullable(); @@ -21,10 +19,8 @@ class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('recurring_invoices', function (Blueprint $table) { $table->dropColumn([ @@ -33,4 +29,4 @@ class AddSalesTaxFieldsToRecurringInvoicesTable extends Migration ]); }); } -} +}; diff --git a/database/migrations/2022_01_05_115423_update_crater_version_600.php b/database/migrations/2022_01_05_115423_update_crater_version_600.php index 66e08432..e00ad047 100644 --- a/database/migrations/2022_01_05_115423_update_crater_version_600.php +++ b/database/migrations/2022_01_05_115423_update_crater_version_600.php @@ -1,27 +1,23 @@ get(); @@ -25,11 +23,9 @@ class AddSlugToCompanies extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_01_12_132859_update_crater_version_601.php b/database/migrations/2022_01_12_132859_update_crater_version_601.php index 669d7824..1682eb46 100644 --- a/database/migrations/2022_01_12_132859_update_crater_version_601.php +++ b/database/migrations/2022_01_12_132859_update_crater_version_601.php @@ -1,27 +1,23 @@ string('value')->nullable()->change(); @@ -20,11 +18,9 @@ class UpdateValueColumnToNullableOnSettingsTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php b/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php index d43f6c0d..cf24295b 100644 --- a/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php +++ b/database/migrations/2022_03_02_120210_add_overdue_to_invoices_table.php @@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddOverdueToInvoicesTable extends Migration +return new class extends Migration { /** * Run the migrations. - * - * @return void */ - public function up() + public function up(): void { Schema::table('invoices', function (Blueprint $table) { $table->boolean('overdue')->default(false); @@ -20,13 +18,11 @@ class AddOverdueToInvoicesTable extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('invoices', function (Blueprint $table) { $table->dropColumn(['overdue']); }); } -} +}; diff --git a/database/migrations/2022_03_03_060121_crater_version_605.php b/database/migrations/2022_03_03_060121_crater_version_605.php index d408f1ae..7796cb51 100644 --- a/database/migrations/2022_03_03_060121_crater_version_605.php +++ b/database/migrations/2022_03_03_060121_crater_version_605.php @@ -1,27 +1,23 @@ get(); @@ -25,11 +23,9 @@ class ChangeOverDueStatusToSent extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php index 62b64af6..9e8c7eb6 100644 --- a/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php +++ b/database/migrations/2022_03_04_051438_calculate_base_values_for_invoice_items.php @@ -1,17 +1,15 @@ get(); @@ -28,11 +26,9 @@ class CalculateBaseValuesForInvoiceItems extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { // } -} +}; diff --git a/database/migrations/2022_03_06_070829_update_crater_version_606.php b/database/migrations/2022_03_06_070829_update_crater_version_606.php index 15af2bb2..59ec5f15 100644 --- a/database/migrations/2022_03_06_070829_update_crater_version_606.php +++ b/database/migrations/2022_03_06_070829_update_crater_version_606.php @@ -1,27 +1,23 @@ dropColumn('generated_conversions'); diff --git a/database/migrations/2024_02_04_005632_update_version_100.php b/database/migrations/2024_02_04_005632_update_version_100.php index fbdbbbea..db039810 100644 --- a/database/migrations/2024_02_04_005632_update_version_100.php +++ b/database/migrations/2024_02_04_005632_update_version_100.php @@ -1,7 +1,7 @@ bigInteger('amount')->change(); @@ -20,13 +18,11 @@ class TaxesAmountAsSigned extends Migration /** * Reverse the migrations. - * - * @return void */ - public function down() + public function down(): void { Schema::table('taxes', function (Blueprint $table) { $table->unsignedBigInteger('amount')->change(); }); } -} +}; diff --git a/database/migrations/2024_02_11_075831_update_version_110.php b/database/migrations/2024_02_11_075831_update_version_110.php index 69227518..fa65cb57 100644 --- a/database/migrations/2024_02_11_075831_update_version_110.php +++ b/database/migrations/2024_02_11_075831_update_version_110.php @@ -1,8 +1,8 @@ replaceModelTypes('InvoiceShelf', 'App'); + $this->replaceModelTypes('Crater', 'App'); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + $this->replaceModelTypes('App', 'InvoiceShelf'); + } + + /** + * Replace model types in the specified tables. + */ + private function replaceModelTypes(string $from, string $to): void + { + $mappings = [ + 'media' => 'model_type', + 'email_logs' => 'mailable_type', + 'notifications' => 'notifiable_type', + 'personal_access_tokens' => 'tokenable_type', + 'custom_fields' => 'model_type', + 'custom_field_values' => 'custom_field_valuable_type', + 'abilities' => 'entity_type', + 'assigned_roles' => 'entity_type', + ]; + + foreach ($mappings as $table => $column) { + DB::table($table)->update([$column => DB::raw("REPLACE($column, '$from', '$to')")]); + } + } +}; diff --git a/database/migrations/2024_07_17_113642_create_cache_table.php b/database/migrations/2024_07_17_113642_create_cache_table.php new file mode 100644 index 00000000..b9c106be --- /dev/null +++ b/database/migrations/2024_07_17_113642_create_cache_table.php @@ -0,0 +1,35 @@ +string('key')->primary(); + $table->mediumText('value'); + $table->integer('expiration'); + }); + + Schema::create('cache_locks', function (Blueprint $table) { + $table->string('key')->primary(); + $table->string('owner'); + $table->integer('expiration'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cache'); + Schema::dropIfExists('cache_locks'); + } +}; diff --git a/database/migrations/2024_07_17_113702_create_jobs_table.php b/database/migrations/2024_07_17_113702_create_jobs_table.php new file mode 100644 index 00000000..6098d9b1 --- /dev/null +++ b/database/migrations/2024_07_17_113702_create_jobs_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jobs'); + } +}; diff --git a/database/seeders/CountriesTableSeeder.php b/database/seeders/CountriesTableSeeder.php index 6191ac79..937d978f 100755 --- a/database/seeders/CountriesTableSeeder.php +++ b/database/seeders/CountriesTableSeeder.php @@ -9,10 +9,8 @@ class CountriesTableSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { DB::table('countries')->delete(); $countries = [ diff --git a/database/seeders/CurrenciesTableSeeder.php b/database/seeders/CurrenciesTableSeeder.php index b6cc6d98..aca775ca 100644 --- a/database/seeders/CurrenciesTableSeeder.php +++ b/database/seeders/CurrenciesTableSeeder.php @@ -2,17 +2,15 @@ namespace Database\Seeders; +use App\Models\Currency; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Currency; class CurrenciesTableSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $currencies = [ [ diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 96eb3470..aa953ec7 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -8,10 +8,8 @@ class DatabaseSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $this->call(CurrenciesTableSeeder::class); $this->call(CountriesTableSeeder::class); diff --git a/database/seeders/DemoSeeder.php b/database/seeders/DemoSeeder.php index 8da0d714..dc30403a 100644 --- a/database/seeders/DemoSeeder.php +++ b/database/seeders/DemoSeeder.php @@ -2,20 +2,18 @@ namespace Database\Seeders; +use App\Models\Address; +use App\Models\Setting; +use App\Models\User; +use App\Space\InstallUtils; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Address; -use InvoiceShelf\Models\Setting; -use InvoiceShelf\Models\User; -use InvoiceShelf\Space\InstallUtils; class DemoSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $user = User::whereIs('super admin')->first(); diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index d5d602fe..4b119e30 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -2,10 +2,11 @@ namespace Database\Seeders; +use App\Models\Company; +use App\Models\Setting; +use App\Models\User; +use App\Space\InstallUtils; use Illuminate\Database\Seeder; -use InvoiceShelf\Models\Company; -use InvoiceShelf\Models\Setting; -use InvoiceShelf\Models\User; use Silber\Bouncer\BouncerFacade; use Vinkla\Hashids\Facades\Hashids; @@ -13,10 +14,8 @@ class UsersTableSeeder extends Seeder { /** * Run the database seeds. - * - * @return void */ - public function run() + public function run(): void { $user = User::create([ 'email' => 'admin@invoiceshelf.com', @@ -40,5 +39,7 @@ class UsersTableSeeder extends Seeder $user->assign('super admin'); Setting::setSetting('profile_complete', 0); + // Set version. + InstallUtils::setCurrentVersion(); } } diff --git a/database/stubs/sqlite.empty.db b/database/stubs/sqlite.empty.db new file mode 100644 index 00000000..2e2372f9 Binary files /dev/null and b/database/stubs/sqlite.empty.db differ diff --git a/lang/ar.json b/lang/ar.json index 9c9749ff..c6ed2909 100644 --- a/lang/ar.json +++ b/lang/ar.json @@ -304,6 +304,9 @@ "record_payment": "تسجيل مدفوات", "add_estimate": "إضافة تقدير", "save_estimate": "حفظ التقدير", + "cloned_successfully": "تم استنساخ العرض بنجاح", + "clone_estimate": "استنساخ العرض", + "confirm_clone": "سيتم استنساخ هذا العرض إلى عرض جديد", "confirm_conversion": "هل تريد تحويل هذا التقدير إلى فاتورة؟", "conversion_message": "تم إنشاء الفاتورة بنجاح", "confirm_send_estimate": "سيتم إرسال هذا التقدير بالبريد الإلكتروني إلى العميل", diff --git a/lang/cs.json b/lang/cs.json index c7577fa6..64c9c9bb 100644 --- a/lang/cs.json +++ b/lang/cs.json @@ -304,6 +304,9 @@ "record_payment": "Zaznamenat platbu", "add_estimate": "Přidat nabídku", "save_estimate": "Uložit nabídku", + "cloned_successfully": "Devis úspěšně zkopírován", + "clone_estimate": "Klonovat devis", + "confirm_clone": "Tento devis bude zkopírován do nového devisu", "confirm_conversion": "Tento odhad bude použit k vytvoření nové faktury.", "conversion_message": "Faktura byla úspěšně vytvořena", "confirm_send_estimate": "Tento odhad bude zaslán e-mailem zákazníkovi", diff --git a/lang/de.json b/lang/de.json index 985fc411..f57caec7 100644 --- a/lang/de.json +++ b/lang/de.json @@ -304,6 +304,9 @@ "record_payment": "Zahlung erfassen", "add_estimate": "Angebote hinzufügen", "save_estimate": "Angebot speichern", + "cloned_successfully": "Angebot erfolgreich geklont", + "clone_estimate": "Angebot klonen", + "confirm_clone": "Dieses Angebot wird in ein neues Angebot kopiert", "confirm_conversion": "Dieses Angebot wird verwendet, um eine neue Rechnung zu erstellen.", "conversion_message": "Rechnung erfolgreich erstellt", "confirm_send_estimate": "Das Angebot wird per E-Mail an den Kunden gesendet", diff --git a/lang/el.json b/lang/el.json index 73216823..12375cf9 100644 --- a/lang/el.json +++ b/lang/el.json @@ -304,6 +304,9 @@ "record_payment": "Καταγραφή Πληρωμής", "add_estimate": "Νέα Εκτίμηση", "save_estimate": "Νέα Εκτίμηση", + "cloned_successfully": "Η προσφορά κλωνοποιήθηκε με επιτυχία", + "clone_estimate": "Κλωνοποίηση προσφοράς", + "confirm_clone": "Αυτή η προσφορά θα κλωνοποιηθεί σε μια νέα προσφορά", "confirm_conversion": "Αυτή η εκτίμηση θα χρησιμοποιηθεί για τη δημιουργία ενός νέου τιμολογίου.", "conversion_message": "Το τιμολόγιο κλωνοποιήθηκε επιτυχώς", "confirm_send_estimate": "Αυτό το τιμολόγιο θα αποσταλεί μέσω email στον πελάτη", diff --git a/lang/en.json b/lang/en.json index 9e042c29..9ee17e8c 100644 --- a/lang/en.json +++ b/lang/en.json @@ -100,16 +100,35 @@ "pay_invoice": "Pay Invoice", "login_successfully": "Logged in successfully!", "logged_out_successfully": "Logged out successfully", - "mark_as_default": "Mark as default" + "mark_as_default": "Mark as default", + "no_data_found": "No data found", + "pagination": { + "previous": "Previous", + "next": "Next", + "showing": "Showing", + "to": "to", + "of": "of", + "results": "results" + }, + "file_upload": { + "drag_a_file": "Drag a file here or", + "browse": "browse", + "to_choose": "to choose a file" + }, + "multiselect": { + "the_list_is_empty": "The list is empty", + "no_results_found": "No results found" + }, + "copy_to_clipboard": "Copy to Clipboard" }, "dashboard": { "select_year": "Select year", "cards": { "due_amount": "Amount Due", - "customers": "Customers", - "invoices": "Invoices", - "estimates": "Estimates", - "payments": "Payments" + "customers": "Customer | Customers", + "invoices": "Invoice | Invoices", + "estimates": "Estimate | Estimates", + "payments": "Payment | Payments" }, "chart_info": { "total_sales": "Sales", @@ -304,6 +323,9 @@ "record_payment": "Record Payment", "add_estimate": "Add Estimate", "save_estimate": "Save Estimate", + "cloned_successfully": "Estimate cloned successfully", + "clone_estimate": "Clone Estimate", + "confirm_clone": "This Estimate will be cloned into a new Estimate", "confirm_conversion": "This estimate will be used to create a new Invoice.", "conversion_message": "Invoice created successful", "confirm_send_estimate": "This estimate will be sent via email to the customer", @@ -548,7 +570,18 @@ "hour": "Hour", "day_month": "Day of month", "month": "Month", - "day_week": "Day of week" + "day_week": "Day of week", + "every_minute": "Every Minute", + "every_30_minute": "Every 30 Minute", + "every_hour": "Every Hour", + "every_2_hour": "Every 2 Hour", + "every_day_at_midnight": "Every day at midnight", + "every_week": "Every Week", + "every_15_days_at_midnight": "Every 15 days at midnight", + "on_the_first_day_of_every_month_at_midnight": "On the first day of every month at 00:00", + "every_6_month": "Every 6 Month", + "every_year_on_the_first_day_of_january_at_midnight": "Every year on the first day of january at 00:00", + "custom": "Custom" }, "confirm_delete": "You will not be able to recover this Invoice | You will not be able to recover these Invoices", "created_message": "Recurring Invoice created successfully", @@ -557,7 +590,12 @@ "marked_as_sent_message": "Recurring Invoice marked as sent successfully", "user_email_does_not_exist": "User email does not exist", "something_went_wrong": "something went wrong", - "invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue." + "invalid_due_amount_message": "Total Recurring Invoice amount cannot be less than total paid amount for this Recurring Invoice. Please update the invoice or delete the associated payments to continue.", + "limit": { + "none": "None", + "date": "Date", + "count": "Count" + } }, "payments": { "title": "Payments", @@ -595,7 +633,8 @@ "created_message": "Payment created successfully", "updated_message": "Payment updated successfully", "deleted_message": "Payment deleted successfully | Payments deleted successfully", - "invalid_amount_message": "Payment amount is invalid" + "invalid_amount_message": "Payment amount is invalid", + "amount_due": "Due Amount" }, "expenses": { "title": "Expenses", @@ -700,7 +739,8 @@ "installed": "Installed", "no_modules_installed": "No Modules Installed Yet!", "disable_warning": "All the settings for this particular will be reverted.", - "what_you_get": "What you get" + "what_you_get": "What you get", + "sign_up_and_get_token": "Sign up & Get Token" }, "users": { "title": "Users", @@ -752,7 +792,11 @@ "date_range": "Select Date Range", "to_date": "To Date", "from_date": "From Date", - "report_type": "Report Type" + "report_type": "Report Type", + "sort": { + "by_customer": "By Customer", + "by_item": "By Item" + } }, "taxes": { "taxes": "Taxes", @@ -920,7 +964,14 @@ "added_message": "Custom Field added successfully", "press_enter_to_add": "Press enter to add new option", "model_in_use": "Cannot update model for fields which are already in use.", - "type_in_use": "Cannot update type for fields which are already in use." + "type_in_use": "Cannot update type for fields which are already in use.", + "model_type": { + "customer": "Customer", + "invoice": "Invoice", + "estimate": "Estimate", + "expense": "Expense", + "payment": "Payment" + } }, "customization": { "customization": "customization", @@ -1041,7 +1092,12 @@ "note_updated": "Note Updated successfully", "note_confirm_delete": "You will not be able to recover this Note", "already_in_use": "Note is already in use", - "deleted_message": "Note deleted successfully" + "deleted_message": "Note deleted successfully", + "types": { + "estimate": "Estimate", + "invoice": "Invoice", + "payment": "Payment" + } } }, "account_settings": { @@ -1196,12 +1252,27 @@ "on_hold": "On Hold", "update_status": "Update Status", "completed": "Completed", - "company_currency_unchangeable": "Company currency cannot be changed" + "company_currency_unchangeable": "Company currency cannot be changed", + "fiscal_years": { + "january_december": "January - December", + "february_january": "February - January", + "march_february": "March - February", + "april_march": "April - March", + "may_april": "May - April", + "june_may": "June - May", + "july_june": "July - June", + "august_july": "August - July", + "september_august": "September - August", + "october_september": "October - September", + "november_october": "November - October", + "december_november": "December - November" + } }, "update_app": { "title": "Update App", "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", + "insider_consent" : "Opt-in for Insider releases. Recommended for testing purposes only.", "avail_update": "New Update available", "next_version": "Next version", "requirements": "Requirements", @@ -1355,6 +1426,10 @@ "next": "Next", "continue": "Continue", "skip": "Skip", + "install_language": { + "title": "Choose your language", + "description": "Select language wizard to install InvoiceShelf" + }, "database": { "database": "Site URL & Database", "connection": "Database Connection", @@ -1366,6 +1441,7 @@ "username": "Database Username", "db_name": "Database Name", "db_path": "Database Path", + "overwrite": "Overwrite existing database and proceed", "desc": "Create a database on your server and set the credentials using the form below." }, "permissions": { @@ -1381,7 +1457,14 @@ "verify_now": "Verify Now", "success": "Domain Verify Successfully.", "failed": "Domain verification failed. Please enter valid domain name.", - "verify_and_continue": "Verify And Continue" + "verify_and_continue": "Verify And Continue", + "notes": { + "notes" : "Notes:", + "not_contain" : "App domain should not contain", + "or" : "or", + "in_front": "in front of the domain.", + "if_you": "If you're accessing the website on a different port, please mention the port. For example:" + } }, "mail": { "host": "Mail Host", @@ -1532,5 +1615,14 @@ "pdf_received_from": "Received from:", "pdf_tax_label": "Tax", "pdf_tax_id": "Tax-ID", - "pdf_vat_id": "VAT-ID" + "pdf_vat_id": "VAT-ID", + "mail_thanks": "Thanks", + "mail_view_estimate":"View Estimate", + "mail_viewed_estimate": ":name viewed this Estimate.", + "mail_view_invoice": "View Invoice", + "mail_viewed_invoice": ":name viewed this Invoice.", + "mail_view_payment": "View Payment", + "notification_view_estimate": "[Notification] Estimate viewed", + "notification_view_invoice": "[Notification] Invoice viewed", + "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:": "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:" } diff --git a/lang/es.json b/lang/es.json index 0800673d..5b547018 100644 --- a/lang/es.json +++ b/lang/es.json @@ -304,6 +304,9 @@ "record_payment": "Registro de pago", "add_estimate": "Agregar presupuesto", "save_estimate": "Guardar presupuesto", + "cloned_successfully": "Presupuesto clonado con éxito", + "clone_estimate": "Clonar presupuesto", + "confirm_clone": "Este presupuesto será clonado en un nuevo presupuesto", "confirm_conversion": "¿Quiere convertir este presupuesto en una factura?", "conversion_message": "Conversión exitosa", "confirm_send_estimate": "Este presupuesto se enviará por correo electrónico al cliente", diff --git a/lang/fr.json b/lang/fr.json index 28410ad1..c544e72e 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -100,16 +100,35 @@ "pay_invoice": "Payer facture", "login_successfully": "Identifié avec succès!", "logged_out_successfully": "Déconnecté avec succès", - "mark_as_default": "Marquer par défaut" + "mark_as_default": "Marquer par défaut", + "no_data_found": "Aucune donnée pour le moment", + "pagination": { + "previous": "Précédent", + "next": "Suivant", + "showing": "Affichage de", + "to": "à", + "of": "sur", + "results": "résultats" + }, + "file_upload": { + "drag_a_file": "Déposez un fichier ici ou", + "browse": "parcourez", + "to_choose": "pour choisir un fichier" + }, + "multiselect": { + "the_list_is_empty": "La liste est vide", + "no_results_found": "Aucun résultat" + }, + "copy_to_clipboard": "Copier dans le presse-papier" }, "dashboard": { "select_year": "Sélectionnez l'année", "cards": { "due_amount": "Encours clients", - "customers": "Clients", - "invoices": "Factures", - "estimates": "Devis", - "payments": "Paiements" + "customers": "Client | Clients", + "invoices": "Facture | Factures", + "estimates": "Devis | Devis", + "payments": "Paiement | Paiements" }, "chart_info": { "total_sales": "Ventes", @@ -304,6 +323,9 @@ "record_payment": "Enregistrer un paiement", "add_estimate": "Nouveau devis", "save_estimate": "Enregistrer", + "cloned_successfully": "Devis dupliqué avec succès", + "clone_estimate": "Dupliquer le devis", + "confirm_clone": "Ce devis sera dupliqué dans un nouveau devis", "confirm_conversion": "Ce devis sera utilisé pour créer une nouvelle facture.", "conversion_message": "Conversion réussie", "confirm_send_estimate": "Ce devis sera envoyée par email au client", @@ -548,7 +570,18 @@ "hour": "Heure", "day_month": "Jour du mois", "month": "Mois", - "day_week": "Jour de la semaine" + "day_week": "Jour de la semaine", + "every_minute": "Toutes les minutes", + "every_30_minute": "Toutes les 30 minutes", + "every_hour": "Toutes les heures", + "every_2_hour": "Toutes les 2 heures", + "every_day_at_midnight": "Tous les jours à minuit", + "every_week": "Toutes les semaines", + "every_15_days_at_midnight": "Tous les 15 jours à minuit", + "on_the_first_day_of_every_month_at_midnight": "Au premier jour du mois à minuit", + "every_6_month": "Tous les 6 mois", + "every_year_on_the_first_day_of_january_at_midnight": "Tous les ans, au premier janvier à minuit", + "custom": "Personnalisée" }, "confirm_delete": "Vous ne pourrez pas récupérer cette facture | Vous ne pourrez pas récupérer ces factures", "created_message": "Facture récurrente créée", @@ -557,7 +590,12 @@ "marked_as_sent_message": "Facture récurrente envoyée", "user_email_does_not_exist": "L'email de l'utilisateur n'existe pas", "something_went_wrong": "une erreur s’est produite", - "invalid_due_amount_message": "Le montant total de la facture récurrente ne peut pas être inférieur au montant total payé pour cette facture récurrente. Veuillez mettre à jour la facture ou supprimer les paiements associés pour continuer." + "invalid_due_amount_message": "Le montant total de la facture récurrente ne peut pas être inférieur au montant total payé pour cette facture récurrente. Veuillez mettre à jour la facture ou supprimer les paiements associés pour continuer.", + "limit": { + "none": "Aucun", + "date": "Date", + "count": "Nombre" + } }, "payments": { "title": "Paiements", @@ -595,7 +633,8 @@ "created_message": "Paiement créé", "updated_message": "Paiement mis à jour", "deleted_message": "Paiement supprimé | Paiements supprimés", - "invalid_amount_message": "Le montant du paiement est invalide" + "invalid_amount_message": "Le montant du paiement est invalide", + "amount_due": "Montant dû" }, "expenses": { "title": "Dépenses", @@ -700,7 +739,8 @@ "installed": "Installé", "no_modules_installed": "Aucun module installé !", "disable_warning": "Tous les paramètres de ce module seront réinitialisés.", - "what_you_get": "Ce que vous obtenez" + "what_you_get": "Ce que vous obtenez", + "sign_up_and_get_token": "Inscrivez-vous et obtenez votre Jeton" }, "users": { "title": "Utilisateurs", @@ -752,7 +792,11 @@ "date_range": "Période", "to_date": "Au", "from_date": "Du", - "report_type": "Trier" + "report_type": "Trier", + "sort": { + "by_customer": "Par Client", + "by_item": "Par Article" + } }, "taxes": { "taxes": "Taxes", @@ -863,6 +907,8 @@ "company_info": { "company_info": "Coordonnées de la société", "company_name": "Nom", + "tax_id": "Numéro d'identification fiscale", + "vat_id": "Numéro d'identification TVA", "company_logo": "Logo", "section_description": "Saisissez ici les coordonnées de votre entreprise qui s'afficheront sur tous vos documents.", "phone": "Téléphone", @@ -918,7 +964,14 @@ "added_message": "Champ personnalisé ajouté", "press_enter_to_add": "Appuyez sur Entrée pour ajouter une nouvelle option", "model_in_use": "Impossible de mettre à jour le modèle pour les champs qui sont déjà utilisés.", - "type_in_use": "Impossible de mettre à jour le type des champs déjà utilisés." + "type_in_use": "Impossible de mettre à jour le type des champs déjà utilisés.", + "model_type": { + "customer": "Client", + "invoice": "Facture", + "estimate": "Devis", + "expense": "Dépense", + "payment": "Paiement" + } }, "customization": { "customization": "Personnalisation", @@ -1039,7 +1092,12 @@ "note_updated": "Note de bas de page mise à jour", "note_confirm_delete": "Vous ne pourrez pas récupérer cette note de bas de page", "already_in_use": "La note de bas de page est déjà utilisée", - "deleted_message": "Note de bas de page supprimée" + "deleted_message": "Note de bas de page supprimée", + "types": { + "estimate": "Devis", + "invoice": "Facture", + "payment": "Paiement" + } } }, "account_settings": { @@ -1194,7 +1252,21 @@ "on_hold": "En attente", "update_status": "Mettre à jour le statut", "completed": "Terminé", - "company_currency_unchangeable": "La devise de la société ne peut pas être modifiée" + "company_currency_unchangeable": "La devise de la société ne peut pas être modifiée", + "fiscal_years": { + "january_december": "Janvier - Décembre", + "february_january": "Février - Janvier", + "march_february": "Mars - Février", + "april_march": "Avril - Mars", + "may_april": "Mai - Avril", + "june_may": "Juin - Mai", + "july_june": "Juillet - Juin", + "august_july": "Aout - Juillet", + "september_august": "Septembre - Aout", + "october_september": "Octobre - Septembre", + "november_october": "Novembre - Octobre", + "december_november": "Décembre - Novembre" + } }, "update_app": { "title": "Mise à jour", @@ -1267,6 +1339,12 @@ "aws_region": "Région AWS", "aws_bucket": "Bucket", "aws_root": "Répertoire", + "s3_endpoint": "S3 Endpoint", + "s3_key": "S3 Key", + "s3_secret": "S3 Secret", + "s3_region": "S3 Region", + "s3_bucket": "S3 Bucket", + "s3_root": "S3 Root", "do_spaces_type": "Type", "do_spaces_key": "Key", "do_spaces_secret": "Secret", @@ -1347,6 +1425,10 @@ "next": "Suivant", "continue": "Poursuivre", "skip": "Ignorer", + "install_language": { + "title": "Choix de la langue", + "description": "Sélectionner la langue de l'assistant pour installer InvoiceShelf" + }, "database": { "database": "URL du site et base de données", "connection": "Connexion à la base de données", @@ -1373,7 +1455,14 @@ "verify_now": "Vérifier maintenant", "success": "Vérification du domaine réussie.", "failed": "La vérification du domaine a échoué. Veuillez entrer un nom de domaine valide.", - "verify_and_continue": "Vérifier et continuer" + "verify_and_continue": "Vérifier et continuer", + "notes": { + "notes" : "Notes :", + "not_contain" : "Le domaine de l'application ne doit pas contenir", + "or" : "ou", + "in_front": "devant le domaine.", + "if_you": "Si vous accédez au site Web sur un autre port, veuillez mentionner le port. Par exemple :" + } }, "mail": { "host": "Serveur email", @@ -1522,5 +1611,16 @@ "pdf_bill_to": "Facturer à", "pdf_ship_to": "Expédier à", "pdf_received_from": "Reçu de :", - "pdf_tax_label": "Taxe" + "pdf_tax_label": "Taxe", + "pdf_tax_id": "Tax-ID", + "pdf_vat_id": "VAT-ID", + "mail_thanks": "Merci", + "mail_view_estimate":"Voir le Devis", + "mail_viewed_estimate": ":name a consulté ce Devis.", + "mail_view_invoice": "Voir la Facture", + "mail_viewed_invoice": ":name a consulté cette Facture.", + "mail_view_payment": "Voir le Paiement", + "notification_view_estimate": "[Notification] Un Devis a été consulté", + "notification_view_invoice": "[Notification] Une Facture a été consultée", + "You have received a new invoice from {COMPANY_NAME}.
Please download using the button below:": "Vous avez reçu une nouvelle facture de {COMPANY_NAME}.
Vous pouvez la télécharger en cliquant sur le bouton :" } diff --git a/lang/it.json b/lang/it.json index 02df0b52..3ddaef01 100644 --- a/lang/it.json +++ b/lang/it.json @@ -304,6 +304,9 @@ "record_payment": "Registra Pagamento", "add_estimate": "Aggiungi Preventivo", "save_estimate": "Salva Preventivo", + "cloned_successfully": "Preventivo clonato con successo", + "clone_estimate": "Clonare preventivo", + "confirm_clone": "Questo preventivo sarà clonato in un nuovo preventivo", "confirm_conversion": "Questo preventivo verrà usato per generare una nuova fattura.", "conversion_message": "Fattura creata", "confirm_send_estimate": "Questo preventivo verrà inviato al cliente via mail", diff --git a/lang/ja.json b/lang/ja.json index 7a232d10..d57ac936 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -304,6 +304,9 @@ "record_payment": "Record Payment", "add_estimate": "Add Estimate", "save_estimate": "Save Estimate", + "cloned_successfully": "見積もりが正常にクローンされました", + "clone_estimate": "見積もりをクローン", + "confirm_clone": "この見積もりは新しい見積もりにクローンされます", "confirm_conversion": "This estimate will be used to create a new Invoice.", "conversion_message": "Invoice created successful", "confirm_send_estimate": "This estimate will be sent via email to the customer", diff --git a/lang/ko.json b/lang/ko.json index c2625302..b34c19f0 100644 --- a/lang/ko.json +++ b/lang/ko.json @@ -258,6 +258,9 @@ "record_payment": "기록 지불", "add_estimate": "견적 추가", "save_estimate": "견적 저장", + "cloned_successfully": "견적이 성공적으로 복제되었습니다", + "clone_estimate": "견적 복제", + "confirm_clone": "이 견적은 새로운 견적으로 복제될 것입니다", "confirm_conversion": "이 견적은 새 인보이스를 만드는 데 사용됩니다.", "conversion_message": "인보이스가 성공적으로 생성되었습니다.", "confirm_send_estimate": "이 견적은 이메일을 통해 고객에게 전송됩니다.", diff --git a/lang/lv.json b/lang/lv.json index c0f43e82..45b393c6 100644 --- a/lang/lv.json +++ b/lang/lv.json @@ -304,6 +304,9 @@ "record_payment": "Izveidot maksājumu", "add_estimate": "Pievienot aprēķinu", "save_estimate": "Saglabāt aprēķinu", + "cloned_successfully": "Piedāvājums veiksmīgi klonēts", + "clone_estimate": "Klonēt piedāvājumu", + "confirm_clone": "Šis piedāvājums tiks klonēts jaunā piedāvājumā", "confirm_conversion": "Šis aprēķins tiks izmantots, lai izveidotu jaunu rēķinu.", "conversion_message": "Rēķins izveidots veiksmīgi", "confirm_send_estimate": "Šis aprēķins tiks nosūtīts klientam e-pastā", diff --git a/lang/nl.json b/lang/nl.json index ab77bc9b..97ea6b37 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -304,6 +304,9 @@ "record_payment": "Betaling registreren", "add_estimate": "Offerte toevoegen", "save_estimate": "Bewaar offerte", + "cloned_successfully": "Offerte succesvol gekloond", + "clone_estimate": "Offerte klonen", + "confirm_clone": "Deze offerte zal worden gekopieerd naar een nieuwe offerte", "confirm_conversion": "Deze offerte wordt gebruikt om een nieuwe factuur te maken.", "conversion_message": "Factuur gemaakt", "confirm_send_estimate": "Deze offerte wordt via e-mail naar de klant gestuurd", diff --git a/lang/pl.json b/lang/pl.json index 56f5183d..9c070f2b 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -304,6 +304,9 @@ "record_payment": "Zarejestruj płatność", "add_estimate": "Dodaj ofertę", "save_estimate": "Zapisz ofertę", + "cloned_successfully": "Oferta została pomyślnie sklonowana", + "clone_estimate": "Sklonuj ofertę", + "confirm_clone": "Ta oferta zostanie sklonowana do nowej oferty", "confirm_conversion": "Ta oferta zostanie użyta do utworzenia nowej faktury.", "conversion_message": "Faktura została utworzona pomyślnie", "confirm_send_estimate": "Ta oferta zostanie wysłana pocztą elektroniczną do kontrahenta", diff --git a/lang/pt-br.json b/lang/pt-br.json index a666641e..4a394d62 100644 --- a/lang/pt-br.json +++ b/lang/pt-br.json @@ -237,6 +237,9 @@ "record_payment": "Registro de pago", "add_estimate": "Adicionar orçamento", "save_estimate": "Salvar Orçamento", + "cloned_successfully": "Orçamento clonado com sucesso", + "clone_estimate": "Clonar orçamento", + "confirm_clone": "Este orçamento será clonado em um novo orçamento", "confirm_conversion": "Deseja converter este orçamento em uma fatura?", "conversion_message": "Converção realizada com sucesso", "confirm_send_estimate": "Este orçamento será enviado por email ao cliente", diff --git a/lang/sk.json b/lang/sk.json index 812763aa..308540f9 100644 --- a/lang/sk.json +++ b/lang/sk.json @@ -304,6 +304,9 @@ "record_payment": "Zaznamenať Platbu", "add_estimate": "Vytvoriť Cenový odhad", "save_estimate": "Uložiť Cenový odhad", + "cloned_successfully": "Ponuka úspešne skopírovaná", + "clone_estimate": "Klonovať ponuku", + "confirm_clone": "Táto ponuka bude skopírovaná do novej ponuky", "confirm_conversion": "Tento cenový odhad bude použitý k vytvoreniu novej Faktúry.", "conversion_message": "Faktúra úspešne vytvorená", "confirm_send_estimate": "Tento Cenový odhad bude odoslaný zákazníkovi prostredníctvom e-mailu", diff --git a/lang/sr.json b/lang/sr.json index 1b4e762e..af1a37f6 100644 --- a/lang/sr.json +++ b/lang/sr.json @@ -304,6 +304,9 @@ "record_payment": "Unesi uplatu", "add_estimate": "Dodaj Profakturu", "save_estimate": "Sačuvaj Profakturu", + "cloned_successfully": "Ponuda uspešno klonirana", + "clone_estimate": "Kloniraj ponudu", + "confirm_clone": "Ova ponuda će biti klonirana u novu ponudu", "confirm_conversion": "Detalji ove Profakture će biti iskorišćeni za pravljenje Fakture.", "conversion_message": "Faktura uspešno kreirana", "confirm_send_estimate": "Ova Profaktura će biti poslata putem Email-a klijentu", diff --git a/lang/sv.json b/lang/sv.json index 92d79a6e..434bf9e2 100644 --- a/lang/sv.json +++ b/lang/sv.json @@ -304,6 +304,9 @@ "record_payment": "Registrera betalning", "add_estimate": "Lägg till kostnadsförslag", "save_estimate": "Spara kostnadsförslag", + "cloned_successfully": "Offert klonades framgångsrikt", + "clone_estimate": "Klona offert", + "confirm_clone": "Denna offert kommer att klonas till en ny offert", "confirm_conversion": "Detta kostnadsförslag används för att skapa ny faktura.", "conversion_message": "Faktura skapades", "confirm_send_estimate": "Detta kostnadsförslag skickas via epost till kund", diff --git a/lang/th.json b/lang/th.json index 32449b09..6ae04fe6 100644 --- a/lang/th.json +++ b/lang/th.json @@ -303,6 +303,9 @@ "record_payment": "บันทึกการชำระเงิน", "add_estimate": "เพิ่มค่าใบเสนอราคา", "save_estimate": "บันทึกใบเสนอราคา", + "cloned_successfully": "โคลนข้อเสนอสำเร็จ", + "clone_estimate": "โคลนข้อเสนอ", + "confirm_clone": "ข้อเสนอนี้จะถูกโคลนเป็นข้อเสนอใหม่", "confirm_conversion": "ใบเสนอราคานี้จะใช้ในการสร้างใบวางบิลใหม่", "conversion_message": "ใบวางบิลที่สร้างเสร็จสมบูรณ์", "confirm_send_estimate": "ใบเสนอราคานี้จะถูกส่งผ่านทางอีเมลถึงลูกค้า", diff --git a/package.json b/package.json index d56e22e9..a06915b3 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "vite build", "serve": "vite preview", "test": "eslint ./resources/scripts --ext .js,.vue" @@ -40,7 +40,7 @@ "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", "@vueuse/core": "^10.7.2", - "axios": "^0.27.2", + "axios": "0.28.1", "chart.js": "^2.9.4", "guid": "0.0.12", "laravel-vite-plugin": "^1.0.0", @@ -52,7 +52,7 @@ "pinia": "^2.1.7", "v-money3": "^3.24.1", "v-tooltip": "^4.0.0-beta.17", - "vite": "^5.0.0", + "vite": "5.3.5", "vue": "^3.4", "vue-flatpickr-component": "^11.0.3", "vue-i18n": "^9.9.0", diff --git a/phpunit.xml b/phpunit.xml index ea3fbc78..fe0cdc21 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -9,15 +9,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/public/index.php b/public/index.php index d99f5424..947d9896 100644 --- a/public/index.php +++ b/public/index.php @@ -1,62 +1,17 @@ - */ +use Illuminate\Http\Request; + define('LARAVEL_START', microtime(true)); -if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) { - require __DIR__.'/../storage/framework/maintenance.php'; +// Determine if the application is in maintenance mode... +if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { + require $maintenance; } -/* -|-------------------------------------------------------------------------- -| Register The Auto Loader -|-------------------------------------------------------------------------- -| -| Composer provides a convenient, automatically generated class loader for -| our application. We just need to utilize it! We'll simply require it -| into the script here so that we don't have to worry about manual -| loading any of our classes later on. It feels great to relax. -| -*/ - +// Register the Composer autoloader... require __DIR__.'/../vendor/autoload.php'; -/* -|-------------------------------------------------------------------------- -| Turn On The Lights -|-------------------------------------------------------------------------- -| -| We need to illuminate PHP development, so let us turn on the lights. -| This bootstraps the framework and gets it ready for use, then it -| will load up this application so that we can run it and send -| the responses back to the browser and delight our users. -| -*/ - -$app = require_once __DIR__.'/../bootstrap/app.php'; - -/* -|-------------------------------------------------------------------------- -| Run The Application -|-------------------------------------------------------------------------- -| -| Once we have the application, we can handle the incoming request -| through the kernel, and send the associated response back to -| the client's browser allowing them to enjoy the creative -| and wonderful application we have prepared for them. -| -*/ - -$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); - -$response = $kernel->handle( - $request = Illuminate\Http\Request::capture() -); - -$response->send(); - -$kernel->terminate($request, $response); +// Bootstrap Laravel and handle the request... +(require_once __DIR__.'/../bootstrap/app.php') + ->handleRequest(Request::capture()); diff --git a/resources/scripts/admin/components/CopyInputField.vue b/resources/scripts/admin/components/CopyInputField.vue index 851a0bc4..a4995820 100644 --- a/resources/scripts/admin/components/CopyInputField.vue +++ b/resources/scripts/admin/components/CopyInputField.vue @@ -26,7 +26,7 @@ {{ token }} + + {{ $t('estimates.clone_estimate') }} + + { + if (res) { + estimateStore.cloneEstimate(data).then((res) => { + router.push(`/admin/estimates/${res.data.data.id}/edit`) + }) + } + }) +} diff --git a/resources/scripts/admin/components/modal-components/CustomerModal.vue b/resources/scripts/admin/components/modal-components/CustomerModal.vue index 8c2ffe3b..14dbcf86 100644 --- a/resources/scripts/admin/components/modal-components/CustomerModal.vue +++ b/resources/scripts/admin/components/modal-components/CustomerModal.vue @@ -178,7 +178,7 @@ v$.confirm_password.$errors[0].$message " :content-loading="isFetchingInitialData" - label="Confirm Password" + :label="$t('customers.confirm_password')" > @@ -122,7 +122,11 @@ const route = useRoute() const { t } = useI18n() let isSaving = ref(false) -const types = reactive(['Invoice', 'Estimate', 'Payment']) +const types = reactive([ + {label: t('settings.customization.notes.types.invoice'), value: 'Invoice'}, + {label: t('settings.customization.notes.types.estimate'), value: 'Estimate'}, + {label: t('settings.customization.notes.types.payment'), value: 'Payment'} +]) let fields = ref(['customer', 'customerCustom']) const modalActive = computed(() => { @@ -164,7 +168,7 @@ watch( onMounted(() => { if (route.name === 'estimates.create') { noteStore.currentNote.type = 'Estimate' - } else if (route.name === 'invoices.create') { + } else if (route.name === 'invoices.create' || route.name === 'recurring-invoices.create') { noteStore.currentNote.type = 'Invoice' } else { noteStore.currentNote.type = 'Payment' diff --git a/resources/scripts/admin/components/modal-components/SendEstimateModal.vue b/resources/scripts/admin/components/modal-components/SendEstimateModal.vue index 795cdfeb..bbdecd82 100644 --- a/resources/scripts/admin/components/modal-components/SendEstimateModal.vue +++ b/resources/scripts/admin/components/modal-components/SendEstimateModal.vue @@ -96,7 +96,7 @@ @click="cancelPreview" > - Edit + {{ $t('general.edit') }} Yes - No + {{ $t('general.yes') }} + {{ $t('general.no') }}

{{ field.default_answer }} diff --git a/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue b/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue index e76e5d5a..9d4af790 100644 --- a/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue +++ b/resources/scripts/admin/views/customers/partials/CustomerViewSidebar.vue @@ -133,7 +133,6 @@

{{ dashboardStore.stats.totalCustomerCount }} @@ -32,7 +32,7 @@ :icon-component="InvoiceIcon" :loading="!dashboardStore.isDashboardDataLoaded" route="/admin/invoices" - :label="$t('dashboard.cards.invoices')" + :label="(dashboardStore.stats.totalInvoiceCount <= 1 ? $t('dashboard.cards.invoices', 1) : $t('dashboard.cards.invoices', 2))" > {{ dashboardStore.stats.totalInvoiceCount }} @@ -43,7 +43,7 @@ :icon-component="EstimateIcon" :loading="!dashboardStore.isDashboardDataLoaded" route="/admin/estimates" - :label="$t('dashboard.cards.estimates')" + :label="(dashboardStore.stats.totalEstimateCount <= 1 ? $t( 'dashboard.cards.estimates', 1) : $t('dashboard.cards.estimates', 2))" > {{ dashboardStore.stats.totalEstimateCount }} diff --git a/resources/scripts/admin/views/dashboard/DashboardTable.vue b/resources/scripts/admin/views/dashboard/DashboardTable.vue index 0decb6a5..136526a7 100644 --- a/resources/scripts/admin/views/dashboard/DashboardTable.vue +++ b/resources/scripts/admin/views/dashboard/DashboardTable.vue @@ -95,7 +95,7 @@ v-if="hasAtleastOneEstimateAbility()" #cell-actions="{ row }" > - +
diff --git a/resources/scripts/admin/views/estimates/Index.vue b/resources/scripts/admin/views/estimates/Index.vue index 90c729aa..1ebe7dc0 100644 --- a/resources/scripts/admin/views/estimates/Index.vue +++ b/resources/scripts/admin/views/estimates/Index.vue @@ -211,12 +211,12 @@ @@ -249,6 +249,7 @@ import abilities from '@/scripts/admin/stub/abilities' import ObservatoryIcon from '@/scripts/components/icons/empty/ObservatoryIcon.vue' import EstimateDropDown from '@/scripts/admin/components/dropdowns/EstimateIndexDropdown.vue' import SendEstimateModal from '@/scripts/admin/components/modal-components/SendEstimateModal.vue' +import BaseEstimateStatusLabel from "@/scripts/components/base/BaseEstimateStatusLabel.vue"; const estimateStore = useEstimateStore() const dialogStore = useDialogStore() @@ -258,12 +259,12 @@ const tableComponent = ref(null) const { t } = useI18n() const showFilters = ref(false) const status = ref([ - 'DRAFT', - 'SENT', - 'VIEWED', - 'EXPIRED', - 'ACCEPTED', - 'REJECTED', + {label: t('estimates.draft'), value: 'DRAFT'}, + {label: t('estimates.sent'), value: 'SENT'}, + {label: t('estimates.viewed'), value: 'VIEWED'}, + {label: t('estimates.expired'), value: 'EXPIRED'}, + {label: t('estimates.accepted'), value: 'ACCEPTED'}, + {label: t('estimates.rejected'), value: 'REJECTED'}, ]) const isRequestOngoing = ref(true) diff --git a/resources/scripts/admin/views/estimates/View.vue b/resources/scripts/admin/views/estimates/View.vue index a4d0f799..b252092a 100644 --- a/resources/scripts/admin/views/estimates/View.vue +++ b/resources/scripts/admin/views/estimates/View.vue @@ -180,7 +180,6 @@
- {{ estimate.status }} +
diff --git a/resources/scripts/admin/views/expenses/Index.vue b/resources/scripts/admin/views/expenses/Index.vue index 364844de..1a166052 100644 --- a/resources/scripts/admin/views/expenses/Index.vue +++ b/resources/scripts/admin/views/expenses/Index.vue @@ -191,7 +191,6 @@ @@ -278,19 +277,19 @@ const expenseColumns = computed(() => { }, { key: 'expense_date', - label: 'Date', + label: t('expenses.date'), thClass: 'extra', tdClass: 'font-medium text-gray-900', }, { key: 'name', - label: 'Category', + label: t('expenses.category'), thClass: 'extra', tdClass: 'cursor-pointer font-medium text-primary-500', }, - { key: 'user_name', label: 'Customer' }, - { key: 'notes', label: 'Note' }, - { key: 'amount', label: 'Amount' }, + { key: 'user_name', label: t('expenses.customer') }, + { key: 'notes', label: t('expenses.note') }, + { key: 'amount', label: t('expenses.amount') }, { key: 'actions', sortable: false, diff --git a/resources/scripts/admin/views/installation/Installation.vue b/resources/scripts/admin/views/installation/Installation.vue index 7a776bfb..cea45b8c 100644 --- a/resources/scripts/admin/views/installation/Installation.vue +++ b/resources/scripts/admin/views/installation/Installation.vue @@ -9,7 +9,7 @@ /> @@ -20,6 +20,7 @@ + + diff --git a/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue b/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue index e4b938b6..b2a86821 100644 --- a/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue +++ b/resources/scripts/admin/views/installation/Step3DatabaseConfig.vue @@ -36,11 +36,13 @@ export default { const database_connection = ref('mysql') const isSaving = ref(false) const { t } = useI18n() + const { global } = window.i18n const notificationStore = useNotificationStore() const installationStore = useInstallationStore() const databaseData = computed(() => { + installationStore.currentDataBaseData.app_locale = global.locale.value return installationStore.currentDataBaseData }) @@ -75,6 +77,12 @@ export default { emit('next', 3) + let language = { + profile_language: global.locale.value, + } + await installationStore.addInstallationLanguage(language) + + notificationStore.showNotification({ type: 'success', message: t('wizard.success.' + res.data.success), diff --git a/resources/scripts/admin/views/installation/Step4VerifyDomain.vue b/resources/scripts/admin/views/installation/Step4VerifyDomain.vue index fd7084da..ec48d085 100644 --- a/resources/scripts/admin/views/installation/Step4VerifyDomain.vue +++ b/resources/scripts/admin/views/installation/Step4VerifyDomain.vue @@ -18,17 +18,15 @@ -

Notes:

+

{{ $t('wizard.verify_domain.notes.notes') }}

  • - App domain should not contain - https:// or - http in front of - the domain. + {{ $t('wizard.verify_domain.notes.not_contain') }} + https:// {{ $t('wizard.verify_domain.notes.or') }} + http {{ $t('wizard.verify_domain.notes.in_front') }}
  • - If you're accessing the website on a different port, please mention the - port. For example: + {{ $t('wizard.verify_domain.notes.if_you') }} localhost:8080
diff --git a/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue b/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue index d372e367..0066bc19 100644 --- a/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue +++ b/resources/scripts/admin/views/installation/Step8CompanyPreferences.vue @@ -115,7 +115,7 @@ { + return globalStore.fiscalYears.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) +}) + const options = reactive([ { title: tm('settings.customization.invoices.allow'), diff --git a/resources/scripts/admin/views/installation/database/MysqlDatabase.vue b/resources/scripts/admin/views/installation/database/MysqlDatabase.vue index 0d293942..f291c58c 100644 --- a/resources/scripts/admin/views/installation/database/MysqlDatabase.vue +++ b/resources/scripts/admin/views/installation/database/MysqlDatabase.vue @@ -84,6 +84,11 @@ :invalid="v$.database_hostname.$error" /> + + + +
+
+
+ +
+ @@ -225,7 +225,7 @@ @@ -249,7 +249,7 @@ :status="row.data.paid_status" class="px-1 py-0.5 ml-2" > - {{ row.data.paid_status }} + @@ -277,6 +277,7 @@ import { debouncedWatch } from '@vueuse/core' import MoonwalkerIcon from '@/scripts/components/icons/empty/MoonwalkerIcon.vue' import InvoiceDropdown from '@/scripts/admin/components/dropdowns/InvoiceIndexDropdown.vue' import SendInvoiceModal from '@/scripts/admin/components/modal-components/SendInvoiceModal.vue' +import BaseInvoiceStatusLabel from "@/scripts/components/base/BaseInvoiceStatusLabel.vue"; // Stores const invoiceStore = useInvoiceStore() const dialogStore = useDialogStore() @@ -291,12 +292,21 @@ const showFilters = ref(false) const status = ref([ { - label: 'Status', - options: ['DRAFT', 'DUE', 'SENT', 'VIEWED', 'COMPLETED'], + label: t('invoices.status'), + options: [ + {label: t('general.draft'), value: 'DRAFT'}, + {label: t('general.due'), value: 'DUE'}, + {label: t('general.sent'), value: 'SENT'}, + {label: t('invoices.viewed'), value: 'VIEWED'}, + {label: t('invoices.completed'), value: 'COMPLETED'} + ], }, { - label: 'Paid Status', - options: ['UNPAID', 'PAID', 'PARTIALLY_PAID'], + label: t('invoices.paid_status'), + options: [ + {label: t('invoices.unpaid'), value: 'UNPAID'}, + {label: t('invoices.paid'), value: 'PAID'}, + {label: t('invoices.partially_paid'), value: 'PARTIALLY_PAID'}], }, , ]) diff --git a/resources/scripts/admin/views/invoices/View.vue b/resources/scripts/admin/views/invoices/View.vue index 6e282934..2e1656a2 100644 --- a/resources/scripts/admin/views/invoices/View.vue +++ b/resources/scripts/admin/views/invoices/View.vue @@ -423,7 +423,6 @@ onSearched = debounce(onSearched, 500)
- {{ invoice.status }} +
diff --git a/resources/scripts/admin/views/items/Index.vue b/resources/scripts/admin/views/items/Index.vue index 5c120e5b..f6ca9090 100644 --- a/resources/scripts/admin/views/items/Index.vue +++ b/resources/scripts/admin/views/items/Index.vue @@ -155,7 +155,7 @@ :to="{ path: `items/${row.data.id}/edit` }" class="font-medium text-primary-500" > - {{ row.data.name }} + diff --git a/resources/scripts/admin/views/modules/Index.vue b/resources/scripts/admin/views/modules/Index.vue index 1b587686..b7552913 100644 --- a/resources/scripts/admin/views/modules/Index.vue +++ b/resources/scripts/admin/views/modules/Index.vue @@ -101,7 +101,7 @@ target="_blank" > - Sign up & Get Token + {{ $t('modules.sign_up_and_get_token') }} diff --git a/resources/scripts/admin/views/modules/partials/ModuleCard.vue b/resources/scripts/admin/views/modules/partials/ModuleCard.vue index 8e670dc6..14f838db 100644 --- a/resources/scripts/admin/views/modules/partials/ModuleCard.vue +++ b/resources/scripts/admin/views/modules/partials/ModuleCard.vue @@ -86,7 +86,6 @@
- + @@ -276,7 +274,11 @@ const userStore = useUserStore() const table = ref(null) const { t } = useI18n() const showFilters = ref(false) -const statusList = ref(['ACTIVE', 'ON_HOLD', 'ALL']) +const statusList = ref([ + {label: t('recurring_invoices.active'), value: 'ACTIVE'}, + {label: t('recurring_invoices.on_hold'), value: 'ON_HOLD'}, + {label: t('recurring_invoices.all'), value: 'ALL'} +]) const isRequestOngoing = ref(true) const activeTab = ref('recurring-invoices.all') const router = useRouter() diff --git a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue index d0eb6a81..d21c556d 100644 --- a/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue +++ b/resources/scripts/admin/views/recurring-invoices/create/RecurringInvoiceCreateBasicFields.vue @@ -129,7 +129,7 @@ :invalid="v.status.$error" :placeholder="$t('recurring_invoices.select_a_status')" value-prop="value" - label="value" + label="key" /> @@ -186,6 +186,7 @@ import { useDebounceFn } from '@vueuse/core' import { useRecurringInvoiceStore } from '@/scripts/admin/stores/recurring-invoice' import { computed, onMounted, reactive, ref, watch } from 'vue' import { useRoute } from 'vue-router' +import { useI18n } from 'vue-i18n' import ExchangeRateConverter from '@/scripts/admin/components/estimate-invoice-common/ExchangeRateConverter.vue' @@ -207,13 +208,14 @@ const props = defineProps({ const route = useRoute() const recurringInvoiceStore = useRecurringInvoiceStore() const globalStore = useGlobalStore() +const { t } = useI18n() const isLoadingNextDate = ref(false) const limits = reactive([ - { label: 'None', value: 'NONE' }, - { label: 'Date', value: 'DATE' }, - { label: 'Count', value: 'COUNT' }, + { label: t('recurring_invoices.limit.none'), value: 'NONE' }, + { label: t('recurring_invoices.limit.date'), value: 'DATE' }, + { label: t('recurring_invoices.limit.count'), value: 'COUNT' }, ]) const isCustomFrequency = computed(() => { @@ -226,9 +228,17 @@ const isCustomFrequency = computed(() => { const getStatusOptions = computed(() => { if (props.isEdit) { - return globalStore.config.recurring_invoice_status.update_status + return globalStore.config.recurring_invoice_status.update_status.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) } - return globalStore.config.recurring_invoice_status.create_status + return globalStore.config.recurring_invoice_status.create_status.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) }) watch( diff --git a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue index fb2b7bdc..fa997aa3 100644 --- a/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue +++ b/resources/scripts/admin/views/recurring-invoices/partials/Invoices.vue @@ -27,10 +27,15 @@ /> + + + diff --git a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue index 42445324..3fb0e9f6 100644 --- a/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue +++ b/resources/scripts/admin/views/recurring-invoices/partials/RecurringInvoiceViewSidebar.vue @@ -262,7 +262,6 @@ onSearched = debounce(onSearched, 500)
- {{ invoice.status }} +
diff --git a/resources/scripts/admin/views/reports/SalesReports.vue b/resources/scripts/admin/views/reports/SalesReports.vue index d73c78a4..4fed5772 100644 --- a/resources/scripts/admin/views/reports/SalesReports.vue +++ b/resources/scripts/admin/views/reports/SalesReports.vue @@ -156,7 +156,16 @@ const dateRange = reactive([ ]) const selectedRange = ref(dateRange[2]) -const reportTypes = ref(['By Customer', 'By Item']) +const reportTypes = ref([ + { + label: t('reports.sales.sort.by_customer'), + value: 'By Customer' + }, + { + label: t('reports.sales.sort.by_item'), + value: 'By Item' + } +]) const selectedType = ref('By Customer') let range = ref(new Date()) let url = ref(null) diff --git a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue index 1cad62b0..016d37f9 100644 --- a/resources/scripts/admin/views/settings/CustomFieldsSetting.vue +++ b/resources/scripts/admin/views/settings/CustomFieldsSetting.vue @@ -30,6 +30,10 @@ ({{ row.data.slug }}) + + diff --git a/resources/scripts/admin/views/settings/NotesSetting.vue b/resources/scripts/admin/views/settings/NotesSetting.vue index c6026cdc..320e3d5b 100644 --- a/resources/scripts/admin/views/settings/NotesSetting.vue +++ b/resources/scripts/admin/views/settings/NotesSetting.vue @@ -31,6 +31,9 @@ :load-data="refreshTable" /> + @@ -113,4 +116,17 @@ async function openNoteSelectModal() { async function refreshTable() { table.value && table.value.refresh() } + +function getLabelNote(type) { + switch (type) { + case 'Estimate': + return t('settings.customization.notes.types.estimate') + case 'Invoice': + return t('settings.customization.notes.types.invoice') + case 'Payment': + return t('settings.customization.notes.types.payment') + default: + return type + } +} diff --git a/resources/scripts/admin/views/settings/PreferencesSetting.vue b/resources/scripts/admin/views/settings/PreferencesSetting.vue index 3c7c9ebb..717d81cc 100644 --- a/resources/scripts/admin/views/settings/PreferencesSetting.vue +++ b/resources/scripts/admin/views/settings/PreferencesSetting.vue @@ -95,7 +95,7 @@ { }) }) +const fiscalYearsList = computed(() => { + return globalStore.config.fiscal_years.map((item) => { + return Object.assign({}, item, { + key: t(item.key), + }) + }) +}) + watch( () => settingsForm.carbon_date_format, (val) => { diff --git a/resources/scripts/admin/views/settings/UpdateAppSetting.vue b/resources/scripts/admin/views/settings/UpdateAppSetting.vue index e5948bbb..90e7a370 100644 --- a/resources/scripts/admin/views/settings/UpdateAppSetting.vue +++ b/resources/scripts/admin/views/settings/UpdateAppSetting.vue @@ -8,11 +8,12 @@ {{ $t('settings.update_app.current_version') }} -
+
- {{ currentVersion }} + > + {{ currentVersion }} +
+
+ +
+
{ axios.get('/api/v1/app/version').then((res) => { currentVersion.value = res.data.version + insiderChannel.value = res.data.channel === 'insider' }) // comapnyStore @@ -323,7 +332,11 @@ function statusClass(step) { async function checkUpdate() { try { isCheckingforUpdate.value = true - let response = await axios.get('/api/v1/check/update') + let response = await axios.get('/api/v1/check/update', { + params: { + channel: insiderChannel ? 'insider' : '' + } + }); isCheckingforUpdate.value = false if (!response.data.release) { notificationStore.showNotification({ @@ -342,6 +355,7 @@ async function checkUpdate() { requiredExtentions.value = response.data.release.extensions isUpdateAvailable.value = true minPhpVesrion.value = response.data.release.min_php_version + deletedFiles.value = response.data.release.deleted_files } } catch (e) { isUpdateAvailable.value = false diff --git a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue index 7cab418a..5d74f306 100644 --- a/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue +++ b/resources/scripts/admin/views/settings/customization/NumberCustomizer.vue @@ -43,7 +43,7 @@ border-t border-b border-gray-200 border-solid " > - Component + {{ $t('settings.customization.component') }} - Parameter + {{ $t('settings.customization.Parameter') }} - Remove + {{ $t('general.remove') }} @@ -160,7 +160,13 @@ const route = useRoute() const table = ref(null) let isFetchingInitialData = ref(true) let showFilters = ref(false) -const status = ref(['DRAFT', 'DUE', 'SENT', 'VIEWED', 'COMPLETED']) +const status = ref([ + {label: t('general.draft'), value: 'DRAFT'}, + {label: t('general.due'), value: 'DUE'}, + {label: t('general.sent'), value: 'SENT'}, + {label: t('invoices.viewed'), value: 'VIEWED'}, + {label: t('invoices.completed'), value: 'COMPLETED'} +]) const filters = reactive({ status: '', from_date: '', @@ -247,7 +253,7 @@ function toggleFilter() { async function fetchData({ page, sort }) { let data = { - status: filters.status, + status: filters.status.value, invoice_number: filters.invoice_number, from_date: filters.from_date, to_date: filters.to_date, diff --git a/resources/scripts/customer/views/invoices/View.vue b/resources/scripts/customer/views/invoices/View.vue index 28442aea..f8161127 100644 --- a/resources/scripts/customer/views/invoices/View.vue +++ b/resources/scripts/customer/views/invoices/View.vue @@ -175,7 +175,7 @@ {{ invoice.invoice_number }}
- {{ invoice.status }} + diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index b0e7c318..eb49297c 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -17,7 +17,7 @@ - @foreach(\InvoiceShelf\Services\Module\ModuleFacade::allStyles() as $name => $path) + @foreach(\App\Services\Module\ModuleFacade::allStyles() as $name => $path) @endforeach @@ -29,7 +29,7 @@ @if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'invoiceshelf'}} @endif "> - @foreach (\InvoiceShelf\Services\Module\ModuleFacade::allScripts() as $name => $path) + @foreach (\App\Services\Module\ModuleFacade::allScripts() as $name => $path) @if (\Illuminate\Support\Str::startsWith($path, ['http://', 'https://'])) @else diff --git a/resources/views/emails/send/estimate.blade.php b/resources/views/emails/send/estimate.blade.php index 8e82bdc3..d066a250 100644 --- a/resources/views/emails/send/estimate.blade.php +++ b/resources/views/emails/send/estimate.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Estimate + @lang('mail_view_estimate') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/send/invoice.blade.php b/resources/views/emails/send/invoice.blade.php index 53e2dce2..c1a3a7e5 100644 --- a/resources/views/emails/send/invoice.blade.php +++ b/resources/views/emails/send/invoice.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Invoice + @lang('mail_view_invoice') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/send/payment.blade.php b/resources/views/emails/send/payment.blade.php index 4670542d..1e411a17 100644 --- a/resources/views/emails/send/payment.blade.php +++ b/resources/views/emails/send/payment.blade.php @@ -19,7 +19,7 @@ {!! $data['body'] !!} @if(!$data['attach']['data']) @component('mail::button', ['url' => $data['url']]) - View Payment + @lang('mail_view_payment') @endcomponent @endif @endcomponent diff --git a/resources/views/emails/viewed/estimate.blade.php b/resources/views/emails/viewed/estimate.blade.php index 5bfd6588..787872a3 100644 --- a/resources/views/emails/viewed/estimate.blade.php +++ b/resources/views/emails/viewed/estimate.blade.php @@ -1,10 +1,9 @@ @component('mail::message') -{{ $data['user']['name'] }} viewed this Estimate. +@lang('mail_viewed_estimate', ['name' => $data['user']['name']]) -@component('mail::button', ['url' => url('/admin/estimates/'.$data['estimate']['id'].'/view')]) -View Estimate +@component('mail::button', ['url' => url('/admin/estimates/'.$data['estimate']['id'].'/view')])@lang('mail_view_estimate') @endcomponent -Thanks,
+@lang('mail_thanks'),
{{ config('app.name') }} @endcomponent diff --git a/resources/views/emails/viewed/invoice.blade.php b/resources/views/emails/viewed/invoice.blade.php index 9a28139b..02554fc3 100644 --- a/resources/views/emails/viewed/invoice.blade.php +++ b/resources/views/emails/viewed/invoice.blade.php @@ -1,10 +1,9 @@ @component('mail::message') -{{ $data['user']['name'] }} viewed this Invoice. +@lang('mail_viewed_invoice', ['name' => $data['user']['name']]) -@component('mail::button', ['url' => url('/admin/invoices/'.$data['invoice']['id'].'/view')]) -View Invoice +@component('mail::button', ['url' => url('/admin/invoices/'.$data['invoice']['id'].'/view')])@lang('mail_view_invoice') @endcomponent -Thanks,
+@lang('mail_thanks'),
{{ config('app.name') }} @endcomponent diff --git a/routes/api.php b/routes/api.php index 60938590..6146bda2 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,111 +1,113 @@ group(function () { // Authentication & Password Reset //---------------------------------- - Route::group(['prefix' => 'auth'], function () { + Route::prefix('auth')->group(function () { Route::post('login', [AuthController::class, 'login']); Route::post('logout', [AuthController::class, 'logout'])->middleware('auth:sanctum'); @@ -164,6 +166,10 @@ Route::prefix('/v1')->group(function () { Route::post('/wizard-step', [OnboardingWizardController::class, 'updateStep']); + Route::post('/wizard-language', [OnboardingWizardController::class, 'saveLanguage']); + + Route::get('/languages', [LanguagesController::class, 'languages']); + Route::get('/requirements', [RequirementsController::class, 'requirements']); Route::get('/permissions', [FilePermissionsController::class, 'permissions']); @@ -281,6 +287,8 @@ Route::prefix('/v1')->group(function () { Route::post('/estimates/{estimate}/send', SendEstimateController::class); + Route::post('/estimates/{estimate}/clone', CloneEstimateController::class); + Route::post('/estimates/{estimate}/status', ChangeEstimateStatusController::class); Route::post('/estimates/{estimate}/convert-to-invoice', ConvertEstimateController::class); @@ -467,7 +475,7 @@ Route::prefix('/v1')->group(function () { // Authentication & Password Reset //---------------------------------- - Route::group(['prefix' => 'auth'], function () { + Route::prefix('auth')->group(function () { // Send reset password mail Route::post('password/email', [AuthForgotPasswordController::class, 'sendResetLinkEmail']); diff --git a/routes/console.php b/routes/console.php index da55196d..b7f7af44 100644 --- a/routes/console.php +++ b/routes/console.php @@ -1,19 +1,29 @@ comment(Inspiring::quote()); -})->describe('Display an inspiring quote'); +})->purpose('Display an inspiring quote')->hourly(); + +if (InstallUtils::isDbCreated()) { + Schedule::command('check:invoices:status') + ->daily(); + + Schedule::command('check:estimates:status') + ->daily(); + + $recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get(); + foreach ($recurringInvoices as $recurringInvoice) { + $timeZone = CompanySetting::getSetting('time_zone', $recurringInvoice->company_id); + + Schedule::call(function () use ($recurringInvoice) { + $recurringInvoice->generateInvoice(); + })->cron($recurringInvoice->frequency)->timezone($timeZone); + } +} diff --git a/routes/web.php b/routes/web.php index 2dd96277..44048b92 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,24 +1,24 @@ make(Kernel::class)->bootstrap(); - - return $app; - } -} diff --git a/tests/Feature/Admin/BackupTest.php b/tests/Feature/Admin/BackupTest.php index 0526fcfd..fcfd4b80 100644 --- a/tests/Feature/Admin/BackupTest.php +++ b/tests/Feature/Admin/BackupTest.php @@ -1,10 +1,10 @@ create(); + + $beforeCount = Estimate::count(); + + $response = $this->post("/api/v1/estimates/{$estimate->id}/clone"); + + $this->assertDatabaseCount('estimates', $beforeCount + 1); + +}); + test('store validates using a form request', function () { $this->assertActionUsesFormRequest( EstimatesController::class, diff --git a/tests/Feature/Admin/ExpenseCategoryTest.php b/tests/Feature/Admin/ExpenseCategoryTest.php index 73f44f6e..e8584d92 100644 --- a/tests/Feature/Admin/ExpenseCategoryTest.php +++ b/tests/Feature/Admin/ExpenseCategoryTest.php @@ -1,10 +1,10 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CompanySettingTest.php b/tests/Unit/CompanySettingTest.php index fa5e5116..7a768b94 100644 --- a/tests/Unit/CompanySettingTest.php +++ b/tests/Unit/CompanySettingTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CountryTest.php b/tests/Unit/CountryTest.php index a0393763..15901925 100644 --- a/tests/Unit/CountryTest.php +++ b/tests/Unit/CountryTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomFieldTest.php b/tests/Unit/CustomFieldTest.php index f47193ac..bea128bc 100644 --- a/tests/Unit/CustomFieldTest.php +++ b/tests/Unit/CustomFieldTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomFieldValueTest.php b/tests/Unit/CustomFieldValueTest.php index d6fdec79..94f5229e 100644 --- a/tests/Unit/CustomFieldValueTest.php +++ b/tests/Unit/CustomFieldValueTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/CustomerTest.php b/tests/Unit/CustomerTest.php index 1eecaad2..91402664 100644 --- a/tests/Unit/CustomerTest.php +++ b/tests/Unit/CustomerTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/EstimateItemTest.php b/tests/Unit/EstimateItemTest.php index 38bc6eae..49f15ebf 100644 --- a/tests/Unit/EstimateItemTest.php +++ b/tests/Unit/EstimateItemTest.php @@ -1,9 +1,9 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/EstimateTest.php b/tests/Unit/EstimateTest.php index 3bdd9bb7..deee3444 100644 --- a/tests/Unit/EstimateTest.php +++ b/tests/Unit/EstimateTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExchangeRateLogTest.php b/tests/Unit/ExchangeRateLogTest.php index 46612a59..c3bb434d 100644 --- a/tests/Unit/ExchangeRateLogTest.php +++ b/tests/Unit/ExchangeRateLogTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExpenseCategoryTest.php b/tests/Unit/ExpenseCategoryTest.php index d97ae60f..2232c36c 100644 --- a/tests/Unit/ExpenseCategoryTest.php +++ b/tests/Unit/ExpenseCategoryTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ExpenseTest.php b/tests/Unit/ExpenseTest.php index 1389775c..8fc17d44 100644 --- a/tests/Unit/ExpenseTest.php +++ b/tests/Unit/ExpenseTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/InvoiceItemTest.php b/tests/Unit/InvoiceItemTest.php index 6e51d97f..eae41d04 100644 --- a/tests/Unit/InvoiceItemTest.php +++ b/tests/Unit/InvoiceItemTest.php @@ -1,9 +1,9 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/InvoiceTest.php b/tests/Unit/InvoiceTest.php index a0eb41a8..ad3b75c8 100644 --- a/tests/Unit/InvoiceTest.php +++ b/tests/Unit/InvoiceTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/ItemTest.php b/tests/Unit/ItemTest.php index 3a453ef4..47dbaf6b 100644 --- a/tests/Unit/ItemTest.php +++ b/tests/Unit/ItemTest.php @@ -1,11 +1,11 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/PaymentMethodTest.php b/tests/Unit/PaymentMethodTest.php index 42337954..a0aa7b6c 100644 --- a/tests/Unit/PaymentMethodTest.php +++ b/tests/Unit/PaymentMethodTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/PaymentTest.php b/tests/Unit/PaymentTest.php index c8214742..9d2bf577 100644 --- a/tests/Unit/PaymentTest.php +++ b/tests/Unit/PaymentTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/RecurringInvoiceTest.php b/tests/Unit/RecurringInvoiceTest.php index e3630f23..64d34652 100644 --- a/tests/Unit/RecurringInvoiceTest.php +++ b/tests/Unit/RecurringInvoiceTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/SettingTest.php b/tests/Unit/SettingTest.php index dadeb068..c433d626 100644 --- a/tests/Unit/SettingTest.php +++ b/tests/Unit/SettingTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/TaxTypeTest.php b/tests/Unit/TaxTypeTest.php index cb83dbff..8e002587 100644 --- a/tests/Unit/TaxTypeTest.php +++ b/tests/Unit/TaxTypeTest.php @@ -1,7 +1,7 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/tests/Unit/UnitTest.php b/tests/Unit/UnitTest.php index 1d8220d0..88c77909 100644 --- a/tests/Unit/UnitTest.php +++ b/tests/Unit/UnitTest.php @@ -1,8 +1,8 @@ 'DatabaseSeeder', '--force' => true]); diff --git a/version.md b/version.md new file mode 100644 index 00000000..fbffcdf9 --- /dev/null +++ b/version.md @@ -0,0 +1 @@ +2.0.0-alpha diff --git a/yarn.lock b/yarn.lock index eadf7a4c..2f5d26db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,151 +2,57 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@alloc/quick-lru@^5.2.0": version "5.2.0" - resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@babel/parser@^7.23.6": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== +"@babel/parser@^7.24.7": + version "7.25.3" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== +"@babel/types@^7.25.2": + version "7.25.2" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + version "4.11.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -159,26 +65,26 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@headlessui/vue@^1.7.17": - version "1.7.17" - resolved "https://registry.yarnpkg.com/@headlessui/vue/-/vue-1.7.17.tgz#153a17432a0fa4b58ac55e16e0c883b66bec5f83" - integrity sha512-hmJChv8HzKorxd9F70RGnECAwZfkvmmwOqreuKLWY/19d5qbWnSdw+DNbuA/Uo6X5rb4U5B3NrT+qBKPmjhRqw== + version "1.7.22" + resolved "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.22.tgz" + integrity sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg== dependencies: "@tanstack/vue-virtual" "^3.0.0-beta.60" "@heroicons/vue@^1.0.6": version "1.0.6" - resolved "https://registry.yarnpkg.com/@heroicons/vue/-/vue-1.0.6.tgz#d8b90734b436eb5a87f40cc300b64a0fb0031f7f" + resolved "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.6.tgz" integrity sha512-ng2YcCQrdoQWEFpw+ipFl2rZo8mZ56v0T5+MyfQQvNqfKChwgP6DMloZLW+rl17GEcHkE3H82UTAMKBKZr4+WA== -"@humanwhocodes/config-array@^0.11.13": +"@humanwhocodes/config-array@^0.11.14": version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: "@humanwhocodes/object-schema" "^2.0.2" @@ -187,38 +93,38 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== -"@intlify/core-base@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.9.0.tgz#edc55a5e3dbbf8dbbbf656529ed27832c4c4f522" - integrity sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA== +"@intlify/core-base@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz" + integrity sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w== dependencies: - "@intlify/message-compiler" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/message-compiler" "9.13.1" + "@intlify/shared" "9.13.1" -"@intlify/message-compiler@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.9.0.tgz#7952759329e7af0388afbce7a984820bbeff82eb" - integrity sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA== +"@intlify/message-compiler@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz" + integrity sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w== dependencies: - "@intlify/shared" "9.9.0" + "@intlify/shared" "9.13.1" source-map-js "^1.0.2" -"@intlify/shared@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.9.0.tgz#56907633c0f7b2d50f53269d31e88e7b24d39187" - integrity sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g== +"@intlify/shared@9.13.1": + version "9.13.1" + resolved "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz" + integrity sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -229,53 +135,53 @@ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + version "0.3.5" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: - "@jridgewell/set-array" "^1.0.1" + "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -283,454 +189,359 @@ "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@popperjs/core@^2.11.0", "@popperjs/core@^2.11.8", "@popperjs/core@^2.9.0": version "2.11.8" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@remirror/core-constants@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.2.tgz#f05eccdc69e3a65e7d524b52548f567904a11a1a" + resolved "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz" integrity sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ== -"@remirror/core-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@remirror/core-helpers/-/core-helpers-3.0.0.tgz#3a35c2346bc23ebc3cee585b7840b5567755c5f1" - integrity sha512-tusEgQJIqg4qKj6HSBUFcyRnWnziw3neh4T9wOmsPGHFC3w9kl5KSrDb9UAgE8uX6y32FnS7vJ955mWOl3n50A== - dependencies: - "@remirror/core-constants" "^2.0.2" - "@remirror/types" "^1.0.1" - "@types/object.omit" "^3.0.0" - "@types/object.pick" "^1.3.2" - "@types/throttle-debounce" "^2.1.0" - case-anything "^2.1.13" - dash-get "^1.0.2" - deepmerge "^4.3.1" - fast-deep-equal "^3.1.3" - make-error "^1.3.6" - object.omit "^3.0.0" - object.pick "^1.3.0" - throttle-debounce "^3.0.1" +"@rollup/rollup-linux-arm64-gnu@4.20.0": + version "4.20.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz" + integrity sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ== -"@remirror/types@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@remirror/types/-/types-1.0.1.tgz#768502497a0fbbc23338a1586b893f729310cf70" - integrity sha512-VlZQxwGnt1jtQ18D6JqdIF+uFZo525WEqrfp9BOc3COPpK4+AWCgdnAWL+ho6imWcoINlGjR/+3b6y5C1vBVEA== - dependencies: - type-fest "^2.19.0" - -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== - -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== - -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== - -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== - -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== - -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== - -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== - -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== - -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== - -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== - -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== - -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== +"@rollup/rollup-linux-arm64-musl@4.20.0": + version "4.20.0" + resolved "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz" + integrity sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q== "@rvxlab/tailwind-plugin-ios-full-height@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@rvxlab/tailwind-plugin-ios-full-height/-/tailwind-plugin-ios-full-height-1.1.0.tgz#ef28929e7dd5a4ca9bdd45df155beb2b78bfef82" + resolved "https://registry.npmjs.org/@rvxlab/tailwind-plugin-ios-full-height/-/tailwind-plugin-ios-full-height-1.1.0.tgz" integrity sha512-jPIxXn0raN/YTk8nXesqM+JbS2WWd5XaUk/MbaAgVDDPyYtsPfeN3B26xIhSa2oE2+JB66tegPUMSOmixzroXg== "@stripe/stripe-js@^2.4.0": version "2.4.0" - resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-2.4.0.tgz#7a7e5b187b9e9bb43073edd946ec3e9a778e61bd" + resolved "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-2.4.0.tgz" integrity sha512-WFkQx1mbs2b5+7looI9IV1BLa3bIApuN3ehp9FP58xGg7KL9hCHDECgW3BwO9l9L+xBPVAD7Yjn1EhGe6EDTeA== "@tailwindcss/aspect-ratio@^0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" + resolved "https://registry.npmjs.org/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz" integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== "@tailwindcss/forms@^0.5.7": version "0.5.7" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + resolved "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz" integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== dependencies: mini-svg-data-uri "^1.2.3" "@tailwindcss/typography@^0.5.10": - version "0.5.10" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.10.tgz#2abde4c6d5c797ab49cf47610830a301de4c1e0a" - integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== + version "0.5.13" + resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.13.tgz" + integrity sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" postcss-selector-parser "6.0.10" -"@tanstack/virtual-core@3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz#637bee36f0cabf96a1d436887c90f138a7e9378b" - integrity sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg== +"@tanstack/virtual-core@3.8.4": + version "3.8.4" + resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.8.4.tgz" + integrity sha512-iO5Ujgw3O1yIxWDe9FgUPNkGjyT657b1WNX52u+Wv1DyBFEpdCdGkuVaky0M3hHFqNWjAmHWTn4wgj9rTr7ZQg== "@tanstack/vue-virtual@^3.0.0-beta.60": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@tanstack/vue-virtual/-/vue-virtual-3.0.2.tgz#8f78b0ce20f8429b4529ca6bc2a89c6ab5547963" - integrity sha512-1iFpX+yZswHuf4wrA6GU9yJ/YzQ/8SacABwqghwCkcwrkZbOPLlRSdOAqZ1WQ50SftmfhZpaiZl2KmpV7cgfMQ== + version "3.8.4" + resolved "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.8.4.tgz" + integrity sha512-4Pq8odunHQPsTg2iE2yzWdzYed/8LySy2knxqJYkaNOQRXbqJ7O/Owpoon8ZM9L+jLL1faM5TVHV0eJxm68q8A== dependencies: - "@tanstack/virtual-core" "3.0.0" + "@tanstack/virtual-core" "3.8.4" -"@tiptap/core@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.1.16.tgz#828dd34aa9f49574f1eb7b311c0d69b3a9aacf27" - integrity sha512-nKnV603UyzbcrqhCXTWxDN22Ujb4VNfmKkACms1JOMGo7BVARmMCp2nBsLW8fmgCxmf8AS0LXY63tU7ILWYc5g== +"@tiptap/core@^2.1.16", "@tiptap/core@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/core/-/core-2.5.8.tgz" + integrity sha512-lkWCKyoAoMTxM137MoEsorG7tZ5MZU6O3wMRuZ0P9fcTRY5vd1NWncWuPzuGSJIpL20gwBQOsS6PaQSfR3xjlA== -"@tiptap/extension-blockquote@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.1.16.tgz#79e77a4b3d479f02c1ff906a3fd262045925bf6f" - integrity sha512-1OMk8cBrL0VnbnzD3XHx7U4oMDCiXRR7Spfl9JqwC9pS4RosOUBySNxpEBwhSegB0pK6sd7m44qLqj00If+cHA== +"@tiptap/extension-blockquote@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.5.8.tgz" + integrity sha512-P8vDiagtRrUfIewfCKrJe0ddDSjPgOTKzqoM1UXKS+MenT8C/wT4bjiwopAoWP6zMoV0TfHWXah9emllmCfXFA== -"@tiptap/extension-bold@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.1.16.tgz#6c8cab89a4385fe3f4847fd95ead5355e3d890ab" - integrity sha512-gz2VrBkRRsGBiOHx1qB++VUfpuRdhJp6jlgNqqHFbIkjKr2NB+u7oiH5SbjlL4eG0wlam1QA4jAkXhZgdvkA4g== +"@tiptap/extension-bold@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.5.8.tgz" + integrity sha512-4vEn+U7Y8B4e8izcL7QuEKYJ9thCSdo+UF1K3TOqQWuJTzTrJLPMwTZ4vYOHzvuq5uIXyPLnWzLgnRLgy5mJRg== -"@tiptap/extension-bubble-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.1.16.tgz#4997de2811ee96648d1b5ba2148bc223840f7db5" - integrity sha512-MwKCmu2kU7+Xln/BvlrolU2hCXgoCoTr4NXJ+3v8A9w7tIq8leADoWacfEee2t3VNnGdXw/Xjza+DAr77JWjGg== +"@tiptap/extension-bubble-menu@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.5.8.tgz" + integrity sha512-COmd1Azudu7i281emZFIESECe7FnvWiRoBoQBVjjWSyq5PVzwJaA3PAlnU7GyNZKtVXMZ4xbrckdyNQfDeVQDA== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-bullet-list@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.16.tgz#fabd6c024721e2424f256d00992f9ca414522a5d" - integrity sha512-Cheaep5JShO9TtRslrOObSVKtRQFKozou2ZWDas5sIeef/A/GWPfVTzusfBGE/ItHwZNaDXwJOoVnSUPT8ulfw== +"@tiptap/extension-bullet-list@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.5.8.tgz" + integrity sha512-Wvf0HWBI0ulssoCsCOguxJB1Ntmj9PtE8b/ieFwFvrNptP+sf25XiWgjMs7H1KQrtmpngBu/Bhh5jJRgAmAgeQ== -"@tiptap/extension-code-block@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.1.16.tgz#aa197def308d9baaaf52f79f55ef103e44d561ce" - integrity sha512-IspVmwg17Vx59W8lEIbVRIeMscJtRCdsif45CkzVv1uSHMl7tmrJh3n8vv/vrB+rnLasQrOEbEKNEqUL3eHlKQ== +"@tiptap/extension-code-block@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.5.8.tgz" + integrity sha512-atMtT1Ddc4hv9+OiH/UCLfQ6Ooo45xpPaaOhqs1Ab509YyqxoyEbfNSOth/yx9DFb8VOenRWE1WV3Z3C0ial0Q== -"@tiptap/extension-code@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.1.16.tgz#2e98008001ac55e9a25a4fc1fd9eed639b6dc433" - integrity sha512-2+fVfh3qQORgMRSZ6hn+yW5/rLzlulCzMhdL07G0lWY8/eWEv3p9DCfgw9AOHrrHFim8/MVWyRkrkBM/yHX9FA== +"@tiptap/extension-code@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.5.8.tgz" + integrity sha512-56lb4NnaYAbIkqBTCIg4ZoITrw86Dj8C2HSi6DrU7f5q9cfvGuH+2057I5n8eEEfASu1AeDN6tSnCz3NR+yiHw== -"@tiptap/extension-document@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.1.16.tgz#7e2ddf28ac32318aee439b6ee01c8c898be9be14" - integrity sha512-VSOrzGnpI9dJDffFn3ZjmPKYkH/YtYeDl6nqLu7TafRqyLMSEqxxxq/+Qs/7j8jbzq6osslY0sySckSulroIOg== +"@tiptap/extension-document@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.5.8.tgz" + integrity sha512-r3rP4ihCJAdp3VRIeqd80etHx7jttzZaKNFX8hkQShHK6eTHwrR92VL0jDE4K+NOE3bxjMsOlYizJYWV042BtA== -"@tiptap/extension-dropcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.16.tgz#6b7d3d3cb0375bba7499c6f9223562008ec983c5" - integrity sha512-voWEIAmxV3f9Q0gc3K89HRq8KFeOVtHJBRHYihZwxMnvq2aMIwdpCx0GbiCd4slQaBLd1ASJHz1uAigVhR2+uA== +"@tiptap/extension-dropcursor@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.5.8.tgz" + integrity sha512-xPmIfTYqurFF8RukCPlHd8mT8I7hDinWrgq7CQTRROxcJ3DNw8PooWrKWaBYs9HXHe1pbiQ5EK0uOsNvQ1bcDg== -"@tiptap/extension-floating-menu@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.1.16.tgz#1ee53b1244ff23653114fdc248d6856a2eaa7974" - integrity sha512-VBT4HBhkKr9S1VExyTb/qfQyZ5F0VJLasUoH8E4kdq3deCeifmTTIOukuXK5QbicFHVQmY2epeU6+w5c/bAcHQ== +"@tiptap/extension-floating-menu@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.5.8.tgz" + integrity sha512-qsM6tCyRlXnI/gADrkO/2p0Tldu5aY96CnsXpZMaflMgsO577qhcXD0ReGg17uLXBzJa5xmV8qOik0Ptq3WEWg== dependencies: tippy.js "^6.3.7" -"@tiptap/extension-gapcursor@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.16.tgz#6618458314bb69e1d43c1b9fc4858c8bcd2a5ac8" - integrity sha512-Bgjo0da0W1QOhtnT3NR7GHPmVBZykNRekNGsTA3+nxCjkqh1G32Jt58TBKP3vdLBaww3lhrii0SYVErlFgIJnA== +"@tiptap/extension-gapcursor@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.5.8.tgz" + integrity sha512-nR7AUOE4xWdp0sDbLbe4uwAhQ/xq+MTLVafvffMLT81U/Hl9R+w0Ap2XF0+c6/JTQwVjZiOalAmg4dobx7rJUQ== -"@tiptap/extension-hard-break@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.1.16.tgz#532618d9607fc328c25ea486b64656b8f6841b04" - integrity sha512-H3Bk8Gu5pV7xH8TrzH0WAoXrJVEKsDA6Evyl7H7aCAMAvotQL0ehuuX88bjPMCSAvBXZE39wYnJCJshGbVx0BA== +"@tiptap/extension-hard-break@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.5.8.tgz" + integrity sha512-samZEL0EXzHSmMQ7KyLnfSxdDv3qSjia0JzelfCnFZS6LLcbwjrIjV8ZPxEhJ7UlZqroQdFxPegllkLHZj/MdQ== -"@tiptap/extension-heading@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.1.16.tgz#759f7d6bc48be6388f81252a81ef074bd3935b8a" - integrity sha512-vFQuAAnIxDwKjTV+ScSwIaeG4Uhm1cZddnbLTru1EJfIz9VvpHDZKEyL4ZJvWuKMAhCzlw54TQhBCVHqalXyaA== +"@tiptap/extension-heading@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.5.8.tgz" + integrity sha512-fDQoUkTLN+U8MNQ8PI+syKyshS9qFHlKihxzMLf/+tRisJvP47gzHDur99nffTSbXFDnASDqhavhKjI/2xTWlQ== -"@tiptap/extension-history@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.1.16.tgz#22d130d5b8bd4133d43be3a32c6bb26b863e5710" - integrity sha512-9YHPf8Xqqp5CQy1hJonkBzROj0ZHR1ZaIk9IaLlAPTpdkrUDXV9SC7qp3lozQsMg4vmU3K6H5VQo4ADpnR00OQ== +"@tiptap/extension-history@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.5.8.tgz" + integrity sha512-5IrZZfp2Rg9Tov/08aYTKhwoiqdun8v3j3vleuqyW5RB7LU/NKLR19EtSSMh9mVkFZVbhab2zDOFmn5ilsEOhw== -"@tiptap/extension-horizontal-rule@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.16.tgz#484a5c29d4e708cefc50b05dccc4489e140a3fa1" - integrity sha512-Q+Zp0lJF7212YIuZnbMmn4KC1MZoZjQIuvSd+DOgCwKSeUcTXBbljDjOiN8yrY134r+A4fFM7KHTXWYqZGZQug== +"@tiptap/extension-horizontal-rule@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.5.8.tgz" + integrity sha512-L8Is73WGaP6VNdKrIry+lCIM9W1KaL/Tw2Z6DGMVMU5mr1lLx0xq7nWEStqD7e4zh+n4+3PV15cZSA2F34DZrg== -"@tiptap/extension-italic@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.1.16.tgz#742daedcc08cafe6a3252b9d29822e7d8ef70887" - integrity sha512-6mFGPBGxd2aICJ5Q3zYxuXO8slKoOP/PsSjEQn1bjs3h8Q3mPxHX290ePVp728o5F0myM9sxKSz2V6/VeuS/Yw== +"@tiptap/extension-italic@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.5.8.tgz" + integrity sha512-Kh35a7slBai+Qr/tiF9XFXmuWMgUQz4Nt51hmzqVGVuG+QsdWzQE8IZBGypKm8aAzxTGSY0d0QA0rys+YRNq1Q== -"@tiptap/extension-list-item@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.1.16.tgz#f098f58b027c498ce1bac8d2b8e9b85d04383818" - integrity sha512-RLUodzFispIe1adarCEzf+OfaGZna/WR/k/HqPnbflSiJ6/I2P5MqI+ELjGGvc53eanf3+KpsHlB2Pganp8sMA== +"@tiptap/extension-list-item@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.5.8.tgz" + integrity sha512-RFIIzHxxXdPmdf7BL0zhE4VPHoR6BTWtfi3JCTftmNqKoH7o+mLKT0RHMGvF1CGNn2HewHzXAF0iXfKCwmEgHQ== -"@tiptap/extension-ordered-list@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.16.tgz#8c66157bfd5158a41f8678490e08c59cd305aa6a" - integrity sha512-6QLUm90wz2lfzWGV4fX5NOOFA8zKlcDBNrTeOd0V7H4fcafLmANqU/5o4LLNJmK8y8f1YAvmHr9xgciqggGJJA== +"@tiptap/extension-ordered-list@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.5.8.tgz" + integrity sha512-84gWdWhc8rUCCssn8+6Z1rFKdG7/yIe+gwYkU6WqAtDrcluJdt5jRHrcMOLxb2dbY8ww9pa72EYV/bwOisZlFQ== -"@tiptap/extension-paragraph@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.1.16.tgz#736be2551343bedb71277eadc3544af7b28149bc" - integrity sha512-JwCKSFjBLd9xAmxLe7hf1h4AucDvkGTfDb/wA1jId64g+uf0/tm6RDjnk/QD+D2YzoLGFLjQm0GAdPXTmyTPdA== +"@tiptap/extension-paragraph@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.5.8.tgz" + integrity sha512-AMfD3lfGSiomfkSE2tUourUjVahLtIfWUQew13NTPuWoxAXaSyoCGO0ULkiou/lO3JVUUUmF9+KJrAHWGIARdA== -"@tiptap/extension-strike@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.1.16.tgz#cde257906c9815fd90aa74d6f8ea7325881c1c8d" - integrity sha512-Z1hmBK1QWMMGDV2MJ3KBDiMuzcScjyx88cP5ln5G7626Zxeqywf84KF+2WyHBzJWfwMWpAouzwHKe9ld39Vu1w== +"@tiptap/extension-strike@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.5.8.tgz" + integrity sha512-uiHhBIEqawX9Up2ofklotVQ5XpGIjwRL6wprZF38s1le3XpsgyhVV7oDnqDkC7ujCsGkOJJfXZtv3LsO3R2nzQ== "@tiptap/extension-text-align@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text-align/-/extension-text-align-2.1.16.tgz#fc3575635849adb99f4ab4923b5b309ff7157ce0" - integrity sha512-iyRqOZGoUl/yd2TZ+tvuRRxOym0bbE6+BoImd9TrF2bpYLSMt3wc1IzN2+jRGPkTtTnFbKLiFoyNZyYYyaxzkA== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.5.8.tgz" + integrity sha512-TtkEUkgHkV6nYwcvx0+vVIpgXkawZhG55IQ9CZI5PnD6tbzHTK8qFnuhnTgmX+ZQkqz4qEg5erFY/fC1gVvQ4g== -"@tiptap/extension-text@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.1.16.tgz#188d46545450f1b1969d70853f24ab14437827ec" - integrity sha512-XzSJmAj32uYpaL/9FX3tRSU52DwZ9w+3yEffIcSN9MSwioqLsSolXOz7TuJfW6lSTar1ml9UPlRqX4dpayUTDQ== +"@tiptap/extension-text@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.5.8.tgz" + integrity sha512-CNkD51jRMdcYCqFVOkrnebqBQ6pCD3ZD5z9kO5bOC5UPZKZBkLsWdlrHGAVwosxcGxdJACbqJ0Nj+fMgIw4tNA== -"@tiptap/pm@^2.0.0": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.1.16.tgz#1f43024e2660f2a9fe3057b71e57f0550f7d3387" - integrity sha512-yibLkjtgbBSnWCXbDyKM5kgIGLfMvfbRfFzb8T0uz4PI/L54o0a4fiWSW5Fg10B5+o+NAXW2wMxoId8/Tw91lQ== +"@tiptap/pm@^2.0.0", "@tiptap/pm@^2.5.8": + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/pm/-/pm-2.5.8.tgz" + integrity sha512-CVhHaTG4QNHSkvuh6HHsUR4hE+nbUnk7z+VMUedaqPU8tNqkTwWGCMbiyTc+PCsz0T9Mni7vvBR+EXgEQ3+w4g== dependencies: - prosemirror-changeset "^2.2.0" - prosemirror-collab "^1.3.0" - prosemirror-commands "^1.3.1" - prosemirror-dropcursor "^1.5.0" - prosemirror-gapcursor "^1.3.1" - prosemirror-history "^1.3.0" - prosemirror-inputrules "^1.2.0" - prosemirror-keymap "^1.2.0" - prosemirror-markdown "^1.10.1" - prosemirror-menu "^1.2.1" - prosemirror-model "^1.18.1" - prosemirror-schema-basic "^1.2.0" - prosemirror-schema-list "^1.2.2" - prosemirror-state "^1.4.1" - prosemirror-tables "^1.3.0" - prosemirror-trailing-node "^2.0.2" - prosemirror-transform "^1.7.0" - prosemirror-view "^1.28.2" + prosemirror-changeset "^2.2.1" + prosemirror-collab "^1.3.1" + prosemirror-commands "^1.5.2" + prosemirror-dropcursor "^1.8.1" + prosemirror-gapcursor "^1.3.2" + prosemirror-history "^1.4.1" + prosemirror-inputrules "^1.4.0" + prosemirror-keymap "^1.2.2" + prosemirror-markdown "^1.13.0" + prosemirror-menu "^1.2.4" + prosemirror-model "^1.22.2" + prosemirror-schema-basic "^1.2.3" + prosemirror-schema-list "^1.4.1" + prosemirror-state "^1.4.3" + prosemirror-tables "^1.4.0" + prosemirror-trailing-node "^2.0.9" + prosemirror-transform "^1.9.0" + prosemirror-view "^1.33.9" "@tiptap/starter-kit@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-2.1.16.tgz#1da99d2b6de8a408c3be5aea86b7747454dff4fa" - integrity sha512-DudGvkNEB1IwfMAqBKCcT49BY275hKF6SwjTWN89cLvVBd2TBe4R6wWMNKDhwfR8fmXz/aXpGJWWO2AFimY3jg== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.5.8.tgz" + integrity sha512-Beb6Q3cFmJ1pE22WlFrG3wj8XAGXqaGkbqtsGAJDnoyWL4uoSs4vLt5I/UJshK/nQlNqTWFdpd9SxRFsxBYpqg== dependencies: - "@tiptap/core" "^2.1.16" - "@tiptap/extension-blockquote" "^2.1.16" - "@tiptap/extension-bold" "^2.1.16" - "@tiptap/extension-bullet-list" "^2.1.16" - "@tiptap/extension-code" "^2.1.16" - "@tiptap/extension-code-block" "^2.1.16" - "@tiptap/extension-document" "^2.1.16" - "@tiptap/extension-dropcursor" "^2.1.16" - "@tiptap/extension-gapcursor" "^2.1.16" - "@tiptap/extension-hard-break" "^2.1.16" - "@tiptap/extension-heading" "^2.1.16" - "@tiptap/extension-history" "^2.1.16" - "@tiptap/extension-horizontal-rule" "^2.1.16" - "@tiptap/extension-italic" "^2.1.16" - "@tiptap/extension-list-item" "^2.1.16" - "@tiptap/extension-ordered-list" "^2.1.16" - "@tiptap/extension-paragraph" "^2.1.16" - "@tiptap/extension-strike" "^2.1.16" - "@tiptap/extension-text" "^2.1.16" + "@tiptap/core" "^2.5.8" + "@tiptap/extension-blockquote" "^2.5.8" + "@tiptap/extension-bold" "^2.5.8" + "@tiptap/extension-bullet-list" "^2.5.8" + "@tiptap/extension-code" "^2.5.8" + "@tiptap/extension-code-block" "^2.5.8" + "@tiptap/extension-document" "^2.5.8" + "@tiptap/extension-dropcursor" "^2.5.8" + "@tiptap/extension-gapcursor" "^2.5.8" + "@tiptap/extension-hard-break" "^2.5.8" + "@tiptap/extension-heading" "^2.5.8" + "@tiptap/extension-history" "^2.5.8" + "@tiptap/extension-horizontal-rule" "^2.5.8" + "@tiptap/extension-italic" "^2.5.8" + "@tiptap/extension-list-item" "^2.5.8" + "@tiptap/extension-ordered-list" "^2.5.8" + "@tiptap/extension-paragraph" "^2.5.8" + "@tiptap/extension-strike" "^2.5.8" + "@tiptap/extension-text" "^2.5.8" "@tiptap/vue-3@^2.1.16": - version "2.1.16" - resolved "https://registry.yarnpkg.com/@tiptap/vue-3/-/vue-3-2.1.16.tgz#a2b63cd8492845aa0fc8fc2bb2f3134f124774d0" - integrity sha512-pvfIsBAyFeZVllnl38DFX8X11XMvFcT2/vViAtkDwJpX2W/m/nmxOSlEnqmOEzC+sbFqk7bhKpBVElaROV+U0w== + version "2.5.8" + resolved "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.5.8.tgz" + integrity sha512-XTtVk9J29wKCglg0ek2R4Zr1fPN1XLQV9VKWFEGv8waUsu/P6yb443TO1fqP8/s7WysBtMWzDDZ2RP1NejymgQ== dependencies: - "@tiptap/extension-bubble-menu" "^2.1.16" - "@tiptap/extension-floating-menu" "^2.1.16" + "@tiptap/extension-bubble-menu" "^2.5.8" + "@tiptap/extension-floating-menu" "^2.5.8" "@types/estree@1.0.5": version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/node@^20.11.9": - version "20.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.9.tgz#959d436f20ce2ee3df897c3eaa0617c98fa70efb" - integrity sha512-CQXNuMoS/VcoAMISe5pm4JnEd1Br5jildbQEToEMQvutmv+EaQr90ry9raiudgpyDuqFiV9e4rnjSfLNq12M5w== +"@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.11.9": + version "20.14.14" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz" + integrity sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ== dependencies: undici-types "~5.26.4" -"@types/object.omit@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.3.tgz#cc52b1d9774c1619b5c6fc50229d087f01eabd68" - integrity sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew== - -"@types/object.pick@^1.3.2": - version "1.3.4" - resolved "https://registry.yarnpkg.com/@types/object.pick/-/object.pick-1.3.4.tgz#1a38b6e69a35f36ec2dcc8b9f5ffd555c1c4d7fc" - integrity sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA== - -"@types/throttle-debounce@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" - integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== - "@types/web-bluetooth@^0.0.20": version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" + resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz" integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vitejs/plugin-vue@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz#164b36653910d27c130cf6c945b4bd9bde5bcbee" - integrity sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA== + version "5.1.2" + resolved "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz" + integrity sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A== -"@vue/compiler-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.15.tgz#be20d1bbe19626052500b48969302cb6f396d36e" - integrity sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw== +"@vue/compiler-core@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.35.tgz" + integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg== dependencies: - "@babel/parser" "^7.23.6" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.7" + "@vue/shared" "3.4.35" entities "^4.5.0" estree-walker "^2.0.2" - source-map-js "^1.0.2" + source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz#753f5ed55f78d33dff04701fad4d76ff0cf81ee5" - integrity sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ== +"@vue/compiler-dom@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz" + integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ== dependencies: - "@vue/compiler-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-core" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/compiler-sfc@3.4.15", "@vue/compiler-sfc@^3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz#4e5811e681955fcec886cebbec483f6ae463a64b" - integrity sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA== +"@vue/compiler-sfc@^3.4.15", "@vue/compiler-sfc@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz" + integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA== dependencies: - "@babel/parser" "^7.23.6" - "@vue/compiler-core" "3.4.15" - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@babel/parser" "^7.24.7" + "@vue/compiler-core" "3.4.35" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" estree-walker "^2.0.2" - magic-string "^0.30.5" - postcss "^8.4.33" - source-map-js "^1.0.2" + magic-string "^0.30.10" + postcss "^8.4.40" + source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz#a910a5b89ba4f0a776e40b63d69bdae2f50616cf" - integrity sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw== +"@vue/compiler-ssr@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz" + integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/devtools-api@^6.5.0": - version "6.5.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697" - integrity sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA== +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3": + version "6.6.3" + resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz" + integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== -"@vue/reactivity@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.15.tgz#ad9d9b83f5398d2e8660ad5cfc0f171e7679a9a1" - integrity sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w== +"@vue/reactivity@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.35.tgz" + integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw== dependencies: - "@vue/shared" "3.4.15" + "@vue/shared" "3.4.35" -"@vue/runtime-core@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.15.tgz#f81e2fd2108ea41a6d5c61c2462b11dfb754fdf0" - integrity sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw== +"@vue/runtime-core@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.35.tgz" + integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA== dependencies: - "@vue/reactivity" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/reactivity" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/runtime-dom@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz#108ef86aa7334ead5d6b9c56a7d93679e1e45406" - integrity sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw== +"@vue/runtime-dom@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz" + integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw== dependencies: - "@vue/runtime-core" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/reactivity" "3.4.35" + "@vue/runtime-core" "3.4.35" + "@vue/shared" "3.4.35" csstype "^3.1.3" -"@vue/server-renderer@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.15.tgz#34438f998e6f6370fac78883a75efe136631957f" - integrity sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw== +"@vue/server-renderer@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.35.tgz" + integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw== dependencies: - "@vue/compiler-ssr" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/shared@3.4.15": - version "3.4.15" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.15.tgz#e7d2ea050c667480cb5e1a6df2ac13bcd03a8f30" - integrity sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g== +"@vue/shared@3.4.35": + version "3.4.35" + resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.4.35.tgz" + integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ== "@vuelidate/components@^1.2.6": version "1.2.6" - resolved "https://registry.yarnpkg.com/@vuelidate/components/-/components-1.2.6.tgz#a0f36209ed1f6aa18f0c81ef11747f08f948eaef" + resolved "https://registry.npmjs.org/@vuelidate/components/-/components-1.2.6.tgz" integrity sha512-oteVHhic9F4zDnSvSRIAadrmu1can/TwjAqGOnpGFc+rKDd29fhUdbmIVEDQLQjVAF0VzZK7s0y+cxvfMERF9w== dependencies: "@vuelidate/core" "^2.0.3" @@ -738,53 +549,53 @@ "@vuelidate/core@^2.0.3": version "2.0.3" - resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede" + resolved "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.3.tgz" integrity sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA== dependencies: vue-demi "^0.13.11" "@vuelidate/validators@^2.0.4": version "2.0.4" - resolved "https://registry.yarnpkg.com/@vuelidate/validators/-/validators-2.0.4.tgz#0a88a7b2b18f15fd9c384095593f369a6f7384e9" + resolved "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.4.tgz" integrity sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw== dependencies: vue-demi "^0.13.11" "@vueuse/core@^10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.7.2.tgz#78917803a29a0bca1803a6521fdf7ff873f6e72c" - integrity sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ== + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz" + integrity sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.7.2" - "@vueuse/shared" "10.7.2" - vue-demi ">=0.14.6" + "@vueuse/metadata" "10.11.0" + "@vueuse/shared" "10.11.0" + vue-demi ">=0.14.8" -"@vueuse/metadata@10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.7.2.tgz#ba0187ce138c287fd80301afc5b0d6a97e563633" - integrity sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ== +"@vueuse/metadata@10.11.0": + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz" + integrity sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ== -"@vueuse/shared@10.7.2": - version "10.7.2" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.7.2.tgz#746441fbc08072371dd600a55883422c83fd0cab" - integrity sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA== +"@vueuse/shared@10.11.0": + version "10.11.0" + resolved "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz" + integrity sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A== dependencies: - vue-demi ">=0.14.6" + vue-demi ">=0.14.8" acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -792,99 +603,95 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== any-promise@^1.0.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" arg@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== autoprefixer@^10.4.17: - version "10.4.17" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.17.tgz#35cd5695cbbe82f536a50fa025d561b01fdec8be" - integrity sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg== + version "10.4.20" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== dependencies: - browserslist "^4.22.2" - caniuse-lite "^1.0.30001578" + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.0" + picocolors "^1.0.1" postcss-value-parser "^4.2.0" -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@0.28.1: + version "0.28.1" + resolved "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz" + integrity sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -892,51 +699,46 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" -browserslist@^4.22.2: - version "4.22.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6" - integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== +browserslist@^4.23.3, "browserslist@>= 4.21.0": + version "4.23.3" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== dependencies: - caniuse-lite "^1.0.30001580" - electron-to-chromium "^1.4.648" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase-css@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -caniuse-lite@^1.0.30001578, caniuse-lite@^1.0.30001580: - version "1.0.30001581" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" - integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== - -case-anything@^2.1.13: - version "2.1.13" - resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.13.tgz#0cdc16278cb29a7fcdeb072400da3f342ba329e9" - integrity sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng== +caniuse-lite@^1.0.30001646: + version "1.0.30001647" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001647.tgz" + integrity sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg== chalk@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -944,7 +746,7 @@ chalk@^4.0.0: chart.js@^2.9.4: version "2.9.4" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + resolved "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz" integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== dependencies: chartjs-color "^2.1.0" @@ -952,38 +754,23 @@ chart.js@^2.9.4: chartjs-color-string@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + resolved "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz" integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== dependencies: color-name "^1.0.0" chartjs-color@^2.1.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + resolved "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz" integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== dependencies: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -"chokidar@>=3.0.0 <4.0.0": - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.5.3, "chokidar@>=3.0.0 <4.0.0": + version "3.6.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -997,60 +784,60 @@ chokidar@^3.5.3: color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" commander@^4.0.0: version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== crelt@^1.0.0: version "1.0.6" - resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72" + resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz" integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g== cross-env@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: cross-spawn "^7.0.1" cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -1059,143 +846,134 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csstype@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -dash-get@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" - integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== - debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + version "4.3.6" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== dependencies: ms "2.1.2" deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== didyoumean@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== dlv@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -electron-to-chromium@^1.4.648: - version "1.4.648" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz#c7b46c9010752c37bb4322739d6d2dd82354fbe4" - integrity sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg== +electron-to-chromium@^1.5.4: + version "1.5.4" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz" + integrity sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== entities@^4.4.0, entities@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-vue@^9.20.1: - version "9.20.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.20.1.tgz#7ed78846898574b2cd26939f28b0b87798a7b528" - integrity sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ== + version "9.27.0" + resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz" + integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" - postcss-selector-parser "^6.0.13" - semver "^7.5.4" - vue-eslint-parser "^9.4.0" + postcss-selector-parser "^6.0.15" + semver "^7.6.0" + vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" eslint-scope@^7.1.1, eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -1203,19 +981,19 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.2: eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== +"eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.56.0, eslint@>=6.0.0, eslint@>=7.0.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" "@ungap/structured-clone" "^1.2.0" @@ -1252,57 +1030,50 @@ eslint@^8.56.0: espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== - dependencies: - estraverse "^5.1.0" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.4.0, esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-walker@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.3.0: version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -1313,77 +1084,78 @@ fast-glob@^3.3.0: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flatpickr@^4.6.13: version "4.6.13" - resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" + resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -follow-redirects@^1.14.9: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.0: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" form-data@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -1392,108 +1164,106 @@ form-data@^4.0.0: fraction.js@^4.3.7: version "4.3.7" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.4.5" + resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" glob@^7.1.3: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -globals@^13.19.0: +globals@^13.19.0, globals@^13.24.0: version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== guid@0.0.12: version "0.0.12" - resolved "https://registry.yarnpkg.com/guid/-/guid-0.0.12.tgz#9137c52b185f7de12490b9bebcc1660b9025fe0c" - integrity sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw= + resolved "https://registry.npmjs.org/guid/-/guid-0.0.12.tgz" + integrity sha512-J0MCgzgJcvLarLGTeVIhXdQwqlEJ9rxmxc/X71GR4VR5V/BIQ9FFfzGL52qYKgREQI8qPevc1qFNwB/4VnBuRA== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + version "5.3.1" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + version "4.3.7" + resolved "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -1501,141 +1271,127 @@ import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + version "2.15.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== dependencies: - hasown "^2.0.0" - -is-extendable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" + hasown "^2.0.2" is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.19.1: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +jiti@^1.21.0: + version "1.21.6" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" laravel-vite-plugin@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/laravel-vite-plugin/-/laravel-vite-plugin-1.0.1.tgz#b92d0c939ccd60879746b23282100131f753cec7" - integrity sha512-laLEZUnSskIDZtLb2FNRdcjsRUhh1VOVvapbVGVTeaBPJTCF/b6gbPiX2dZdcH1RKoOE0an7L+2gnInk6K33Zw== + version "1.0.5" + resolved "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-1.0.5.tgz" + integrity sha512-Zv+to82YLBknDCZ6g3iwOv9wZ7f6EWStb9pjSm7MGe9Mfoy5ynT2ssZbGsMr1udU6rDg9HOoYEVGw5Qf+p9zbw== dependencies: picocolors "^1.0.0" vite-plugin-full-reload "^1.1.0" levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -1643,181 +1399,149 @@ levn@^0.4.1: lilconfig@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== lilconfig@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + version "3.1.2" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== linkify-it@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz" integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== dependencies: uc.micro "^2.0.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.castarray@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" - integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= + resolved "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz" + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +magic-string@^0.30.10: + version "0.30.11" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - -magic-string@^0.30.5: - version "0.30.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" - integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" - -make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + "@jridgewell/sourcemap-codec" "^1.5.0" markdown-it@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.0.0.tgz#b4b2ddeb0f925e88d981f84c183b59bac9e3741b" - integrity sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw== + version "14.1.0" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== dependencies: argparse "^2.0.1" entities "^4.4.0" linkify-it "^5.0.0" mdurl "^2.0.0" punycode.js "^2.3.1" - uc.micro "^2.0.0" + uc.micro "^2.1.0" maska@^2.1.11: version "2.1.11" - resolved "https://registry.yarnpkg.com/maska/-/maska-2.1.11.tgz#71ef39a0c7121beda374f9a309bded5c129dd3f1" + resolved "https://registry.npmjs.org/maska/-/maska-2.1.11.tgz" integrity sha512-IGqWjBnKxMYcVa06pb4mPfag9sJjnR2T15CdGfQ2llR3gajiSd4AxXCvNqHMEq9W3UBhjjTazgWumsP3sWrUSg== mdurl@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz" integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mini-svg-data-uri@^1.2.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz#91d2c09f45e056e5e1043340b8b37ba7b50f4fac" - integrity sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA== - -mini-svg-data-uri@^1.4.4: +mini-svg-data-uri@^1.2.3, mini-svg-data-uri@^1.4.4: version "1.4.4" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + resolved "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz" integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.5, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== moment@^2.10.2, moment@^2.30.1: version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== mz@^2.7.0: version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== dependencies: any-promise "^1.0.0" @@ -1826,177 +1550,163 @@ mz@^2.7.0: nanoid@^3.3.7: version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== nth-check@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" object-assign@^4.0.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object.omit@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" - integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== - dependencies: - is-extendable "^1.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - once@^1.3.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" orderedmap@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.1.1.tgz#61481269c44031c449915497bf5a4ad273c512d2" + resolved "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz" integrity sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g== p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path@^0.12.7: version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + resolved "https://registry.npmjs.org/path/-/path-0.12.7.tgz" integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== dependencies: process "^0.11.1" util "^0.10.3" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pinia@^2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc" - integrity sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ== + version "2.2.0" + resolved "https://registry.npmjs.org/pinia/-/pinia-2.2.0.tgz" + integrity sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA== dependencies: - "@vue/devtools-api" "^6.5.0" - vue-demi ">=0.14.5" + "@vue/devtools-api" "^6.6.3" + vue-demi "^0.14.8" pirates@^4.0.1: version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== postcss-import@^15.1.0: version "15.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== dependencies: postcss-value-parser "^4.0.0" @@ -2005,106 +1715,122 @@ postcss-import@^15.1.0: postcss-js@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz" integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== dependencies: camelcase-css "^2.0.1" postcss-load-config@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== dependencies: lilconfig "^3.0.0" yaml "^2.3.4" postcss-nested@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" - integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + version "6.2.0" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== dependencies: - postcss-selector-parser "^6.0.11" + postcss-selector-parser "^6.1.1" -postcss-selector-parser@6.0.10: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== +postcss-selector-parser@^6.0.11: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== +postcss-selector-parser@^6.0.15: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz" + integrity sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.39, postcss@^8.4.40, postcss@>=8.0.9: + version "8.4.40" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" + picocolors "^1.0.1" + source-map-js "^1.2.0" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" - integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== + version "3.3.3" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== process@^0.11.1: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -prosemirror-changeset@^2.2.0: +prosemirror-changeset@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" + resolved "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz" integrity sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ== dependencies: prosemirror-transform "^1.0.0" -prosemirror-collab@^1.3.0: +prosemirror-collab@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz#0e8c91e76e009b53457eb3b3051fb68dad029a33" + resolved "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz" integrity sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ== dependencies: prosemirror-state "^1.0.0" -prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz#e94aeea52286f658cd984270de9b4c3fff580852" - integrity sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ== +prosemirror-commands@^1.0.0, prosemirror-commands@^1.5.2: + version "1.6.0" + resolved "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.0.tgz" + integrity sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-dropcursor@^1.5.0: +prosemirror-dropcursor@^1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz#49b9fb2f583e0d0f4021ff87db825faa2be2832d" + resolved "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz" integrity sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" prosemirror-view "^1.1.0" -prosemirror-gapcursor@^1.3.1: +prosemirror-gapcursor@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz#5fa336b83789c6199a7341c9493587e249215cb4" + resolved "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz" integrity sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ== dependencies: prosemirror-keymap "^1.0.0" @@ -2112,43 +1838,43 @@ prosemirror-gapcursor@^1.3.1: prosemirror-state "^1.0.0" prosemirror-view "^1.0.0" -prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.2.tgz#ce6ad7ab9db83e761aee716f3040d74738311b15" - integrity sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g== +prosemirror-history@^1.0.0, prosemirror-history@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz" + integrity sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ== dependencies: prosemirror-state "^1.2.2" prosemirror-transform "^1.0.0" prosemirror-view "^1.31.0" rope-sequence "^1.3.0" -prosemirror-inputrules@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.3.0.tgz#d43ce469ffe09a1b4cbac3f0ad367b0e4b504875" - integrity sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA== +prosemirror-inputrules@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz" + integrity sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: +prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz#14a54763a29c7b2704f561088ccf3384d14eb77e" + resolved "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz" integrity sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ== dependencies: prosemirror-state "^1.0.0" w3c-keyname "^2.2.0" -prosemirror-markdown@^1.10.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz#d2de09d37897abf7adb6293d925ff132dac5b0a6" - integrity sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ== +prosemirror-markdown@^1.13.0: + version "1.13.0" + resolved "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz" + integrity sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g== dependencies: markdown-it "^14.0.0" - prosemirror-model "^1.0.0" + prosemirror-model "^1.20.0" -prosemirror-menu@^1.2.1: +prosemirror-menu@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz#3cfdc7c06d10f9fbd1bce29082c498bd11a0a79a" + resolved "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz" integrity sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA== dependencies: crelt "^1.0.0" @@ -2156,42 +1882,42 @@ prosemirror-menu@^1.2.1: prosemirror-history "^1.0.0" prosemirror-state "^1.0.0" -prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.19.0, prosemirror-model@^1.8.1: - version "1.19.4" - resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.19.4.tgz#e45e84480c97dd3922095dbe579e1c98c86c0704" - integrity sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ== +prosemirror-model@^1.0.0, prosemirror-model@^1.19.0, prosemirror-model@^1.20.0, prosemirror-model@^1.21.0, prosemirror-model@^1.22.1, prosemirror-model@^1.22.2, prosemirror-model@^1.8.1: + version "1.22.2" + resolved "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.2.tgz" + integrity sha512-I4lS7HHIW47D0Xv/gWmi4iUWcQIDYaJKd8Hk4+lcSps+553FlQrhmxtItpEvTr75iAruhzVShVp6WUwsT6Boww== dependencies: orderedmap "^2.0.0" -prosemirror-schema-basic@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz#6695f5175e4628aab179bf62e5568628b9cfe6c7" - integrity sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw== +prosemirror-schema-basic@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.3.tgz" + integrity sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA== dependencies: prosemirror-model "^1.19.0" -prosemirror-schema-list@^1.2.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz#05374702cf35a3ba5e7ec31079e355a488d52519" - integrity sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A== +prosemirror-schema-list@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz" + integrity sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.7.3" -prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1: +prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.2, prosemirror-state@^1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.3.tgz#94aecf3ffd54ec37e87aa7179d13508da181a080" + resolved "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz" integrity sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q== dependencies: prosemirror-model "^1.0.0" prosemirror-transform "^1.0.0" prosemirror-view "^1.27.0" -prosemirror-tables@^1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.5.tgz#80f03394f5b9991f9693bcb3a90b6dba6b16254d" - integrity sha512-JSZ2cCNlApu/ObAhdPyotrjBe2cimniniTpz60YXzbL0kZ+47nEYk2LWbfKU2lKpBkUNquta2PjteoNi4YCluQ== +prosemirror-tables@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.4.0.tgz" + integrity sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA== dependencies: prosemirror-keymap "^1.1.2" prosemirror-model "^1.8.1" @@ -2199,68 +1925,72 @@ prosemirror-tables@^1.3.0: prosemirror-transform "^1.2.1" prosemirror-view "^1.13.3" -prosemirror-trailing-node@^2.0.2: - version "2.0.7" - resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.7.tgz#ba782a7929f18bcae650b1c7082a2d10443eab19" - integrity sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q== +prosemirror-trailing-node@^2.0.9: + version "2.0.9" + resolved "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.9.tgz" + integrity sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg== dependencies: "@remirror/core-constants" "^2.0.2" - "@remirror/core-helpers" "^3.0.0" escape-string-regexp "^4.0.0" -prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0, prosemirror-transform@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz#a47c64a3c373c1bd0ff46e95be3210c8dda0cd11" - integrity sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A== +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.3, prosemirror-transform@^1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz" + integrity sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg== dependencies: - prosemirror-model "^1.0.0" + prosemirror-model "^1.21.0" -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.28.2, prosemirror-view@^1.31.0: - version "1.32.7" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.32.7.tgz#b9c4e8471daeba79489befa59eaeaeb4cd2e2653" - integrity sha512-pvxiOoD4shW41X5bYDjRQk3DSG4fMqxh36yPMt7VYgU3dWRmqFzWJM/R6zeo1KtC8nyk717ZbQND3CC9VNeptw== +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.33.8, prosemirror-view@^1.33.9: + version "1.33.9" + resolved "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.9.tgz" + integrity sha512-xV1A0Vz9cIcEnwmMhKKFAOkfIp8XmJRnaZoPqNXrPS7EK5n11Ov8V76KhR0RsfQd/SIzmWY+bg+M44A2Lx/Nnw== dependencies: - prosemirror-model "^1.16.0" + prosemirror-model "^1.20.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + punycode.js@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + resolved "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz" integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.1.7, resolve@^1.22.2: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -2269,97 +1999,106 @@ resolve@^1.1.7, resolve@^1.22.2: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== +rollup@^4.13.0: + version "4.20.0" + resolved "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz" + integrity sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" + "@rollup/rollup-android-arm-eabi" "4.20.0" + "@rollup/rollup-android-arm64" "4.20.0" + "@rollup/rollup-darwin-arm64" "4.20.0" + "@rollup/rollup-darwin-x64" "4.20.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.20.0" + "@rollup/rollup-linux-arm-musleabihf" "4.20.0" + "@rollup/rollup-linux-arm64-gnu" "4.20.0" + "@rollup/rollup-linux-arm64-musl" "4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.20.0" + "@rollup/rollup-linux-riscv64-gnu" "4.20.0" + "@rollup/rollup-linux-s390x-gnu" "4.20.0" + "@rollup/rollup-linux-x64-gnu" "4.20.0" + "@rollup/rollup-linux-x64-musl" "4.20.0" + "@rollup/rollup-win32-arm64-msvc" "4.20.0" + "@rollup/rollup-win32-ia32-msvc" "4.20.0" + "@rollup/rollup-win32-x64-msvc" "4.20.0" fsevents "~2.3.2" rope-sequence@^1.3.0: version "1.3.4" - resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.4.tgz#df85711aaecd32f1e756f76e43a415171235d425" + resolved "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz" integrity sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -sass@^1.70.0: - version "1.70.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.70.0.tgz#761197419d97b5358cb25f9dd38c176a8a270a75" - integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== +sass@*, sass@^1.70.0: + version "1.77.8" + resolved "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz" + integrity sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" -semver@^7.3.6, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.6, semver@^7.6.0: + version "7.6.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sortablejs@1.14.0: version "1.14.0" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" + resolved "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz" integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.0.2, source-map-js@^1.2.0, "source-map-js@>=0.6.2 <2.0.0": + version "1.2.0" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: - name string-width-cjs +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -2368,42 +2107,42 @@ sortablejs@1.14.0: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== sucrase@^3.32.0: version "3.35.0" - resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz" integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== dependencies: "@jridgewell/gen-mapping" "^0.3.2" @@ -2416,25 +2155,25 @@ sucrase@^3.32.0: supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tailwind-scrollbar@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/tailwind-scrollbar/-/tailwind-scrollbar-3.0.5.tgz#c904118f4f1a572edef93da2d436e1db8b93dd87" - integrity sha512-0ZwxTivevqq9BY9fRP9zDjHl7Tu+J5giBGbln+0O1R/7nHtBUKnjQcA1aTIhK7Oyjp6Uc/Dj6/dn8Dq58k5Uww== + version "3.1.0" + resolved "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz" + integrity sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg== -tailwindcss@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== +"tailwindcss@^1.2 || ^2.0 || ^3.0", tailwindcss@^3.4.1, "tailwindcss@>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1", "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", "tailwindcss@>=3.0.0 || insiders", tailwindcss@3.x: + version "3.4.7" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz" + integrity sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -2444,7 +2183,7 @@ tailwindcss@^3.4.1: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.19.1" + jiti "^1.21.0" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -2461,147 +2200,147 @@ tailwindcss@^3.4.1: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== dependencies: any-promise "^1.0.0" -throttle-debounce@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" - integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== - tippy.js@^6.3.7: version "6.3.7" - resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" + resolved "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz" integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ== dependencies: "@popperjs/core" "^2.9.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" ts-interface-checker@^0.1.9: version "0.1.13" - resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -uc.micro@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.0.0.tgz#84b3c335c12b1497fd9e80fcd3bfa7634c363ff1" - integrity sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@^0.10.3: version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + resolved "https://registry.npmjs.org/util/-/util-0.10.4.tgz" integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" v-money3@^3.24.1: version "3.24.1" - resolved "https://registry.yarnpkg.com/v-money3/-/v-money3-3.24.1.tgz#4996d233fe1c3202f7f52e27abe89df8be4d898e" + resolved "https://registry.npmjs.org/v-money3/-/v-money3-3.24.1.tgz" integrity sha512-nGnxS06jkNsVzkuMQJ/0we6PSA4HO7jH1B7NeCF3Tv7Xm61poEUW7D1fdXXWR0IWLWneMSsCt3d4YQo6fTeBZA== v-tooltip@^4.0.0-beta.17: version "4.0.0-beta.17" - resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-4.0.0-beta.17.tgz#914ab8fe801c2c45f1328f1260b770ec2049da64" + resolved "https://registry.npmjs.org/v-tooltip/-/v-tooltip-4.0.0-beta.17.tgz" integrity sha512-d7v/6KEXQOtcj3NT3Z1LpbDv8SBh8JgbsD+3s/zGIGCxiXC2SoVW6wGV4X0MlCo97PiosibcSe+VKbFiy4AKnQ== dependencies: "@popperjs/core" "^2.11.0" vue-resize "^2.0.0-alpha.1" vite-plugin-full-reload@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz#ca6fa32631024a459ea9e5613dd4c0ff0f3b7995" - integrity sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA== + version "1.2.0" + resolved "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz" + integrity sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA== dependencies: picocolors "^1.0.0" picomatch "^2.3.1" -vite@^5.0.0: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== +vite@^5.0.0, vite@5.3.5: + version "5.3.5" + resolved "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz" + integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== dependencies: - esbuild "^0.19.3" - postcss "^8.4.32" - rollup "^4.2.0" + esbuild "^0.21.3" + postcss "^8.4.39" + rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" -vue-demi@>=0.14.5, vue-demi@>=0.14.6: - version "0.14.6" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92" - integrity sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w== - vue-demi@^0.13.11: version "0.13.11" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz" integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-eslint-parser@^9.4.0: - version "9.4.2" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz#02ffcce82042b082292f2d1672514615f0d95b6d" - integrity sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ== +vue-demi@^0.14.8: + version "0.14.10" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue-demi@>=0.14.8: + version "0.14.10" + resolved "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== dependencies: debug "^4.3.4" eslint-scope "^7.1.1" @@ -2612,66 +2351,71 @@ vue-eslint-parser@^9.4.0: semver "^7.3.6" vue-flatpickr-component@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/vue-flatpickr-component/-/vue-flatpickr-component-11.0.3.tgz#774ec62156daa90efb8df5d540f1eaf5bcbb93f6" - integrity sha512-SYNW/lqK1q9gzr5kQpNDwnlgUIDnXJpG1AmoDxVyOYVtUD7mLaDU1w+MJLFI644NYtwh9NrCt5LpojlsjtbvqA== + version "11.0.5" + resolved "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-11.0.5.tgz" + integrity sha512-Vfwg5uVU+sanKkkLzUGC5BUlWd5wlqAMq/UpQ6lI2BCZq0DDrXhOMX7hrevt8bEgglIq2QUv0K2Nl84Me/VnlA== dependencies: flatpickr "^4.6.13" vue-i18n@^9.9.0: - version "9.9.0" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.9.0.tgz#20d348fa7e37fc88e4c84f69781b2f1215c7769f" - integrity sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA== + version "9.13.1" + resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz" + integrity sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg== dependencies: - "@intlify/core-base" "9.9.0" - "@intlify/shared" "9.9.0" + "@intlify/core-base" "9.13.1" + "@intlify/shared" "9.13.1" "@vue/devtools-api" "^6.5.0" vue-resize@^2.0.0-alpha.1: version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz#43eeb79e74febe932b9b20c5c57e0ebc14e2df3a" + resolved "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz" integrity sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg== vue-router@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.5.tgz#b9e3e08f1bd9ea363fdd173032620bc50cf0e98a" - integrity sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw== + version "4.4.2" + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.4.2.tgz" + integrity sha512-1qNybkn2L7QsLzaXs8nvlQmRKp8XF8DCxZys/Jr1JpQcHsKUxTKzTxCVA1G7NfBfwRIBgCJPoujOG5lHCCNUxw== dependencies: - "@vue/devtools-api" "^6.5.0" + "@vue/devtools-api" "^6.6.3" -vue@^3.4: - version "3.4.15" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c" - integrity sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ== +"vue@^2.0.0 || >=3.0.0", "vue@^2.6.14 || ^3.3.0", "vue@^2.7.0 || ^3.0.0", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.0.1, vue@^3.0.11, vue@^3.2.0, vue@^3.2.25, vue@^3.4, "vue@>= 3", "vue@>= 3.2.0", vue@3.4.35: + version "3.4.35" + resolved "https://registry.npmjs.org/vue/-/vue-3.4.35.tgz" + integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ== dependencies: - "@vue/compiler-dom" "3.4.15" - "@vue/compiler-sfc" "3.4.15" - "@vue/runtime-dom" "3.4.15" - "@vue/server-renderer" "3.4.15" - "@vue/shared" "3.4.15" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-sfc" "3.4.35" + "@vue/runtime-dom" "3.4.35" + "@vue/server-renderer" "3.4.35" + "@vue/shared" "3.4.35" vuedraggable@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-4.1.0.tgz#edece68adb8a4d9e06accff9dfc9040e66852270" + resolved "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz" integrity sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww== dependencies: sortablejs "1.14.0" w3c-keyname@^2.2.0: version "2.2.8" - resolved "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5" + resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz" integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ== which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -2680,7 +2424,7 @@ which@^2.0.1: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -2689,25 +2433,20 @@ wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== xml-name-validator@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz" integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + version "2.5.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==