diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 1cf15ae26..000000000 --- a/.dockerignore +++ /dev/null @@ -1,10 +0,0 @@ -.dockerignore -.gitignore -*.md -.git/ -.idea/ -.DS_Store/ -docker-compose.* -LICENSE -nginx.conf -yarn.lock diff --git a/.env.example b/.env.example index c8d4e223d..710dadf6f 100644 --- a/.env.example +++ b/.env.example @@ -2,14 +2,14 @@ APP_ENV=production APP_KEY=base64:kgk/4DW1vEVy7aEvet5FPp5un6PIGe/so8H0mvoUtW0= APP_DEBUG=true APP_LOG_LEVEL=debug -APP_URL=http://crater.test +APP_URL=http://invoiceshelf.test DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 -DB_DATABASE=crater -DB_USERNAME=crater -DB_PASSWORD="crater" +DB_DATABASE=invoiceshelf +DB_USERNAME=invoiceshelf +DB_PASSWORD="invoiceshelf" BROADCAST_DRIVER=log CACHE_DRIVER=file @@ -28,12 +28,15 @@ MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION= +MAIL_FROM_NAME= +MAIL_FROM_ADDRESS= + PUSHER_APP_ID= PUSHER_KEY= PUSHER_SECRET= -SANCTUM_STATEFUL_DOMAINS=crater.test -SESSION_DOMAIN=crater.test +SANCTUM_STATEFUL_DOMAINS=invoiceshelf.test +SESSION_DOMAIN=invoiceshelf.test TRUSTED_PROXIES="*" diff --git a/.env.testing b/.env.testing index d5e8caba1..4fd02cf32 100644 --- a/.env.testing +++ b/.env.testing @@ -9,5 +9,5 @@ MAIL_PORT=587 MAIL_USERNAME=ff538f0e1037f4 MAIL_PASSWORD=c04c81145fcb73 MAIL_ENCRYPTION=tls -MAIL_FROM_ADDRESS="admin@craterapp.com" +MAIL_FROM_ADDRESS="admin@invoiceshelf.com" MAIL_FROM_NAME="John Doe" diff --git a/.eslintrc.js b/.eslintrc.mjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.mjs diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 27d98cb99..7775212c2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -17,7 +17,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Please complete the following information:** -- Crater version: +- InvoiceShelf version: - PHP version: - Database type and version: diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 000000000..ec8784d86 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,139 @@ +name: Check + +# Run this workflow every time a new commit pushed to your repository +on: + push: + paths-ignore: + - '**/*.md' + - 'public/build/*.js' + - 'public/build/**/*.js' + pull_request: + paths-ignore: + - '**/*.md' + - 'public/build/*.js' + - 'public/build/**/*.js' + # Allow manually triggering the workflow. + workflow_dispatch: + +jobs: + kill_previous: + name: 0️⃣ Kill previous runs + runs-on: ubuntu-latest + # We want to run on external PRs, but not on our own internal PRs as they'll be run by the push to the branch. + if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.12.1 + with: + access_token: ${{ github.token }} + + php_syntax_errors: + name: 1️⃣ PHP Code Style errors + runs-on: ubuntu-latest + needs: + - kill_previous + steps: + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.2 + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install dependencies + uses: ramsey/composer-install@v2 + + - name: Check source code for syntax errors + run: ./vendor/bin/pint --test + + tests: + name: 2️⃣ PHP ${{ matrix.php-version }} Tests + needs: + - php_syntax_errors + runs-on: ubuntu-latest + strategy: + matrix: + php-version: + - 8.2 + - 8.3 + env: + extensions: bcmath, curl, dom, gd, imagick, json, libxml, mbstring, pcntl, pdo, pdo_mysql, zip + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP Action + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + extensions: ${{ env.extensions }} + coverage: xdebug + tools: pecl, composer + + - name: Install Composer dependencies + uses: ramsey/composer-install@v2 + + - name: Use Node.js 20 + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Install + run: npm install + + - name: Compile Front-end + run: npm run build + + - name: Apply tests ${{ matrix.php-version }} + run: php artisan test + + createReleaseFile: + name: 3️⃣ Build / Upload - Release File + if: github.ref_type == 'tag' + needs: + - tests + runs-on: ubuntu-latest + env: + extensions: bcmath, curl, dom, gd, imagick, json, libxml, mbstring, pcntl, pdo, pdo_mysql, zip + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 8.2 + extensions: ${{ env.extensions }} + coverage: none + + - name: Install Composer dependencies + uses: ramsey/composer-install@v2 + with: + composer-options: --no-dev + + - name: Use Node.js 20 + uses: actions/setup-node@v3 + with: + node-version: 20 + + - name: Install + run: npm install + + - name: Compile Front-end + run: npm run build + + - name: Build Dist + run: | + make clean dist + + - name: Upload package + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ github.token }} + file: InvoiceShelf.zip + asset_name: InvoiceShelf.zip + tag: ${{ github.ref }} + overwrite: true diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index c76c05403..000000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: CI - -on: [push, pull_request] - -jobs: - build-test: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - php: ['7.4', '8.0'] - - name: PHP ${{ matrix.php }} - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Install dependencies - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: exif - - - name: Install PHP 7 dependencies - run: composer update --no-interaction --no-progress - if: "matrix.php < 8" - - - name: Install PHP 8 dependencies - run: composer update --ignore-platform-req=php --no-interaction --no-progress - if: "matrix.php >= 8" - - - name: Check coding style - run: ./vendor/bin/php-cs-fixer fix -v --dry-run --using-cache=no --config=.php-cs-fixer.dist.php - - - name: Unit Tests - run: php ./vendor/bin/pest diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml deleted file mode 100644 index 96fbd9d26..000000000 --- a/.github/workflows/uffizzi-build.yml +++ /dev/null @@ -1,161 +0,0 @@ -name: Build PR Image -on: - pull_request: - types: [opened,synchronize,reopened,closed] - -jobs: - - build-application: - name: Build and Push `application` - runs-on: ubuntu-latest - if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }} - outputs: - tags: ${{ steps.meta.outputs.tags }} - steps: - - name: Checkout git repo - uses: actions/checkout@v3 - - name: Generate UUID image name - id: uuid - run: echo "UUID_TAG_APP=$(uuidgen)" >> $GITHUB_ENV - - name: Docker metadata - id: meta - uses: docker/metadata-action@v3 - with: - images: registry.uffizzi.com/${{ env.UUID_TAG_APP }} - tags: type=raw,value=60d - - name: Build and Push Image to registry.uffizzi.com ephemeral registry - uses: docker/build-push-action@v2 - with: - push: true - context: ./ - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - file: ./uffizzi/Dockerfile - - build-nginx: - needs: - - build-application - name: Build and Push `nginx` - runs-on: ubuntu-latest - if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }} - outputs: - tags: ${{ steps.meta.outputs.tags }} - steps: - - name: Checkout git repo - uses: actions/checkout@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Generate UUID image name - id: uuid - run: echo "UUID_TAG_NGINX=$(uuidgen)" >> $GITHUB_ENV - - name: Docker metadata - id: meta - uses: docker/metadata-action@v3 - with: - images: registry.uffizzi.com/${{ env.UUID_TAG_NGINX }} - tags: type=raw,value=60d - - name: Build and Push Image to Uffizzi ephemeral registry - uses: docker/build-push-action@v2 - with: - push: true - context: ./ - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - file: ./uffizzi/nginx/Dockerfile - build-args: | - BASE_IMAGE=${{ needs.build-application.outputs.tags }} - cache-from: type=gha - cache-to: type=gha,mode=max - - - build-crond: - name: Build and Push `crond` - runs-on: ubuntu-latest - if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }} - outputs: - tags: ${{ steps.meta.outputs.tags }} - steps: - - name: Checkout git repo - uses: actions/checkout@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Generate UUID image name - id: uuid - run: echo "UUID_TAG_CROND=$(uuidgen)" >> $GITHUB_ENV - - name: Docker metadata - id: meta - uses: docker/metadata-action@v3 - with: - images: registry.uffizzi.com/${{ env.UUID_TAG_CROND }} - tags: type=raw,value=60d - - name: Build and Push Image to registry.uffizzi.com ephemeral registry - uses: docker/build-push-action@v2 - with: - push: true - context: ./ - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - file: ./uffizzi/crond/Dockerfile - cache-from: type=gha - cache-to: type=gha,mode=max - - - - render-compose-file: - name: Render Docker Compose File - # Pass output of this workflow to another triggered by `workflow_run` event. - runs-on: ubuntu-latest - outputs: - compose-file-cache-key: ${{ steps.hash.outputs.hash }} - needs: - - build-application - - build-nginx - - build-crond - steps: - - name: Checkout git repo - uses: actions/checkout@v3 - - name: Render Compose File - run: | - APP_IMAGE=$(echo ${{ needs.build-application.outputs.tags }}) - export APP_IMAGE - NGINX_IMAGE=$(echo ${{ needs.build-nginx.outputs.tags }}) - export NGINX_IMAGE - CROND_IMAGE=$(echo ${{ needs.build-crond.outputs.tags }}) - export CROND_IMAGE - # Render simple template from environment variables. - envsubst < ./uffizzi/docker-compose.uffizzi.yml > docker-compose.rendered.yml - cat docker-compose.rendered.yml - - name: Upload Rendered Compose File as Artifact - uses: actions/upload-artifact@v3 - with: - name: preview-spec - path: docker-compose.rendered.yml - retention-days: 2 - - name: Serialize PR Event to File - run: | - cat << EOF > event.json - ${{ toJSON(github.event) }} - - EOF - - name: Upload PR Event as Artifact - uses: actions/upload-artifact@v3 - with: - name: preview-spec - path: event.json - retention-days: 2 - - delete-preview: - name: Call for Preview Deletion - runs-on: ubuntu-latest - if: ${{ github.event.action == 'closed' }} - steps: - # If this PR is closing, we will not render a compose file nor pass it to the next workflow. - - name: Serialize PR Event to File - run: echo '${{ toJSON(github.event) }}' > event.json - - name: Upload PR Event as Artifact - uses: actions/upload-artifact@v3 - with: - name: preview-spec - path: event.json - retention-days: 2 - diff --git a/.github/workflows/uffizzi-preview.yml b/.github/workflows/uffizzi-preview.yml deleted file mode 100644 index 4e35f594a..000000000 --- a/.github/workflows/uffizzi-preview.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Deploy Uffizzi Preview - -on: - workflow_run: - workflows: - - "Build PR Image" - types: - - completed - - -jobs: - cache-compose-file: - name: Cache Compose File - runs-on: ubuntu-latest - outputs: - compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} - pr-number: ${{ env.PR_NUMBER }} - steps: - - name: 'Download artifacts' - # Fetch output (zip archive) from the workflow run that triggered this workflow. - uses: actions/github-script@v6 - with: - script: | - let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: context.payload.workflow_run.id, - }); - let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { - return artifact.name == "preview-spec" - })[0]; - let download = await github.rest.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: matchArtifact.id, - archive_format: 'zip', - }); - let fs = require('fs'); - fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data)); - - name: 'Unzip artifact' - run: unzip preview-spec.zip - - name: Read Event into ENV - run: | - echo 'EVENT_JSON<> $GITHUB_ENV - cat event.json >> $GITHUB_ENV - echo 'EOF' >> $GITHUB_ENV - - name: Hash Rendered Compose File - id: hash - # If the previous workflow was triggered by a PR close event, we will not have a compose file artifact. - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} - run: echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV - - name: Cache Rendered Compose File - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} - uses: actions/cache@v3 - with: - path: docker-compose.rendered.yml - key: ${{ env.COMPOSE_FILE_HASH }} - - - name: Read PR Number From Event Object - id: pr - run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV - - - name: DEBUG - Print Job Outputs - if: ${{ runner.debug }} - run: | - echo "PR number: ${{ env.PR_NUMBER }}" - echo "Compose file hash: ${{ env.COMPOSE_FILE_HASH }}" - cat event.json - deploy-uffizzi-preview: - name: Use Remote Workflow to Preview on Uffizzi - needs: - - cache-compose-file - uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2.6.1 - with: - # If this workflow was triggered by a PR close event, cache-key will be an empty string - # and this reusable workflow will delete the preview deployment. - compose-file-cache-key: ${{ needs.cache-compose-file.outputs.compose-file-cache-key }} - compose-file-cache-path: docker-compose.rendered.yml - server: https://app.uffizzi.com/ - pr-number: ${{ needs.cache-compose-file.outputs.pr-number }} - permissions: - contents: read - pull-requests: write - id-token: write \ No newline at end of file diff --git a/.gitignore b/.gitignore index d1bdd4043..f3ceb21ab 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /node_modules /public/storage /public/hot +/public/build /storage/*.key /vendor /.idea @@ -9,12 +10,15 @@ Homestead.json Homestead.yaml .env .phpunit.result.cache +.phpunit.cache/ .rnd /.expo /.vscode -/docker-compose/db/data/ .gitkeep /public/docs /.scribe !storage/fonts/.gitkeep .DS_Store +.php-cs-fixer.cache +/storage/fonts* +package-lock.json diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php deleted file mode 100644 index e9dffd653..000000000 --- a/.php-cs-fixer.dist.php +++ /dev/null @@ -1,42 +0,0 @@ -in(__DIR__) - ->exclude(['bootstrap', 'storage', 'vendor']) - ->name('*.php') - ->name('_ide_helper') - ->notName('*.blade.php') - ->ignoreDotFiles(true) - ->ignoreVCS(true); - -$rules = [ - '@PSR12' => true, - 'array_syntax' => ['syntax' => 'short'], - 'ordered_imports' => ['sort_algorithm' => 'alpha'], - 'concat_space' => true, - 'no_unused_imports' => true, - 'not_operator_with_successor_space' => true, - 'phpdoc_scalar' => true, - 'unary_operator_spaces' => true, - 'binary_operator_spaces' => true, - 'blank_line_before_statement' => [ - 'statements' => ['break', 'continue', 'declare', 'return', 'throw', 'try'], - ], - 'phpdoc_single_line_var_spacing' => true, - 'phpdoc_var_without_name' => true, - 'class_attributes_separation' => [ - 'elements' => [ - 'method' => 'one', - 'property' => 'one', - ], - ], - 'method_argument_space' => [ - 'on_multiline' => 'ensure_fully_multiline', - 'keep_multiple_spaces_after_comma' => true, - ], -]; - -return (new PhpCsFixer\Config()) - ->setUsingCache(true) - ->setRules($rules) - ->setFinder($finder); diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 1df052519..ed01f0224 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -info@craterapp.com. +info@invoiceshelf.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 581d0411e..000000000 --- a/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM php:8.1-fpm - -# Arguments defined in docker-compose.yml -ARG user -ARG uid - -# Install system dependencies -RUN apt-get update && apt-get install -y \ - git \ - curl \ - libpng-dev \ - libonig-dev \ - libxml2-dev \ - zip \ - unzip \ - libzip-dev \ - libmagickwand-dev \ - mariadb-client - -# Clear cache -RUN apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN pecl install imagick \ - && docker-php-ext-enable imagick - -# Install PHP extensions -RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl bcmath gd - -# Get latest Composer -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer - -# Create system user to run Composer and Artisan Commands -RUN useradd -G www-data,root -u $uid -d /home/$user $user -RUN mkdir -p /home/$user/.composer && \ - chown -R $user:$user /home/$user - -# Set working directory -WORKDIR /var/www - -USER $user diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..9ab431240 --- /dev/null +++ b/Makefile @@ -0,0 +1,72 @@ +.PHONY: dist-gen dist-clean dist clean test + +composer: + rm -r vendor 2> /dev/null || true + composer install --prefer-dist --no-dev + +npm-build: + rm -r public/build 2> /dev/null || true + rm -r node_modules 2> /dev/null || true + npm install + npm run build + +dist-gen: clean composer npm-build + @echo "packaging..." + @mkdir InvoiceShelf + @mkdir InvoiceShelf/public + @cp -r app InvoiceShelf + @cp -r bootstrap InvoiceShelf + @cp -r config InvoiceShelf + @cp -r database InvoiceShelf + @cp -r public/build InvoiceShelf/public + @cp -r public/favicons InvoiceShelf/public + @cp -r public/.htaccess InvoiceShelf/public + @cp -r public/index.php InvoiceShelf/public + @cp -r public/robots.txt InvoiceShelf/public + @cp -r public/web.config InvoiceShelf/public + @cp -r resources InvoiceShelf + @cp -r lang InvoiceShelf + @cp -r routes InvoiceShelf + @cp -r storage InvoiceShelf + @cp -r vendor InvoiceShelf 2> /dev/null || true + @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 + @touch InvoiceShelf/storage/logs/laravel.log + +dist-clean: dist-gen + find InvoiceShelf -wholename '*/[Tt]ests/*' -delete + find InvoiceShelf -wholename '*/[Tt]est/*' -delete + @rm -r InvoiceShelf/storage/framework/cache/data/* 2> /dev/null || true + @rm InvoiceShelf/storage/framework/sessions/* 2> /dev/null || true + @rm InvoiceShelf/storage/framework/views/* 2> /dev/null || true + @rm InvoiceShelf/storage/logs/* 2> /dev/null || true + +dist: dist-clean + @zip -r InvoiceShelf.zip InvoiceShelf + +clean: + @rm build/* 2> /dev/null || true + @rm -r InvoiceShelf 2> /dev/null || true + @rm -r public/build 2> /dev/null || true + @rm -r node_modules 2> /dev/null || true + @rm -r vendor 2> /dev/null || true + +install: composer npm-build + php artisan migrate + +test: + @if [ -x "vendor/bin/pest" ]; then \ + ./vendor/bin/pest --stop-on-failure; \ + else \ + echo ""; \ + echo "Please install pest:"; \ + echo ""; \ + echo " composer install"; \ + echo ""; \ + fi diff --git a/SECURITY.md b/SECURITY.md index 0efa739b0..13a85bfbb 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,4 +2,4 @@ ## Reporting a Vulnerability -Please email security@craterapp.com to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. +Please email security@invoiceshelf.com to report any security vulnerabilities. We will acknowledge receipt of your vulnerability and strive to send you regular updates about our progress. If you're curious about the status of your disclosure please feel free to email us again. diff --git a/app/Bouncer/Scopes/DefaultScope.php b/app/Bouncer/Scopes/DefaultScope.php new file mode 100644 index 000000000..17a0f650d --- /dev/null +++ b/app/Bouncer/Scopes/DefaultScope.php @@ -0,0 +1,38 @@ +scope) || $this->onlyScopeRelations) { + return $query; + } + + if (is_null($table)) { + $table = $query->getModel()->getTable(); + } + + return $this->applyToQuery($query, $table); + } + + public function applyToRelationQuery($query, $table) + { + if (is_null($this->scope)) { + return $query; + } + + return $this->applyToQuery($query, $table); + } + + protected function applyToQuery($query, $table) + { + return $query->where(function ($query) use ($table) { + $query->where("{$table}.scope", $this->scope) + ->orWhereNull("{$table}.scope"); + }); + } +} diff --git a/app/Console/Commands/CheckEstimateStatus.php b/app/Console/Commands/CheckEstimateStatus.php index 12bbc64b1..b0c98a7ce 100644 --- a/app/Console/Commands/CheckEstimateStatus.php +++ b/app/Console/Commands/CheckEstimateStatus.php @@ -1,10 +1,10 @@ exists("/app/pdf/{$type}/{$templateName}.blade.php")) { - $this->info("Template with given name already exists."); + $this->info('Template with given name already exists.'); return 0; } diff --git a/app/Console/Commands/InstallModuleCommand.php b/app/Console/Commands/InstallModuleCommand.php index 54c60e51b..c86144eaf 100644 --- a/app/Console/Commands/InstallModuleCommand.php +++ b/app/Console/Commands/InstallModuleCommand.php @@ -1,9 +1,9 @@ has('database_created')) { + if (InstallUtils::isDbCreated()) { $schedule->command('check:invoices:status') - ->daily(); + ->daily(); $schedule->command('check:estimates:status') - ->daily(); + ->daily(); $recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get(); foreach ($recurringInvoices as $recurringInvoice) { diff --git a/app/Events/ModuleDisabledEvent.php b/app/Events/ModuleDisabledEvent.php index 2bbdb413c..16eab58c5 100644 --- a/app/Events/ModuleDisabledEvent.php +++ b/app/Events/ModuleDisabledEvent.php @@ -1,6 +1,6 @@ json([ - 'error' => 'Email could not be sent to this email address.' + 'error' => 'Email could not be sent to this email address.', ], 403); } } diff --git a/app/Http/Controllers/V1/Admin/Auth/LoginController.php b/app/Http/Controllers/V1/Admin/Auth/LoginController.php index 385dee3d7..a00f9ce89 100644 --- a/app/Http/Controllers/V1/Admin/Auth/LoginController.php +++ b/app/Http/Controllers/V1/Admin/Auth/LoginController.php @@ -1,10 +1,10 @@ json([ diff --git a/app/Http/Controllers/V1/Admin/Backup/BackupsController.php b/app/Http/Controllers/V1/Admin/Backup/BackupsController.php index 229765518..d8b04be61 100644 --- a/app/Http/Controllers/V1/Admin/Backup/BackupsController.php +++ b/app/Http/Controllers/V1/Admin/Backup/BackupsController.php @@ -2,13 +2,13 @@ // Implementation taken from nova-backup-tool - https://github.com/spatie/nova-backup-tool/ -namespace Crater\Http\Controllers\V1\Admin\Backup; +namespace InvoiceShelf\Http\Controllers\V1\Admin\Backup; -use Crater\Jobs\CreateBackupJob; -use Crater\Rules\Backup\PathToZip; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; +use InvoiceShelf\Jobs\CreateBackupJob; +use InvoiceShelf\Rules\Backup\PathToZip; use Spatie\Backup\BackupDestination\Backup; use Spatie\Backup\BackupDestination\BackupDestination; use Spatie\Backup\Helpers\Format; @@ -36,7 +36,7 @@ public function index(Request $request) return [ 'path' => $backup->path(), 'created_at' => $backup->date()->format('Y-m-d H:i:s'), - 'size' => Format::humanReadableSize($backup->size()), + 'size' => Format::humanReadableSize($backup->sizeInBytes()), ]; }) ->toArray(); @@ -59,7 +59,6 @@ public function index(Request $request) /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request * @return JsonResponse */ public function store(Request $request) @@ -74,7 +73,6 @@ public function store(Request $request) /** * Remove the specified resource from storage. * - * @param \Illuminate\Http\Request $request * @return JsonResponse */ public function destroy($disk, Request $request) diff --git a/app/Http/Controllers/V1/Admin/Backup/DownloadBackupController.php b/app/Http/Controllers/V1/Admin/Backup/DownloadBackupController.php index 734c74ee1..8e832e270 100644 --- a/app/Http/Controllers/V1/Admin/Backup/DownloadBackupController.php +++ b/app/Http/Controllers/V1/Admin/Backup/DownloadBackupController.php @@ -2,10 +2,10 @@ // Implementation taken from nova-backup-tool - https://github.com/spatie/nova-backup-tool/ -namespace Crater\Http\Controllers\V1\Admin\Backup; +namespace InvoiceShelf\Http\Controllers\V1\Admin\Backup; -use Crater\Rules\Backup\PathToZip; use Illuminate\Http\Request; +use InvoiceShelf\Rules\Backup\PathToZip; use Spatie\Backup\BackupDestination\Backup; use Spatie\Backup\BackupDestination\BackupDestination; use Symfony\Component\HttpFoundation\Response; @@ -41,7 +41,7 @@ public function respondWithBackupStream(Backup $backup): StreamedResponse $downloadHeaders = [ 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', 'Content-Type' => 'application/zip', - 'Content-Length' => $backup->size(), + 'Content-Length' => $backup->sizeInBytes(), 'Content-Disposition' => 'attachment; filename="'.$fileName.'"', 'Pragma' => 'public', ]; diff --git a/app/Http/Controllers/V1/Admin/Company/CompaniesController.php b/app/Http/Controllers/V1/Admin/Company/CompaniesController.php index 55f4353b3..3e1be8f45 100644 --- a/app/Http/Controllers/V1/Admin/Company/CompaniesController.php +++ b/app/Http/Controllers/V1/Admin/Company/CompaniesController.php @@ -1,13 +1,13 @@ deleteCompany($user); return response()->json([ - 'success' => true + 'success' => true, ]); } @@ -64,7 +64,7 @@ public function transferOwnership(Request $request, User $user) if ($user->hasCompany($company->id)) { return response()->json([ 'success' => false, - 'message' => 'User does not belongs to this company.' + 'message' => 'User does not belongs to this company.', ]); } @@ -72,7 +72,7 @@ public function transferOwnership(Request $request, User $user) BouncerFacade::sync($user)->roles(['super admin']); return response()->json([ - 'success' => true + 'success' => true, ]); } diff --git a/app/Http/Controllers/V1/Admin/Company/CompanyController.php b/app/Http/Controllers/V1/Admin/Company/CompanyController.php index 7c6893d42..bcdb96ba3 100644 --- a/app/Http/Controllers/V1/Admin/Company/CompanyController.php +++ b/app/Http/Controllers/V1/Admin/Company/CompanyController.php @@ -1,18 +1,17 @@ json([ - 'fiscal_years' => config('crater.fiscal_years'), + 'fiscal_years' => config('invoiceshelf.fiscal_years'), ]); } } diff --git a/app/Http/Controllers/V1/Admin/Config/LanguagesController.php b/app/Http/Controllers/V1/Admin/Config/LanguagesController.php index f9ffc6e59..7aa1c3373 100644 --- a/app/Http/Controllers/V1/Admin/Config/LanguagesController.php +++ b/app/Http/Controllers/V1/Admin/Config/LanguagesController.php @@ -1,22 +1,21 @@ json([ - 'languages' => config('crater.languages'), + 'languages' => config('invoiceshelf.languages'), ]); } } diff --git a/app/Http/Controllers/V1/Admin/Config/RetrospectiveEditsController.php b/app/Http/Controllers/V1/Admin/Config/RetrospectiveEditsController.php index da5f14592..eff763b85 100644 --- a/app/Http/Controllers/V1/Admin/Config/RetrospectiveEditsController.php +++ b/app/Http/Controllers/V1/Admin/Config/RetrospectiveEditsController.php @@ -1,22 +1,21 @@ json([ - 'retrospective_edits' => config('crater.retrospective_edits'), + 'retrospective_edits' => config('invoiceshelf.retrospective_edits'), ]); } } diff --git a/app/Http/Controllers/V1/Admin/CustomField/CustomFieldsController.php b/app/Http/Controllers/V1/Admin/CustomField/CustomFieldsController.php index 273fe9d14..8f27d24a7 100644 --- a/app/Http/Controllers/V1/Admin/CustomField/CustomFieldsController.php +++ b/app/Http/Controllers/V1/Admin/CustomField/CustomFieldsController.php @@ -1,12 +1,12 @@ additional(['meta' => [ - 'chartData' => $chartData + 'chartData' => $chartData, ]]); } } diff --git a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php index 55a011d3f..cc1bbc84c 100644 --- a/app/Http/Controllers/V1/Admin/Customer/CustomersController.php +++ b/app/Http/Controllers/V1/Admin/Customer/CustomersController.php @@ -1,14 +1,14 @@ leftJoin('invoices', 'customers.id', '=', 'invoices.customer_id') ->paginateData($limit); - return (CustomerResource::collection($customers)) + return CustomerResource::collection($customers) ->additional(['meta' => [ 'customer_total_count' => Customer::whereCompany()->count(), ]]); @@ -59,7 +59,6 @@ public function store(Requests\CustomerRequest $request) /** * Display the specified resource. * - * @param Customer $customer * @return \Illuminate\Http\JsonResponse */ public function show(Customer $customer) @@ -72,8 +71,7 @@ public function show(Customer $customer) /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param \Crater\Models\Customer $customer + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function update(Requests\CustomerRequest $request, Customer $customer) @@ -92,7 +90,7 @@ public function update(Requests\CustomerRequest $request, Customer $customer) /** * Remove a list of Customers along side all their resources (ie. Estimates, Invoices, Payments and Addresses) * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function delete(DeleteCustomersRequest $request) diff --git a/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php b/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php index 4e1d96d22..ae2f3cba7 100644 --- a/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php +++ b/app/Http/Controllers/V1/Admin/Dashboard/DashboardController.php @@ -1,17 +1,17 @@ format('Y-m-d'), $end->format('Y-m-d')] ) - ->whereCompany() - ->sum('base_total') + ->whereCompany() + ->sum('base_total') ); array_push( $expense_totals, @@ -74,8 +73,8 @@ public function __invoke(Request $request) 'expense_date', [$start->format('Y-m-d'), $end->format('Y-m-d')] ) - ->whereCompany() - ->sum('base_amount') + ->whereCompany() + ->sum('base_amount') ); array_push( $receipt_totals, @@ -83,8 +82,8 @@ public function __invoke(Request $request) 'payment_date', [$start->format('Y-m-d'), $end->format('Y-m-d')] ) - ->whereCompany() - ->sum('base_amount') + ->whereCompany() + ->sum('base_amount') ); array_push( $net_income_totals, @@ -121,7 +120,7 @@ public function __invoke(Request $request) ->whereCompany() ->sum('base_amount'); - $total_net_income = (int)$total_receipts - (int)$total_expenses; + $total_net_income = (int) $total_receipts - (int) $total_expenses; $chart_data = [ 'months' => $months, diff --git a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php index 0e429acd3..3f21116fb 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/ChangeEstimateStatusController.php @@ -1,20 +1,18 @@ authorize('send estimate', $estimate); diff --git a/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php b/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php index 3225d6ea4..0a24f8636 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/ConvertEstimateController.php @@ -1,16 +1,16 @@ json([ - 'estimateTemplates' => $estimateTemplates + 'estimateTemplates' => $estimateTemplates, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Estimate/EstimatesController.php b/app/Http/Controllers/V1/Admin/Estimate/EstimatesController.php index e43a4be60..f72df342e 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/EstimatesController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/EstimatesController.php @@ -1,14 +1,14 @@ latest() ->paginateData($limit); - return (EstimateResource::collection($estimates)) + return EstimateResource::collection($estimates) ->additional(['meta' => [ 'estimate_total_count' => Estimate::whereCompany()->count(), ]]); diff --git a/app/Http/Controllers/V1/Admin/Estimate/SendEstimateController.php b/app/Http/Controllers/V1/Admin/Estimate/SendEstimateController.php index 4e9c82335..4682277f3 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/SendEstimateController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/SendEstimateController.php @@ -1,19 +1,18 @@ authorize('send estimate', $estimate); diff --git a/app/Http/Controllers/V1/Admin/Estimate/SendEstimatePreviewController.php b/app/Http/Controllers/V1/Admin/Estimate/SendEstimatePreviewController.php index af131c9ee..50f0174c5 100644 --- a/app/Http/Controllers/V1/Admin/Estimate/SendEstimatePreviewController.php +++ b/app/Http/Controllers/V1/Admin/Estimate/SendEstimatePreviewController.php @@ -1,20 +1,19 @@ authorize('send estimate', $estimate); diff --git a/app/Http/Controllers/V1/Admin/ExchangeRate/ExchangeRateProviderController.php b/app/Http/Controllers/V1/Admin/ExchangeRate/ExchangeRateProviderController.php index 04bfc4011..9e77c5a60 100644 --- a/app/Http/Controllers/V1/Admin/ExchangeRate/ExchangeRateProviderController.php +++ b/app/Http/Controllers/V1/Admin/ExchangeRate/ExchangeRateProviderController.php @@ -1,12 +1,12 @@ whereJsonContains('currencies', $currency->code) - ->where('active', true) - ->get(); + ->where('active', true) + ->get(); if (count($query) !== 0) { return response()->json([ diff --git a/app/Http/Controllers/V1/Admin/ExchangeRate/GetExchangeRateController.php b/app/Http/Controllers/V1/Admin/ExchangeRate/GetExchangeRateController.php index b5820bbb3..8b0a83fe0 100644 --- a/app/Http/Controllers/V1/Admin/ExchangeRate/GetExchangeRateController.php +++ b/app/Http/Controllers/V1/Admin/ExchangeRate/GetExchangeRateController.php @@ -1,15 +1,15 @@ code) - ->where('active', true) - ->get() - ->toArray(); + ->where('active', true) + ->get() + ->toArray(); $exchange_rate = ExchangeRateLog::where('base_currency_id', $currency->id) - ->where('currency_id', $baseCurrency->id) - ->orderBy('created_at', 'desc') - ->value('exchange_rate'); + ->where('currency_id', $baseCurrency->id) + ->orderBy('created_at', 'desc') + ->value('exchange_rate'); if ($query) { $filter = Arr::only($query[0], ['key', 'driver', 'driver_config']); diff --git a/app/Http/Controllers/V1/Admin/ExchangeRate/GetSupportedCurrenciesController.php b/app/Http/Controllers/V1/Admin/ExchangeRate/GetSupportedCurrenciesController.php index af80f259c..5113ad6a9 100644 --- a/app/Http/Controllers/V1/Admin/ExchangeRate/GetSupportedCurrenciesController.php +++ b/app/Http/Controllers/V1/Admin/ExchangeRate/GetSupportedCurrenciesController.php @@ -1,11 +1,11 @@ select('expenses.*', 'expense_categories.name', 'customers.name as user_name') ->paginateData($limit); - return (ExpenseResource::collection($expenses)) + return ExpenseResource::collection($expenses) ->additional(['meta' => [ 'expense_total_count' => Expense::whereCompany()->count(), ]]); @@ -39,7 +39,6 @@ public function index(Request $request) /** * Store a newly created resource in storage. * - * @param \Crater\Http\Requests\ExpenseRequest $request * @return \Illuminate\Http\JsonResponse */ public function store(ExpenseRequest $request) @@ -54,7 +53,6 @@ public function store(ExpenseRequest $request) /** * Display the specified resource. * - * @param \Crater\Models\Expense $expense * @return \Illuminate\Http\JsonResponse */ public function show(Expense $expense) @@ -67,8 +65,6 @@ public function show(Expense $expense) /** * Update the specified resource in storage. * - * @param \Crater\Http\Requests\ExpenseRequest $request - * @param \Crater\Models\Expense $expense * @return \Illuminate\Http\JsonResponse */ public function update(ExpenseRequest $request, Expense $expense) diff --git a/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php b/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php index 206b2c0f9..334a6a5a8 100644 --- a/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php +++ b/app/Http/Controllers/V1/Admin/Expense/ShowReceiptController.php @@ -1,17 +1,16 @@ json([ @@ -68,7 +67,7 @@ public function __invoke(Request $request) 'current_company' => new CompanyResource($current_company), 'current_company_settings' => $current_company_settings, 'current_company_currency' => $current_company_currency, - 'config' => config('crater'), + 'config' => config('invoiceshelf'), 'global_settings' => $global_settings, 'main_menu' => $main_menu, 'setting_menu' => $setting_menu, diff --git a/app/Http/Controllers/V1/Admin/General/BulkExchangeRateController.php b/app/Http/Controllers/V1/Admin/General/BulkExchangeRateController.php index f0e82f66d..07ce51f25 100644 --- a/app/Http/Controllers/V1/Admin/General/BulkExchangeRateController.php +++ b/app/Http/Controllers/V1/Admin/General/BulkExchangeRateController.php @@ -1,14 +1,14 @@ $invoice->sub_total * $currency['exchange_rate'], 'base_total' => $invoice->total * $currency['exchange_rate'], 'base_tax' => $invoice->tax * $currency['exchange_rate'], - 'base_due_amount' => $invoice->due_amount * $currency['exchange_rate'] + 'base_due_amount' => $invoice->due_amount * $currency['exchange_rate'], ]); $this->items($invoice); @@ -53,7 +53,7 @@ public function __invoke(BulkExchangeRateRequest $request) 'base_discount_val' => $estimate->sub_total * $currency['exchange_rate'], 'base_sub_total' => $estimate->sub_total * $currency['exchange_rate'], 'base_total' => $estimate->total * $currency['exchange_rate'], - 'base_tax' => $estimate->tax * $currency['exchange_rate'] + 'base_tax' => $estimate->tax * $currency['exchange_rate'], ]); $this->items($estimate); @@ -82,18 +82,18 @@ public function __invoke(BulkExchangeRateRequest $request) } $settings = [ - 'bulk_exchange_rate_configured' => 'YES' + 'bulk_exchange_rate_configured' => 'YES', ]; CompanySetting::setSettings($settings, $request->header('company')); return response()->json([ - 'success' => true + 'success' => true, ]); } return response()->json([ - 'error' => false + 'error' => false, ]); } @@ -105,7 +105,7 @@ public function items($model) 'base_discount_val' => $item->discount_val * $model->exchange_rate, 'base_price' => $item->price * $model->exchange_rate, 'base_tax' => $item->tax * $model->exchange_rate, - 'base_total' => $item->total * $model->exchange_rate + 'base_total' => $item->total * $model->exchange_rate, ]); $this->taxes($item); diff --git a/app/Http/Controllers/V1/Admin/General/ConfigController.php b/app/Http/Controllers/V1/Admin/General/ConfigController.php index b0df1f628..d4bb1fc29 100644 --- a/app/Http/Controllers/V1/Admin/General/ConfigController.php +++ b/app/Http/Controllers/V1/Admin/General/ConfigController.php @@ -1,22 +1,21 @@ json([ - $request->key => config('crater.'.$request->key), + $request->key => config('invoiceshelf.'.$request->key), ]); } } diff --git a/app/Http/Controllers/V1/Admin/General/CountriesController.php b/app/Http/Controllers/V1/Admin/General/CountriesController.php index a6734db92..02094c41c 100644 --- a/app/Http/Controllers/V1/Admin/General/CountriesController.php +++ b/app/Http/Controllers/V1/Admin/General/CountriesController.php @@ -1,18 +1,17 @@ json([ - 'currencies' => Currency::whereIn('id', $currencies)->get() + 'currencies' => Currency::whereIn('id', $currencies)->get(), ]); } } diff --git a/app/Http/Controllers/V1/Admin/General/NextNumberController.php b/app/Http/Controllers/V1/Admin/General/NextNumberController.php index 6f458e804..2c6f769ee 100644 --- a/app/Http/Controllers/V1/Admin/General/NextNumberController.php +++ b/app/Http/Controllers/V1/Admin/General/NextNumberController.php @@ -1,20 +1,19 @@ json([ 'success' => false, - 'message' => $exception->getMessage() + 'message' => $exception->getMessage(), ]); } diff --git a/app/Http/Controllers/V1/Admin/General/NotesController.php b/app/Http/Controllers/V1/Admin/General/NotesController.php index 93858d35d..7f81573c0 100644 --- a/app/Http/Controllers/V1/Admin/General/NotesController.php +++ b/app/Http/Controllers/V1/Admin/General/NotesController.php @@ -1,12 +1,12 @@ authorize('send invoice', $invoice); diff --git a/app/Http/Controllers/V1/Admin/Invoice/CloneInvoiceController.php b/app/Http/Controllers/V1/Admin/Invoice/CloneInvoiceController.php index 95c47f54e..f324145c0 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/CloneInvoiceController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/CloneInvoiceController.php @@ -1,14 +1,14 @@ fields as $data) { $customFields[] = [ 'id' => $data->custom_field_id, - 'value' => $data->defaultAnswer + 'value' => $data->defaultAnswer, ]; } diff --git a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php index a9e0b9771..8d974a8a8 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/InvoiceTemplatesController.php @@ -1,17 +1,16 @@ latest() ->paginateData($limit); - return (InvoiceResource::collection($invoices)) + return InvoiceResource::collection($invoices) ->additional(['meta' => [ 'invoice_total_count' => Invoice::whereCompany()->count(), ]]); @@ -39,7 +39,7 @@ public function index(Request $request) /** * Store a newly created resource in storage. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function store(Requests\InvoicesRequest $request) @@ -60,7 +60,6 @@ public function store(Requests\InvoicesRequest $request) /** * Display the specified resource. * - * @param \Crater\Models\Invoice $invoice * @return \Illuminate\Http\JsonResponse */ public function show(Request $request, Invoice $invoice) @@ -73,8 +72,7 @@ public function show(Request $request, Invoice $invoice) /** * Update the specified resource in storage. * - * @param \Illuminate\Http\Request $request - * @param Invoice $invoice + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function update(Requests\InvoicesRequest $request, Invoice $invoice) @@ -95,7 +93,7 @@ public function update(Requests\InvoicesRequest $request, Invoice $invoice) /** * delete the specified resources in storage. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function delete(DeleteInvoiceRequest $request) diff --git a/app/Http/Controllers/V1/Admin/Invoice/SendInvoiceController.php b/app/Http/Controllers/V1/Admin/Invoice/SendInvoiceController.php index 1ebcc4b25..081b09dc3 100644 --- a/app/Http/Controllers/V1/Admin/Invoice/SendInvoiceController.php +++ b/app/Http/Controllers/V1/Admin/Invoice/SendInvoiceController.php @@ -1,17 +1,17 @@ latest() ->paginateData($limit); - return (ItemResource::collection($items)) + return ItemResource::collection($items) ->additional(['meta' => [ 'tax_types' => TaxType::whereCompany()->latest()->get(), 'item_total_count' => Item::whereCompany()->count(), @@ -41,7 +40,7 @@ public function index(Request $request) /** * Create Item. * - * @param Crater\Http\Requests\ItemsRequest $request + * @param InvoiceShelf\Http\Requests\ItemsRequest $request * @return \Illuminate\Http\JsonResponse */ public function store(Requests\ItemsRequest $request) @@ -56,7 +55,6 @@ public function store(Requests\ItemsRequest $request) /** * get an existing Item. * - * @param Item $item * @return \Illuminate\Http\JsonResponse */ public function show(Item $item) @@ -69,8 +67,7 @@ public function show(Item $item) /** * Update an existing Item. * - * @param Crater\Http\Requests\ItemsRequest $request - * @param \Crater\Models\Item $item + * @param InvoiceShelf\Http\Requests\ItemsRequest $request * @return \Illuminate\Http\JsonResponse */ public function update(Requests\ItemsRequest $request, Item $item) @@ -85,7 +82,7 @@ public function update(Requests\ItemsRequest $request, Item $item) /** * Delete a list of existing Items. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function delete(DeleteItemsRequest $request) diff --git a/app/Http/Controllers/V1/Admin/Item/UnitsController.php b/app/Http/Controllers/V1/Admin/Item/UnitsController.php index 70a78ea32..c0c8f0820 100644 --- a/app/Http/Controllers/V1/Admin/Item/UnitsController.php +++ b/app/Http/Controllers/V1/Admin/Item/UnitsController.php @@ -1,12 +1,12 @@ module, $request->version); return response()->json([ - 'success' => $response + 'success' => $response, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Modules/CopyModuleController.php b/app/Http/Controllers/V1/Admin/Modules/CopyModuleController.php index 17bcf48b9..dddaf8ee5 100644 --- a/app/Http/Controllers/V1/Admin/Modules/CopyModuleController.php +++ b/app/Http/Controllers/V1/Admin/Modules/CopyModuleController.php @@ -1,17 +1,16 @@ module, $request->path); return response()->json([ - 'success' => $response + 'success' => $response, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Modules/DisableModuleController.php b/app/Http/Controllers/V1/Admin/Modules/DisableModuleController.php index 50bbb57dd..51a1a03f3 100644 --- a/app/Http/Controllers/V1/Admin/Modules/DisableModuleController.php +++ b/app/Http/Controllers/V1/Admin/Modules/DisableModuleController.php @@ -1,11 +1,11 @@ module)) ->additional(['meta' => [ - 'modules' => ModuleResource::collection(collect($response->modules)) + 'modules' => ModuleResource::collection(collect($response->modules)), ]]); } } diff --git a/app/Http/Controllers/V1/Admin/Modules/ModulesController.php b/app/Http/Controllers/V1/Admin/Modules/ModulesController.php index 0cb35a2ba..dd16d2b6b 100644 --- a/app/Http/Controllers/V1/Admin/Modules/ModulesController.php +++ b/app/Http/Controllers/V1/Admin/Modules/ModulesController.php @@ -1,17 +1,16 @@ json([ 'success' => true, - 'path' => $path + 'path' => $path, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Modules/UploadModuleController.php b/app/Http/Controllers/V1/Admin/Modules/UploadModuleController.php index 34b10687d..1249f4ee3 100644 --- a/app/Http/Controllers/V1/Admin/Modules/UploadModuleController.php +++ b/app/Http/Controllers/V1/Admin/Modules/UploadModuleController.php @@ -1,17 +1,16 @@ latest() ->paginateData($limit); - return (PaymentResource::collection($payments)) + return PaymentResource::collection($payments) ->additional(['meta' => [ 'payment_total_count' => Payment::whereCompany()->count(), ]]); diff --git a/app/Http/Controllers/V1/Admin/Payment/SendPaymentController.php b/app/Http/Controllers/V1/Admin/Payment/SendPaymentController.php index 2bafed347..64b4919b0 100644 --- a/app/Http/Controllers/V1/Admin/Payment/SendPaymentController.php +++ b/app/Http/Controllers/V1/Admin/Payment/SendPaymentController.php @@ -1,10 +1,10 @@ applyFilters($request->all()) ->paginateData($limit); - return (RecurringInvoiceResource::collection($recurringInvoices)) + return RecurringInvoiceResource::collection($recurringInvoices) ->additional(['meta' => [ 'recurring_invoice_total_count' => RecurringInvoice::whereCompany()->count(), ]]); @@ -49,7 +49,6 @@ public function store(RecurringInvoiceRequest $request) /** * Display the specified resource. * - * @param \Crater\Models\RecurringInvoice $recurringInvoice * @return \Illuminate\Http\Response */ public function show(RecurringInvoice $recurringInvoice) @@ -63,7 +62,6 @@ public function show(RecurringInvoice $recurringInvoice) * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request - * @param \Crater\Models\RecurringInvoice $recurringInvoice * @return \Illuminate\Http\Response */ public function update(RecurringInvoiceRequest $request, RecurringInvoice $recurringInvoice) @@ -78,7 +76,7 @@ public function update(RecurringInvoiceRequest $request, RecurringInvoice $recur /** * Remove the specified resource from storage. * - * @param \Crater\Models\RecurringInvoice $recurringInvoice + * @param \InvoiceShelf\Models\RecurringInvoice $recurringInvoice * @return \Illuminate\Http\Response */ public function delete(Request $request) diff --git a/app/Http/Controllers/V1/Admin/RecurringInvoice/RecurringInvoiceFrequencyController.php b/app/Http/Controllers/V1/Admin/RecurringInvoice/RecurringInvoiceFrequencyController.php index 77cce3f3f..c18f45d2f 100644 --- a/app/Http/Controllers/V1/Admin/RecurringInvoice/RecurringInvoiceFrequencyController.php +++ b/app/Http/Controllers/V1/Admin/RecurringInvoice/RecurringInvoiceFrequencyController.php @@ -1,10 +1,10 @@ authorize('view report', $company); - $locale = CompanySetting::getSetting('language', $company->id); + $locale = CompanySetting::getSetting('language', $company->id); App::setLocale($locale); diff --git a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php index 3e88e355b..d015a0d6a 100644 --- a/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ExpensesReportController.php @@ -1,23 +1,22 @@ authorize('view report', $company); - $locale = CompanySetting::getSetting('language', $company->id); + $locale = CompanySetting::getSetting('language', $company->id); App::setLocale($locale); diff --git a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php index c06162651..045b00603 100644 --- a/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ItemSalesReportController.php @@ -1,23 +1,22 @@ authorize('view report', $company); - $locale = CompanySetting::getSetting('language', $company->id); + $locale = CompanySetting::getSetting('language', $company->id); App::setLocale($locale); diff --git a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php index cd225dcf9..cc24aebf9 100644 --- a/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/ProfitLossReportController.php @@ -1,24 +1,23 @@ authorize('view report', $company); - $locale = CompanySetting::getSetting('language', $company->id); + $locale = CompanySetting::getSetting('language', $company->id); App::setLocale($locale); @@ -52,7 +51,6 @@ public function __invoke(Request $request, $hash) $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); - $colors = [ 'primary_text_color', 'heading_text_color', diff --git a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php index 8fdcf614b..e01e4ed28 100644 --- a/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php +++ b/app/Http/Controllers/V1/Admin/Report/TaxSummaryReportController.php @@ -1,23 +1,22 @@ authorize('view report', $company); - $locale = CompanySetting::getSetting('language', $company->id); + $locale = CompanySetting::getSetting('language', $company->id); App::setLocale($locale); @@ -47,7 +46,6 @@ public function __invoke(Request $request, $hash) $to_date = Carbon::createFromFormat('Y-m-d', $request->to_date)->format($dateFormat); $currency = Currency::findOrFail(CompanySetting::getSetting('currency', $company->id)); - $colors = [ 'primary_text_color', 'heading_text_color', diff --git a/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php b/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php index 5223db745..1076caf61 100644 --- a/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php +++ b/app/Http/Controllers/V1/Admin/Role/AbilitiesController.php @@ -1,16 +1,15 @@ delete(); return response()->json([ - 'success' => true + 'success' => true, ]); } diff --git a/app/Http/Controllers/V1/Admin/Settings/CompanyController.php b/app/Http/Controllers/V1/Admin/Settings/CompanyController.php index 25381299e..e89f327cd 100644 --- a/app/Http/Controllers/V1/Admin/Settings/CompanyController.php +++ b/app/Http/Controllers/V1/Admin/Settings/CompanyController.php @@ -1,21 +1,22 @@ '', @@ -100,6 +94,16 @@ public function show($disk) break; + case 's3compat': + $diskData = [ + 'endpoint' => '', + 'key' => '', + 'secret' => '', + 'region' => '', + 'bucket' => '', + 'root' => '', + ]; + case 'doSpaces': $diskData = [ 'key' => '', @@ -132,7 +136,7 @@ public function show($disk) /** * Remove the specified resource from storage. * - * @param \Crater\Models\FileDisk $taxType + * @param \InvoiceShelf\Models\FileDisk $taxType * @return \Illuminate\Http\Response */ public function destroy(FileDisk $disk) @@ -151,7 +155,6 @@ public function destroy(FileDisk $disk) } /** - * * @return JsonResponse */ public function getDiskDrivers() @@ -167,6 +170,10 @@ public function getDiskDrivers() 'name' => 'Amazon S3', 'value' => 's3', ], + [ + 'name' => 'S3 Compatible Storage', + 'value' => 's3compat', + ], [ 'name' => 'Digital Ocean Spaces', 'value' => 'doSpaces', diff --git a/app/Http/Controllers/V1/Admin/Settings/GetCompanyMailConfigurationController.php b/app/Http/Controllers/V1/Admin/Settings/GetCompanyMailConfigurationController.php index 6e8b6b769..dab3d58f5 100644 --- a/app/Http/Controllers/V1/Admin/Settings/GetCompanyMailConfigurationController.php +++ b/app/Http/Controllers/V1/Admin/Settings/GetCompanyMailConfigurationController.php @@ -1,16 +1,15 @@ key); return response()->json([ - $request->key => $setting + $request->key => $setting, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Settings/GetUserSettingsController.php b/app/Http/Controllers/V1/Admin/Settings/GetUserSettingsController.php index 441625785..d6cf0fb16 100644 --- a/app/Http/Controllers/V1/Admin/Settings/GetUserSettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/GetUserSettingsController.php @@ -1,9 +1,9 @@ environmentManager = $environmentManager; } /** - * - * @param MailEnvironmentRequest $request * @return JsonResponse */ public function saveMailEnvironment(MailEnvironmentRequest $request) @@ -65,12 +60,10 @@ public function getMailEnvironment() 'mail_ses_secret' => config('services.ses.secret'), ]; - return response()->json($MailData); } /** - * * @return JsonResponse */ public function getMailDrivers() diff --git a/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php b/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php index d5a3d1e38..3d093cfc4 100644 --- a/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php +++ b/app/Http/Controllers/V1/Admin/Settings/TaxTypesController.php @@ -1,12 +1,12 @@ json([ 'success' => false, - 'message' => 'Cannot update company currency after transactions are created.' + 'message' => 'Cannot update company currency after transactions are created.', ]); } diff --git a/app/Http/Controllers/V1/Admin/Settings/UpdateSettingsController.php b/app/Http/Controllers/V1/Admin/Settings/UpdateSettingsController.php index a6a297d25..df5c7ae8c 100644 --- a/app/Http/Controllers/V1/Admin/Settings/UpdateSettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/UpdateSettingsController.php @@ -1,11 +1,11 @@ json([ 'success' => true, - $request->settings + $request->settings, ]); } } diff --git a/app/Http/Controllers/V1/Admin/Settings/UpdateUserSettingsController.php b/app/Http/Controllers/V1/Admin/Settings/UpdateUserSettingsController.php index 9bf317b78..0b971fe74 100644 --- a/app/Http/Controllers/V1/Admin/Settings/UpdateUserSettingsController.php +++ b/app/Http/Controllers/V1/Admin/Settings/UpdateUserSettingsController.php @@ -1,9 +1,9 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php b/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php index 81c211614..61574bdad 100644 --- a/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php +++ b/app/Http/Controllers/V1/Admin/Update/CopyFilesController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/DeleteFilesController.php b/app/Http/Controllers/V1/Admin/Update/DeleteFilesController.php index 750700ce3..19a6d7206 100644 --- a/app/Http/Controllers/V1/Admin/Update/DeleteFilesController.php +++ b/app/Http/Controllers/V1/Admin/Update/DeleteFilesController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/DownloadUpdateController.php b/app/Http/Controllers/V1/Admin/Update/DownloadUpdateController.php index 7005fafba..0f81a1566 100644 --- a/app/Http/Controllers/V1/Admin/Update/DownloadUpdateController.php +++ b/app/Http/Controllers/V1/Admin/Update/DownloadUpdateController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/FinishUpdateController.php b/app/Http/Controllers/V1/Admin/Update/FinishUpdateController.php index cb5de4282..692b964e3 100644 --- a/app/Http/Controllers/V1/Admin/Update/FinishUpdateController.php +++ b/app/Http/Controllers/V1/Admin/Update/FinishUpdateController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/MigrateUpdateController.php b/app/Http/Controllers/V1/Admin/Update/MigrateUpdateController.php index 6b8e0aa16..90a66f2fa 100644 --- a/app/Http/Controllers/V1/Admin/Update/MigrateUpdateController.php +++ b/app/Http/Controllers/V1/Admin/Update/MigrateUpdateController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/UnzipUpdateController.php b/app/Http/Controllers/V1/Admin/Update/UnzipUpdateController.php index e96279df5..d15d7f6a0 100644 --- a/app/Http/Controllers/V1/Admin/Update/UnzipUpdateController.php +++ b/app/Http/Controllers/V1/Admin/Update/UnzipUpdateController.php @@ -1,17 +1,16 @@ user()) || (! $request->user()->isOwner())) { return response()->json([ 'success' => false, - 'message' => 'You are not allowed to update this app.' + 'message' => 'You are not allowed to update this app.', ], 401); } diff --git a/app/Http/Controllers/V1/Admin/Update/UpdateController.php b/app/Http/Controllers/V1/Admin/Update/UpdateController.php index 36ec30058..a746d98fd 100644 --- a/app/Http/Controllers/V1/Admin/Update/UpdateController.php +++ b/app/Http/Controllers/V1/Admin/Update/UpdateController.php @@ -1,11 +1,11 @@ login($user); return response()->json([ - 'success' => true + 'success' => true, ]); } } diff --git a/app/Http/Controllers/V1/Customer/Auth/ResetPasswordController.php b/app/Http/Controllers/V1/Customer/Auth/ResetPasswordController.php index 4a8a02753..99239400e 100644 --- a/app/Http/Controllers/V1/Customer/Auth/ResetPasswordController.php +++ b/app/Http/Controllers/V1/Customer/Auth/ResetPasswordController.php @@ -1,13 +1,13 @@ estimates() diff --git a/app/Http/Controllers/V1/Customer/Estimate/EstimatesController.php b/app/Http/Controllers/V1/Customer/Estimate/EstimatesController.php index cf4d1cfb7..5fe6629a3 100644 --- a/app/Http/Controllers/V1/Customer/Estimate/EstimatesController.php +++ b/app/Http/Controllers/V1/Customer/Estimate/EstimatesController.php @@ -1,13 +1,13 @@ has('limit') ? $request->limit : 10; $estimates = Estimate::with([ - 'items', - 'customer', - 'taxes', - 'creator', - ]) + 'items', + 'customer', + 'taxes', + 'creator', + ]) ->where('status', '<>', 'DRAFT') ->whereCustomer(Auth::guard('customer')->id()) ->applyFilters($request->only([ @@ -39,7 +39,7 @@ public function index(Request $request) ->latest() ->paginateData($limit); - return (EstimateResource::collection($estimates)) + return EstimateResource::collection($estimates) ->additional(['meta' => [ 'estimateTotalCount' => Estimate::where('status', '<>', 'DRAFT')->whereCustomer(Auth::guard('customer')->id())->count(), ]]); @@ -48,7 +48,7 @@ public function index(Request $request) /** * Display the specified resource. * - * @param Estimate $estimate + * @param Estimate $estimate * @return \Illuminate\Http\Response */ public function show(Company $company, $id) diff --git a/app/Http/Controllers/V1/Customer/EstimatePdfController.php b/app/Http/Controllers/V1/Customer/EstimatePdfController.php index 9cba60ce7..249fb7aa2 100644 --- a/app/Http/Controllers/V1/Customer/EstimatePdfController.php +++ b/app/Http/Controllers/V1/Customer/EstimatePdfController.php @@ -1,15 +1,15 @@ paginateData($limit); - return (ExpenseResource::collection($expenses)) + return ExpenseResource::collection($expenses) ->additional(['meta' => [ 'expenseTotalCount' => Expense::whereCustomer(Auth::guard('customer')->id())->count(), ]]); @@ -40,7 +40,7 @@ public function index(Request $request) /** * Display the specified resource. * - * @param \Crater\Models\Expense $expense + * @param \InvoiceShelf\Models\Expense $expense * @return \Illuminate\Http\Response */ public function show(Company $company, $id) diff --git a/app/Http/Controllers/V1/Customer/General/BootstrapController.php b/app/Http/Controllers/V1/Customer/General/BootstrapController.php index 2c4cca293..caf7efb02 100644 --- a/app/Http/Controllers/V1/Customer/General/BootstrapController.php +++ b/app/Http/Controllers/V1/Customer/General/BootstrapController.php @@ -1,20 +1,19 @@ clearMediaCollection('customer_avatar'); $customer->addMediaFromRequest('customer_avatar') - ->toMediaCollection('customer_avatar'); + ->toMediaCollection('customer_avatar'); } if ($request->billing !== null) { diff --git a/app/Http/Controllers/V1/Customer/Invoice/InvoicesController.php b/app/Http/Controllers/V1/Customer/Invoice/InvoicesController.php index f17cd766a..ce0a24772 100644 --- a/app/Http/Controllers/V1/Customer/Invoice/InvoicesController.php +++ b/app/Http/Controllers/V1/Customer/Invoice/InvoicesController.php @@ -1,13 +1,13 @@ latest() ->paginateData($limit); - return (InvoiceResource::collection($invoices)) + return InvoiceResource::collection($invoices) ->additional(['meta' => [ 'invoiceTotalCount' => Invoice::where('status', '<>', 'DRAFT')->whereCustomer(Auth::guard('customer')->id())->count(), ]]); diff --git a/app/Http/Controllers/V1/Customer/InvoicePdfController.php b/app/Http/Controllers/V1/Customer/InvoicePdfController.php index ad94403c3..3b36c43b2 100644 --- a/app/Http/Controllers/V1/Customer/InvoicePdfController.php +++ b/app/Http/Controllers/V1/Customer/InvoicePdfController.php @@ -1,15 +1,15 @@ with([ 'customer_logo' => get_company_setting('customer_portal_logo', $invoice->company_id), - 'current_theme' => get_company_setting('customer_portal_theme', $invoice->company_id) + 'current_theme' => get_company_setting('customer_portal_theme', $invoice->company_id), ]); } diff --git a/app/Http/Controllers/V1/Customer/Payment/PaymentMethodController.php b/app/Http/Controllers/V1/Customer/Payment/PaymentMethodController.php index ce1571804..820ea207a 100644 --- a/app/Http/Controllers/V1/Customer/Payment/PaymentMethodController.php +++ b/app/Http/Controllers/V1/Customer/Payment/PaymentMethodController.php @@ -1,19 +1,18 @@ latest() ->paginateData($limit); - return (PaymentResource::collection($payments)) + return PaymentResource::collection($payments) ->additional(['meta' => [ 'paymentTotalCount' => Payment::whereCustomer(Auth::guard('customer')->id())->count(), ]]); @@ -42,7 +42,7 @@ public function index(Request $request) /** * Display the specified resource. * - * @param \Crater\Models\Payment $payment + * @param \InvoiceShelf\Models\Payment $payment * @return \Illuminate\Http\Response */ public function show(Company $company, $id) diff --git a/app/Http/Controllers/V1/Customer/PaymentPdfController.php b/app/Http/Controllers/V1/Customer/PaymentPdfController.php index d7fca06bd..ed25f3d9b 100644 --- a/app/Http/Controllers/V1/Customer/PaymentPdfController.php +++ b/app/Http/Controllers/V1/Customer/PaymentPdfController.php @@ -1,12 +1,12 @@ environmentManager = $environmentManager; } - /** - * - * @param DatabaseEnvironmentRequest $request - */ public function saveDatabaseEnvironment(DatabaseEnvironmentRequest $request) { Artisan::call('config:clear'); @@ -34,7 +27,7 @@ public function saveDatabaseEnvironment(DatabaseEnvironmentRequest $request) $results = $this->environmentManager->saveDatabaseVariables($request); - if (array_key_exists("success", $results)) { + if (array_key_exists('success', $results)) { Artisan::call('key:generate --force'); Artisan::call('optimize:clear'); Artisan::call('config:clear'); @@ -79,7 +72,6 @@ public function getDatabaseEnvironment(Request $request) } - return response()->json([ 'config' => $databaseData, 'success' => true, diff --git a/app/Http/Controllers/V1/Installation/FilePermissionsController.php b/app/Http/Controllers/V1/Installation/FilePermissionsController.php index 8740f71d8..b8f03b292 100644 --- a/app/Http/Controllers/V1/Installation/FilePermissionsController.php +++ b/app/Http/Controllers/V1/Installation/FilePermissionsController.php @@ -1,10 +1,10 @@ put('database_created', 'database_created'); + if (! InstallUtils::createDbMarker()) { + \Log::error('Install: Unable to create db marker.'); + } return response()->json(['success' => true]); } diff --git a/app/Http/Controllers/V1/Installation/LoginController.php b/app/Http/Controllers/V1/Installation/LoginController.php index a770ff513..d814ca82f 100644 --- a/app/Http/Controllers/V1/Installation/LoginController.php +++ b/app/Http/Controllers/V1/Installation/LoginController.php @@ -1,18 +1,17 @@ json([ 'success' => true, 'user' => $user, - 'company' => $user->companies()->first() + 'company' => $user->companies()->first(), ]); } } diff --git a/app/Http/Controllers/V1/Installation/OnboardingWizardController.php b/app/Http/Controllers/V1/Installation/OnboardingWizardController.php index c353b84c1..32c732adc 100644 --- a/app/Http/Controllers/V1/Installation/OnboardingWizardController.php +++ b/app/Http/Controllers/V1/Installation/OnboardingWizardController.php @@ -1,22 +1,22 @@ has('database_created')) { + if (! InstallUtils::dbMarkerExists()) { return response()->json([ 'profile_complete' => 0, ]); diff --git a/app/Http/Controllers/V1/Installation/RequirementsController.php b/app/Http/Controllers/V1/Installation/RequirementsController.php index cb2af8263..1a4ad44e5 100755 --- a/app/Http/Controllers/V1/Installation/RequirementsController.php +++ b/app/Http/Controllers/V1/Installation/RequirementsController.php @@ -1,10 +1,10 @@ requirements = $checker; diff --git a/app/Http/Controllers/V1/Modules/ScriptController.php b/app/Http/Controllers/V1/Modules/ScriptController.php index 8b85553b1..4fd93afce 100644 --- a/app/Http/Controllers/V1/Modules/ScriptController.php +++ b/app/Http/Controllers/V1/Modules/ScriptController.php @@ -1,11 +1,11 @@ getPDFData(); } - return $estimate->getGeneratedPDFOrStream('estimate'); } } diff --git a/app/Http/Controllers/V1/PDF/InvoicePdfController.php b/app/Http/Controllers/V1/PDF/InvoicePdfController.php index 6f3c47c98..944381ca6 100644 --- a/app/Http/Controllers/V1/PDF/InvoicePdfController.php +++ b/app/Http/Controllers/V1/PDF/InvoicePdfController.php @@ -1,17 +1,16 @@ [ - \Crater\Http\Middleware\EncryptCookies::class, + \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, - \Crater\Http\Middleware\VerifyCsrfToken::class, + \InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], @@ -55,23 +55,23 @@ class Kernel extends HttpKernel * @var array */ protected $routeMiddleware = [ - 'auth' => \Crater\Http\Middleware\Authenticate::class, - 'bouncer' => \Crater\Http\Middleware\ScopeBouncer::class, + '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' => \Crater\Http\Middleware\RedirectIfAuthenticated::class, - 'customer' => \Crater\Http\Middleware\CustomerRedirectIfAuthenticated::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' => \Crater\Http\Middleware\InstallationMiddleware::class, - 'redirect-if-installed' => \Crater\Http\Middleware\RedirectIfInstalled::class, - 'redirect-if-unauthenticated' => \Crater\Http\Middleware\RedirectIfUnauthorized::class, - 'customer-guest' => \Crater\Http\Middleware\CustomerGuest::class, - 'company' => \Crater\Http\Middleware\CompanyMiddleware::class, - 'pdf-auth' => \Crater\Http\Middleware\PdfMiddleware::class, - 'cron-job' => \Crater\Http\Middleware\CronJobMiddleware::class, - 'customer-portal' => \Crater\Http\Middleware\CustomerPortalMiddleware::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, ]; /** @@ -84,7 +84,7 @@ class Kernel extends HttpKernel protected $middlewarePriority = [ \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \Crater\Http\Middleware\Authenticate::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 83cfeec90..7e1cbb54f 100644 --- a/app/Http/Middleware/AdminMiddleware.php +++ b/app/Http/Middleware/AdminMiddleware.php @@ -1,6 +1,6 @@ has('database_created')) { + if (InstallUtils::isDbCreated()) { if ($request->has('file_disk_id')) { $file_disk = FileDisk::find($request->file_disk_id); } else { diff --git a/app/Http/Middleware/CronJobMiddleware.php b/app/Http/Middleware/CronJobMiddleware.php index 379b3ab76..ad992168a 100644 --- a/app/Http/Middleware/CronJobMiddleware.php +++ b/app/Http/Middleware/CronJobMiddleware.php @@ -1,6 +1,6 @@ has('database_created')) { + if (! InstallUtils::isDbCreated() || Setting::getSetting('profile_complete') !== 'COMPLETED') { return redirect('/installation'); } - if (\Storage::disk('local')->has('database_created')) { - if (Setting::getSetting('profile_complete') !== 'COMPLETED') { - return redirect('/installation'); - } - } - return $next($request); } } diff --git a/app/Http/Middleware/PdfMiddleware.php b/app/Http/Middleware/PdfMiddleware.php index a34859083..0f15a8992 100644 --- a/app/Http/Middleware/PdfMiddleware.php +++ b/app/Http/Middleware/PdfMiddleware.php @@ -1,6 +1,6 @@ has('database_created')) { + if (InstallUtils::dbMarkerExists()) { if (Setting::getSetting('profile_complete') === 'COMPLETED') { return redirect('login'); } diff --git a/app/Http/Middleware/RedirectIfUnauthorized.php b/app/Http/Middleware/RedirectIfUnauthorized.php index 79ba72e7a..8dc8d7cec 100644 --- a/app/Http/Middleware/RedirectIfUnauthorized.php +++ b/app/Http/Middleware/RedirectIfUnauthorized.php @@ -1,6 +1,6 @@ proxies = env('TRUSTED_PROXIES', '*'); + + return $this->proxies; + } } diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index ced3d5b36..bf781c178 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -1,6 +1,6 @@ [ 'nullable', - new Base64Mime(['gif', 'jpg', 'png']) - ] + new Base64Mime(['gif', 'jpg', 'png']), + ], ]; } } diff --git a/app/Http/Requests/BulkExchangeRateRequest.php b/app/Http/Requests/BulkExchangeRateRequest.php index 3e52344ba..581a99c69 100644 --- a/app/Http/Requests/BulkExchangeRateRequest.php +++ b/app/Http/Requests/BulkExchangeRateRequest.php @@ -1,6 +1,6 @@ [ - 'required' + 'required', ], 'currencies.*.id' => [ 'required', - 'numeric' + 'numeric', ], 'currencies.*.exchange_rate' => [ - 'required' - ] + 'required', + ], ]; } } diff --git a/app/Http/Requests/CompaniesRequest.php b/app/Http/Requests/CompaniesRequest.php index 5394592be..c774ea5ce 100644 --- a/app/Http/Requests/CompaniesRequest.php +++ b/app/Http/Requests/CompaniesRequest.php @@ -1,6 +1,6 @@ [ 'required', Rule::unique('companies'), - 'string' + 'string', ], 'currency' => [ - 'required' + 'required', ], 'address.name' => [ 'nullable', @@ -68,11 +68,13 @@ public function getCompanyPayload() { return collect($this->validated()) ->only([ - 'name' + 'name', + 'vat_id', + 'tax_id', ]) ->merge([ 'owner_id' => $this->user()->id, - 'slug' => Str::slug($this->name) + 'slug' => Str::slug($this->name), ]) ->toArray(); } diff --git a/app/Http/Requests/CompanyLogoRequest.php b/app/Http/Requests/CompanyLogoRequest.php index 3ff0c685e..cf2a75cf1 100644 --- a/app/Http/Requests/CompanyLogoRequest.php +++ b/app/Http/Requests/CompanyLogoRequest.php @@ -1,9 +1,9 @@ [ 'nullable', - new Base64Mime(['gif', 'jpg', 'png']) - ] + new Base64Mime(['gif', 'jpg', 'png']), + ], ]; } } diff --git a/app/Http/Requests/CompanyRequest.php b/app/Http/Requests/CompanyRequest.php index c86cd6457..8dc5001a4 100644 --- a/app/Http/Requests/CompanyRequest.php +++ b/app/Http/Requests/CompanyRequest.php @@ -1,6 +1,6 @@ ignore($this->header('company'), 'id'), ], + 'vat_id' => [ + 'nullable', + ], + 'tax_id' => [ + 'nullable', + ], 'slug' => [ - 'nullable' + 'nullable', ], 'address.country_id' => [ 'required', @@ -43,7 +49,9 @@ public function getCompanyPayload() return collect($this->validated()) ->only([ 'name', - 'slug' + 'slug', + 'vat_id', + 'tax_id', ]) ->toArray(); } diff --git a/app/Http/Requests/CompanySettingRequest.php b/app/Http/Requests/CompanySettingRequest.php index 306deae70..658429511 100644 --- a/app/Http/Requests/CompanySettingRequest.php +++ b/app/Http/Requests/CompanySettingRequest.php @@ -1,6 +1,6 @@ [ 'required', - 'string' + 'string', ], 'password' => [ 'required', - 'string' - ] + 'string', + ], ]; } } diff --git a/app/Http/Requests/Customer/CustomerProfileRequest.php b/app/Http/Requests/Customer/CustomerProfileRequest.php index efaa3a5c1..64df7b8cc 100644 --- a/app/Http/Requests/Customer/CustomerProfileRequest.php +++ b/app/Http/Requests/Customer/CustomerProfileRequest.php @@ -1,11 +1,11 @@ shipping) ->merge([ - 'type' => Address::SHIPPING_TYPE + 'type' => Address::SHIPPING_TYPE, ]) ->toArray(); } @@ -115,7 +115,7 @@ public function getBillingAddress() { return collect($this->billing) ->merge([ - 'type' => Address::BILLING_TYPE + 'type' => Address::BILLING_TYPE, ]) ->toArray(); } diff --git a/app/Http/Requests/CustomerEstimateStatusRequest.php b/app/Http/Requests/CustomerEstimateStatusRequest.php index 57f4d5ab2..ad8cb975e 100644 --- a/app/Http/Requests/CustomerEstimateStatusRequest.php +++ b/app/Http/Requests/CustomerEstimateStatusRequest.php @@ -1,6 +1,6 @@ [ 'required', 'in:ACCEPTED,REJECTED', - ] + ], ]; } } diff --git a/app/Http/Requests/CustomerRequest.php b/app/Http/Requests/CustomerRequest.php index 4b0a4b561..36e557a18 100644 --- a/app/Http/Requests/CustomerRequest.php +++ b/app/Http/Requests/CustomerRequest.php @@ -1,11 +1,11 @@ [ 'email', 'nullable', - Rule::unique('customers')->where('company_id', $this->header('company')) + Rule::unique('customers')->where('company_id', $this->header('company')), ], 'password' => [ 'nullable', @@ -55,7 +55,7 @@ public function rules() ], 'enable_portal' => [ - 'boolean' + 'boolean', ], 'currency_id' => [ 'nullable', @@ -113,7 +113,7 @@ public function rules() ], 'shipping.fax' => [ 'nullable', - ] + ], ]; if ($this->isMethod('PUT') && $this->email != null) { @@ -122,7 +122,7 @@ public function rules() 'nullable', Rule::unique('customers')->where('company_id', $this->header('company'))->ignore($this->route('customer')->id), ]; - }; + } return $rules; } @@ -156,7 +156,7 @@ public function getShippingAddress() { return collect($this->shipping) ->merge([ - 'type' => Address::SHIPPING_TYPE + 'type' => Address::SHIPPING_TYPE, ]) ->toArray(); } @@ -165,7 +165,7 @@ public function getBillingAddress() { return collect($this->billing) ->merge([ - 'type' => Address::BILLING_TYPE + 'type' => Address::BILLING_TYPE, ]) ->toArray(); } diff --git a/app/Http/Requests/DatabaseEnvironmentRequest.php b/app/Http/Requests/DatabaseEnvironmentRequest.php index 5bfae113b..85834d619 100644 --- a/app/Http/Requests/DatabaseEnvironmentRequest.php +++ b/app/Http/Requests/DatabaseEnvironmentRequest.php @@ -1,6 +1,6 @@ [ 'required', - Rule::unique('estimates')->where('company_id', $this->header('company')) + Rule::unique('estimates')->where('company_id', $this->header('company')), ], 'exchange_rate' => [ - 'nullable' + 'nullable', ], 'discount' => [ + 'numeric', 'required', ], 'discount_val' => [ + 'integer', 'required', ], 'sub_total' => [ + 'integer', 'required', ], 'total' => [ + 'integer', + 'numeric', + 'max:99999999', 'required', ], 'tax' => [ 'required', ], 'template_name' => [ - 'required' + 'required', ], 'items' => [ 'required', @@ -77,9 +83,11 @@ public function rules() 'required', ], 'items.*.quantity' => [ + 'integer', 'required', ], 'items.*.price' => [ + 'integer', 'required', ], ]; @@ -89,11 +97,11 @@ public function rules() $customer = Customer::find($this->customer_id); if ($companyCurrency && $customer) { - if ((string)$customer->currency_id !== $companyCurrency) { + if ((string) $customer->currency_id !== $companyCurrency) { $rules['exchange_rate'] = [ 'required', ]; - }; + } } if ($this->isMethod('PUT')) { diff --git a/app/Http/Requests/ExchangeRateLogRequest.php b/app/Http/Requests/ExchangeRateLogRequest.php index 5f7050414..1b593814c 100644 --- a/app/Http/Requests/ExchangeRateLogRequest.php +++ b/app/Http/Requests/ExchangeRateLogRequest.php @@ -1,9 +1,9 @@ [ - 'required' - ] + 'required', + ], ]; } diff --git a/app/Http/Requests/ExchangeRateProviderRequest.php b/app/Http/Requests/ExchangeRateProviderRequest.php index 773ca864c..4c3d02f16 100644 --- a/app/Http/Requests/ExchangeRateProviderRequest.php +++ b/app/Http/Requests/ExchangeRateProviderRequest.php @@ -1,6 +1,6 @@ [ - 'required' + 'required', ], 'key' => [ 'required', @@ -37,11 +37,11 @@ public function rules() 'nullable', ], 'driver_config' => [ - 'nullable' + 'nullable', ], 'active' => [ 'nullable', - 'boolean' + 'boolean', ], ]; @@ -52,7 +52,7 @@ public function getExchangeRateProviderPayload() { return collect($this->validated()) ->merge([ - 'company_id' => $this->header('company') + 'company_id' => $this->header('company'), ]) ->toArray(); } diff --git a/app/Http/Requests/ExpenseCategoryRequest.php b/app/Http/Requests/ExpenseCategoryRequest.php index 6ba30885d..da3e52c48 100644 --- a/app/Http/Requests/ExpenseCategoryRequest.php +++ b/app/Http/Requests/ExpenseCategoryRequest.php @@ -1,6 +1,6 @@ validated()) ->merge([ - 'company_id' => $this->header('company') + 'company_id' => $this->header('company'), ]) ->toArray(); } diff --git a/app/Http/Requests/ExpenseRequest.php b/app/Http/Requests/ExpenseRequest.php index a8baa723f..40a187f91 100644 --- a/app/Http/Requests/ExpenseRequest.php +++ b/app/Http/Requests/ExpenseRequest.php @@ -1,9 +1,9 @@ [ - 'nullable' + 'nullable', ], 'payment_method_id' => [ 'nullable', @@ -49,14 +49,14 @@ public function rules() 'nullable', ], 'currency_id' => [ - 'required' + 'required', ], 'attachment_receipt' => [ 'nullable', 'file', 'mimes:jpg,png,pdf,doc,docx,xls,xlsx,ppt,pptx', - 'max:20000' - ] + 'max:20000', + ], ]; if ($companyCurrency && $this->currency_id) { @@ -64,7 +64,7 @@ public function rules() $rules['exchange_rate'] = [ 'required', ]; - }; + } } return $rules; @@ -82,7 +82,7 @@ public function getExpensePayload() 'company_id' => $this->header('company'), 'exchange_rate' => $exchange_rate, 'base_amount' => $this->amount * $exchange_rate, - 'currency_id' => $current_currency + 'currency_id' => $current_currency, ]) ->toArray(); } diff --git a/app/Http/Requests/GetSettingRequest.php b/app/Http/Requests/GetSettingRequest.php index edc7dd4e7..71eebad26 100644 --- a/app/Http/Requests/GetSettingRequest.php +++ b/app/Http/Requests/GetSettingRequest.php @@ -1,6 +1,6 @@ [ 'required', - 'string' - ] + 'string', + ], ]; } } diff --git a/app/Http/Requests/GetSettingsRequest.php b/app/Http/Requests/GetSettingsRequest.php index f0b77297c..f81702c53 100644 --- a/app/Http/Requests/GetSettingsRequest.php +++ b/app/Http/Requests/GetSettingsRequest.php @@ -1,6 +1,6 @@ [ 'required', - Rule::unique('invoices')->where('company_id', $this->header('company')) + Rule::unique('invoices')->where('company_id', $this->header('company')), ], 'exchange_rate' => [ - 'nullable' + 'nullable', ], 'discount' => [ + 'numeric', 'required', ], 'discount_val' => [ + 'integer', 'required', ], 'sub_total' => [ + 'integer', 'required', ], 'total' => [ + 'integer', + 'numeric', + 'max:99999999', 'required', ], 'tax' => [ 'required', ], 'template_name' => [ - 'required' + 'required', ], 'items' => [ 'required', @@ -77,9 +83,11 @@ public function rules() 'required', ], 'items.*.quantity' => [ + 'integer', 'required', ], 'items.*.price' => [ + 'integer', 'required', ], ]; @@ -89,11 +97,11 @@ public function rules() $customer = Customer::find($this->customer_id); if ($customer && $companyCurrency) { - if ((string)$customer->currency_id !== $companyCurrency) { + if ((string) $customer->currency_id !== $companyCurrency) { $rules['exchange_rate'] = [ 'required', ]; - }; + } } if ($this->isMethod('PUT')) { diff --git a/app/Http/Requests/ItemsRequest.php b/app/Http/Requests/ItemsRequest.php index ba98aaa01..3e51b5901 100644 --- a/app/Http/Requests/ItemsRequest.php +++ b/app/Http/Requests/ItemsRequest.php @@ -1,6 +1,6 @@ [ - 'required' + 'required', ], ]; } diff --git a/app/Http/Requests/MailEnvironmentRequest.php b/app/Http/Requests/MailEnvironmentRequest.php index 94ffcc4d6..3d5e4ee36 100644 --- a/app/Http/Requests/MailEnvironmentRequest.php +++ b/app/Http/Requests/MailEnvironmentRequest.php @@ -1,6 +1,6 @@ [ - 'required' + 'required', ], 'name' => [ 'required', Rule::unique('notes') ->where('company_id', $this->header('company')) - ->where('type', $this->type) + ->where('type', $this->type), ], 'notes' => [ - 'required' + 'required', ], ]; @@ -45,7 +45,7 @@ public function rules() Rule::unique('notes') ->ignore($this->route('note')->id) ->where('type', $this->type) - ->where('company_id', $this->header('company')) + ->where('company_id', $this->header('company')), ]; } @@ -56,7 +56,7 @@ public function getNotesPayload() { return collect($this->validated()) ->merge([ - 'company_id' => $this->header('company') + 'company_id' => $this->header('company'), ]) ->toArray(); } diff --git a/app/Http/Requests/PaymentMethodRequest.php b/app/Http/Requests/PaymentMethodRequest.php index 210471c64..965ebfb24 100644 --- a/app/Http/Requests/PaymentMethodRequest.php +++ b/app/Http/Requests/PaymentMethodRequest.php @@ -1,10 +1,10 @@ [ - 'nullable' + 'nullable', ], 'amount' => [ 'required', ], 'payment_number' => [ 'required', - Rule::unique('payments')->where('company_id', $this->header('company')) + Rule::unique('payments')->where('company_id', $this->header('company')), ], 'invoice_id' => [ 'nullable', @@ -68,11 +68,11 @@ public function rules() $customer = Customer::find($this->customer_id); if ($customer && $companyCurrency) { - if ((string)$customer->currency_id !== $companyCurrency) { + if ((string) $customer->currency_id !== $companyCurrency) { $rules['exchange_rate'] = [ 'required', ]; - }; + } } return $rules; @@ -91,7 +91,7 @@ public function getPaymentPayload() 'company_id' => $this->header('company'), 'exchange_rate' => $exchange_rate, 'base_amount' => $this->amount * $exchange_rate, - 'currency_id' => $currency + 'currency_id' => $currency, ]) ->toArray(); } diff --git a/app/Http/Requests/ProfileRequest.php b/app/Http/Requests/ProfileRequest.php index d2ddca194..cebad5505 100644 --- a/app/Http/Requests/ProfileRequest.php +++ b/app/Http/Requests/ProfileRequest.php @@ -1,6 +1,6 @@ [ - 'required' + 'required', ], 'send_automatically' => [ 'required', - 'boolean' + 'boolean', ], 'customer_id' => [ - 'required' + 'required', ], 'exchange_rate' => [ - 'nullable' + 'nullable', ], 'discount' => [ + 'numeric', 'required', ], 'discount_val' => [ + 'integer', 'required', ], 'sub_total' => [ + 'integer', 'required', ], 'total' => [ + 'integer', + 'numeric', + 'max:99999999', 'required', ], 'tax' => [ 'required', ], 'status' => [ - 'required' + 'required', ], 'exchange_rate' => [ - 'nullable' + 'nullable', ], 'frequency' => [ - 'required' + 'required', ], 'limit_by' => [ - 'required' + 'required', ], 'limit_count' => [ 'required_if:limit_by,COUNT', @@ -76,24 +82,24 @@ public function rules() 'required_if:limit_by,DATE', ], 'items' => [ - 'required' + 'required', ], 'items.*' => [ - 'required' - ] + 'required', + ], ]; $customer = Customer::find($this->customer_id); if ($customer && $companyCurrency) { - if ((string)$customer->currency_id !== $companyCurrency) { + if ((string) $customer->currency_id !== $companyCurrency) { $rules['exchange_rate'] = [ 'required', ]; - }; + } } - return $rules; + return $rules; } public function getRecurringInvoicePayload() @@ -114,7 +120,7 @@ public function getRecurringInvoicePayload() 'discount_per_item' => CompanySetting::getSetting('discount_per_item', $this->header('company')) ?? 'NO', 'due_amount' => $this->total, 'exchange_rate' => $exchange_rate, - 'currency_id' => $currency + 'currency_id' => $currency, ]) ->toArray(); } diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index e7df98c7b..5107994f8 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -1,6 +1,6 @@ [ 'required', 'string', - Rule::unique('roles')->where('scope', $this->header('company')) + Rule::unique('roles')->where('scope', $this->header('company')), ], 'abilities' => [ - 'required' + 'required', ], 'abilities.*' => [ - 'required' - ] + 'required', + ], ]; if ($this->getMethod() == 'PUT') { @@ -44,7 +44,7 @@ public function rules() 'string', Rule::unique('roles') ->ignore($this->route('role')->id, 'id') - ->where('scope', $this->header('company')) + ->where('scope', $this->header('company')), ]; } diff --git a/app/Http/Requests/SendEstimatesRequest.php b/app/Http/Requests/SendEstimatesRequest.php index d7826486a..68f94a58d 100644 --- a/app/Http/Requests/SendEstimatesRequest.php +++ b/app/Http/Requests/SendEstimatesRequest.php @@ -1,6 +1,6 @@ [ 'required', Rule::unique('tax_types') - ->where('type', TaxType::TYPE_GENERAL) - ->where('company_id', $this->header('company')) + ->where('type', TaxType::TYPE_GENERAL) + ->where('company_id', $this->header('company')), ], 'percent' => [ 'required', @@ -52,7 +52,7 @@ public function rules() Rule::unique('tax_types') ->ignore($this->route('tax_type')->id) ->where('type', TaxType::TYPE_GENERAL) - ->where('company_id', $this->header('company')) + ->where('company_id', $this->header('company')), ]; } @@ -64,7 +64,7 @@ public function getTaxTypePayload() return collect($this->validated()) ->merge([ 'company_id' => $this->header('company'), - 'type' => TaxType::TYPE_GENERAL + 'type' => TaxType::TYPE_GENERAL, ]) ->toArray(); } diff --git a/app/Http/Requests/UnitRequest.php b/app/Http/Requests/UnitRequest.php index c57d6e2e9..d7c43ee20 100644 --- a/app/Http/Requests/UnitRequest.php +++ b/app/Http/Requests/UnitRequest.php @@ -1,6 +1,6 @@ validated()) ->merge([ - 'company_id' => $this->header('company') + 'company_id' => $this->header('company'), ]) ->toArray(); } diff --git a/app/Http/Requests/UnzipUpdateRequest.php b/app/Http/Requests/UnzipUpdateRequest.php index 1557d6f37..59a960629 100644 --- a/app/Http/Requests/UnzipUpdateRequest.php +++ b/app/Http/Requests/UnzipUpdateRequest.php @@ -1,6 +1,6 @@ [ 'required', - 'regex:/^[\.\/\w\-]+$/' + 'regex:/^[\.\/\w\-]+$/', ], 'module' => [ 'required', - 'string' - ] + 'string', + ], ]; } } diff --git a/app/Http/Requests/UpdateSettingsRequest.php b/app/Http/Requests/UpdateSettingsRequest.php index 80447e722..83fc5c53b 100644 --- a/app/Http/Requests/UpdateSettingsRequest.php +++ b/app/Http/Requests/UpdateSettingsRequest.php @@ -1,6 +1,6 @@ [ 'nullable', - new Base64Mime(['gif', 'jpg', 'png']) - ] + new Base64Mime(['gif', 'jpg', 'png']), + ], ]; } } diff --git a/app/Http/Requests/UploadModuleRequest.php b/app/Http/Requests/UploadModuleRequest.php index da5929417..973ffc918 100644 --- a/app/Http/Requests/UploadModuleRequest.php +++ b/app/Http/Requests/UploadModuleRequest.php @@ -1,6 +1,6 @@ [ 'required', 'string', - 'max:100' - ] + 'max:100', + ], ]; } } diff --git a/app/Http/Requests/UserRequest.php b/app/Http/Requests/UserRequest.php index 523e73454..9238a09c7 100644 --- a/app/Http/Requests/UserRequest.php +++ b/app/Http/Requests/UserRequest.php @@ -1,6 +1,6 @@ $this->id, 'name' => $this->name, + 'vat_id' => $this->vat_id, + 'tax_id' => $this->tax_id, 'logo' => $this->logo, 'logo_path' => $this->logo_path, 'unique_hash' => $this->unique_hash, @@ -25,7 +27,7 @@ public function toArray($request) 'address' => $this->when($this->address()->exists(), function () { return new AddressResource($this->address); }), - 'roles' => RoleResource::collection($this->roles) + 'roles' => RoleResource::collection($this->roles), ]; } } diff --git a/app/Http/Resources/CountryCollection.php b/app/Http/Resources/CountryCollection.php index 9d6fe4074..237c50712 100644 --- a/app/Http/Resources/CountryCollection.php +++ b/app/Http/Resources/CountryCollection.php @@ -1,6 +1,6 @@ $this->thousand_separator, 'decimal_separator' => $this->decimal_separator, 'swap_currency_symbol' => $this->swap_currency_symbol, - 'exchange_rate' => $this->exchange_rate + 'exchange_rate' => $this->exchange_rate, ]; } } diff --git a/app/Http/Resources/CustomFieldCollection.php b/app/Http/Resources/CustomFieldCollection.php index 057154e8f..8f23e2ff7 100644 --- a/app/Http/Resources/CustomFieldCollection.php +++ b/app/Http/Resources/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->thousand_separator, 'decimal_separator' => $this->decimal_separator, 'swap_currency_symbol' => $this->swap_currency_symbol, - 'exchange_rate' => $this->exchange_rate + 'exchange_rate' => $this->exchange_rate, ]; } } diff --git a/app/Http/Resources/Customer/CustomFieldCollection.php b/app/Http/Resources/Customer/CustomFieldCollection.php index ef306ed8a..e6ccde4ab 100644 --- a/app/Http/Resources/Customer/CustomFieldCollection.php +++ b/app/Http/Resources/Customer/CustomFieldCollection.php @@ -1,6 +1,6 @@ $this->updateAvailable(), 'video_link' => $this->video_link, 'video_thumbnail' => $this->video_thumbnail, - 'links' => $this->links + 'links' => $this->links, ]; } @@ -108,7 +108,7 @@ public function updateAvailable() return false; } - if (version_compare(Setting::getSetting('version'), $this->latest_module_version->crater_version, '<')) { + if (version_compare(Setting::getSetting('version'), $this->latest_module_version->invoiceshelf_version, '<')) { return false; } diff --git a/app/Http/Resources/NoteCollection.php b/app/Http/Resources/NoteCollection.php index 4dfa780d5..82b987e67 100644 --- a/app/Http/Resources/NoteCollection.php +++ b/app/Http/Resources/NoteCollection.php @@ -1,6 +1,6 @@ $this->title, 'level' => $this->level, 'formatted_created_at' => $this->getFormattedAt(), - 'abilities' => $this->getAbilities() + 'abilities' => $this->getAbilities(), ]; } diff --git a/app/Http/Resources/TaxCollection.php b/app/Http/Resources/TaxCollection.php index c7dcbb86b..6e9c47bdd 100644 --- a/app/Http/Resources/TaxCollection.php +++ b/app/Http/Resources/TaxCollection.php @@ -1,6 +1,6 @@ $this->when($this->companies()->exists(), function () { return CompanyResource::collection($this->companies); - }) + }), ]; } } diff --git a/app/Jobs/CreateBackupJob.php b/app/Jobs/CreateBackupJob.php index b45fe0fe9..841cf829a 100644 --- a/app/Jobs/CreateBackupJob.php +++ b/app/Jobs/CreateBackupJob.php @@ -1,13 +1,13 @@ [$prefix.$fileDisk->driver]]); $backupJob = BackupJobFactory::createFromArray(config('backup')); + if (! defined('SIGINT')) { + $backupJob->disableSignals(); + } if ($this->data['option'] === 'only-db') { $backupJob->dontBackupFilesystem(); diff --git a/app/Jobs/GenerateEstimatePdfJob.php b/app/Jobs/GenerateEstimatePdfJob.php index 91030eaec..5eeb45356 100644 --- a/app/Jobs/GenerateEstimatePdfJob.php +++ b/app/Jobs/GenerateEstimatePdfJob.php @@ -1,6 +1,6 @@ isListenerFired($event)) { - return; - } - - // Add currencies - $this->addCurrencies(); - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } - - private function addCurrencies() - { - $currencies = [ - '13' => [ - 'symbol' => 'S$', - ], - '16' => [ - 'symbol' => '₫', - ], - '17' => [ - 'symbol' => 'Fr.', - ], - '21' => [ - 'symbol' => '฿', - ], - '22' => [ - 'symbol' => '₦', - ], - '26' => [ - 'symbol' => 'HK$', - ], - '35' => [ - 'symbol' => 'NAƒ', - ], - '38' => [ - 'symbol' => 'GH₵', - ], - '39' => [ - 'symbol' => 'Лв.', - ], - '42' => [ - 'symbol' => 'RON', - ], - '44' => [ - 'symbol' => 'SِAR', - ], - '46' => [ - 'symbol' => 'Rf', - ], - '47' => [ - 'symbol' => '₡', - ], - '54' => [ - 'symbol' => '‎د.ت', - ], - '55' => [ - 'symbol' => '₽', - ], - '57' => [ - 'symbol' => 'ر.ع.', - ], - '58' => [ - 'symbol' => '₴', - ], - - ]; - - foreach ($currencies as $key => $currency) { - Currency::updateOrCreate(['id' => $key], $currency); - } - - Currency::create([ - 'name' => 'Kuwaiti Dinar', - 'code' => 'KWD', - 'symbol' => 'KWD ', - 'precision' => '3', - 'thousand_separator' => ',', - 'decimal_separator' => '.', - ]); - } -} diff --git a/app/Listeners/Updates/v2/Version200.php b/app/Listeners/Updates/v2/Version200.php deleted file mode 100644 index d506c203b..000000000 --- a/app/Listeners/Updates/v2/Version200.php +++ /dev/null @@ -1,111 +0,0 @@ -isListenerFired($event)) { - return; - } - - // Replace state and city id to name - $this->replaceStateAndCityName(); - - // Drop states and cities foreign key - $this->dropForeignKey(); - - // Remove states and cities tables - $this->dropSchemas(); - - // Delete state & city models, migrations & seeders - $this->deleteFiles(); - - // Update Crater app version - $this->updateVersion(); - } - - private function replaceStateAndCityName() - { - \Schema::table('addresses', function (Blueprint $table) { - $table->string('state')->nullable(); - $table->string('city')->nullable(); - }); - - $addresses = \Crater\Models\Address::all(); - foreach ($addresses as $add) { - $city = \Crater\City::find($add->city_id); - if ($city) { - $add->city = $city->name; - } - - $state = \Crater\State::find($add->state_id); - if ($state) { - $add->state = $state->name; - } - - $add->save(); - } - } - - private function dropForeignKey() - { - \Schema::table('addresses', function (Blueprint $table) { - $table->dropForeign('addresses_state_id_foreign'); - $table->dropForeign('addresses_city_id_foreign'); - $table->dropColumn('state_id'); - $table->dropColumn('city_id'); - }); - } - - private function dropSchemas() - { - \Schema::disableForeignKeyConstraints(); - - \Schema::dropIfExists('states'); - \Schema::dropIfExists('cities'); - - \Schema::enableForeignKeyConstraints(); - } - - private function deleteFiles() - { - \File::delete( - database_path('migrations/2017_05_06_172817_create_cities_table.php'), - database_path('migrations/2017_05_06_173711_create_states_table.php'), - database_path('seeds/StatesTableSeeder.php'), - database_path('seeds/CitiesTableSeeder.php'), - app_path('City.php'), - app_path('State.php') - ); - } - - private function updateVersion() - { - Setting::setSetting('version', static::VERSION); - } -} diff --git a/app/Listeners/Updates/v2/Version201.php b/app/Listeners/Updates/v2/Version201.php deleted file mode 100644 index 888503367..000000000 --- a/app/Listeners/Updates/v2/Version201.php +++ /dev/null @@ -1,86 +0,0 @@ -isListenerFired($event)) { - return; - } - - // Remove the language files - $this->removeLanguageFiles(); - - // Change estimate & invoice migrations - $this->changeMigrations(); - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } - - private function removeLanguageFiles() - { - $en = resource_path('assets/js/plugins/en.js'); - $es = resource_path('assets/js/plugins/es.js'); - $fr = resource_path('assets/js/plugins/fr.js'); - - if (file_exists($en)) { - unlink($en); - } - - if (file_exists($es)) { - unlink($es); - } - - if (file_exists($fr)) { - unlink($fr); - } - } - - private function changeMigrations() - { - \Schema::table('invoices', function (Blueprint $table) { - $table->decimal('discount', 15, 2)->nullable()->change(); - }); - - \Schema::table('estimates', function (Blueprint $table) { - $table->decimal('discount', 15, 2)->nullable()->change(); - }); - - \Schema::table('invoice_items', function (Blueprint $table) { - $table->decimal('quantity', 15, 2)->change(); - $table->decimal('discount', 15, 2)->nullable()->change(); - }); - - \Schema::table('estimate_items', function (Blueprint $table) { - $table->decimal('quantity', 15, 2)->change(); - $table->decimal('discount', 15, 2)->nullable()->change(); - $table->unsignedBigInteger('discount_val')->nullable()->change(); - }); - } -} diff --git a/app/Listeners/Updates/v2/Version202.php b/app/Listeners/Updates/v2/Version202.php deleted file mode 100644 index 5503c32b3..000000000 --- a/app/Listeners/Updates/v2/Version202.php +++ /dev/null @@ -1,38 +0,0 @@ -isListenerFired($event)) { - return; - } - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } -} diff --git a/app/Listeners/Updates/v2/Version210.php b/app/Listeners/Updates/v2/Version210.php deleted file mode 100644 index 2a1f01623..000000000 --- a/app/Listeners/Updates/v2/Version210.php +++ /dev/null @@ -1,62 +0,0 @@ -isListenerFired($event)) { - return; - } - - // Add initial auto generate value - $this->addAutoGenerateSettings(); - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } - - private function addAutoGenerateSettings() - { - $settings = [ - 'invoice_auto_generate' => 'YES', - 'invoice_prefix' => 'INV', - 'estimate_prefix' => 'EST', - 'estimate_auto_generate' => 'YES', - 'payment_prefix' => 'PAY', - 'payment_auto_generate' => 'YES', - ]; - - foreach ($settings as $key => $value) { - CompanySetting::setSetting( - $key, - $value, - auth()->user()->company->id - ); - } - } -} diff --git a/app/Listeners/Updates/v3/Version300.php b/app/Listeners/Updates/v3/Version300.php deleted file mode 100644 index 55e5b1543..000000000 --- a/app/Listeners/Updates/v3/Version300.php +++ /dev/null @@ -1,161 +0,0 @@ -isListenerFired($event)) { - return; - } - - $this->changeMigrations(); - - $this->addSeederData(); - - $this->databaseChanges(); - - $this->changeMigrations(true); - - Setting::setSetting('version', static::VERSION); - } - - public function changeMigrations($removeColumn = false) - { - if ($removeColumn) { - \Schema::table('items', function (Blueprint $table) { - $table->dropColumn('unit'); - }); - - \Schema::table('payments', function (Blueprint $table) { - $table->dropColumn('payment_mode'); - }); - - return true; - } - - \Schema::create('units', function (Blueprint $table) { - $table->increments('id'); - $table->string('name'); - $table->integer('company_id')->unsigned()->nullable(); - $table->foreign('company_id')->references('id')->on('companies'); - $table->timestamps(); - }); - - \Schema::table('items', function (Blueprint $table) { - $table->integer('unit_id')->unsigned()->nullable(); - $table->foreign('unit_id')->references('id')->on('units')->onDelete('cascade'); - }); - - \Schema::create('payment_methods', function (Blueprint $table) { - $table->increments('id'); - $table->string('name'); - $table->integer('company_id')->unsigned()->nullable(); - $table->foreign('company_id')->references('id')->on('companies'); - $table->timestamps(); - }); - - \Schema::table('payments', function (Blueprint $table) { - $table->string('unique_hash')->nullable(); - $table->integer('payment_method_id')->unsigned()->nullable(); - $table->foreign('payment_method_id')->references('id')->on('payment_methods')->onDelete('cascade'); - }); - - return true; - } - - public function addSeederData() - { - $company_id = User::where('role', 'admin')->first()->company_id; - - Unit::create(['name' => 'box', 'company_id' => $company_id]); - Unit::create(['name' => 'cm', 'company_id' => $company_id]); - Unit::create(['name' => 'dz', 'company_id' => $company_id]); - Unit::create(['name' => 'ft', 'company_id' => $company_id]); - Unit::create(['name' => 'g', 'company_id' => $company_id]); - Unit::create(['name' => 'in', 'company_id' => $company_id]); - Unit::create(['name' => 'kg', 'company_id' => $company_id]); - Unit::create(['name' => 'km', 'company_id' => $company_id]); - Unit::create(['name' => 'lb', 'company_id' => $company_id]); - Unit::create(['name' => 'mg', 'company_id' => $company_id]); - Unit::create(['name' => 'pc', 'company_id' => $company_id]); - - PaymentMethod::create(['name' => 'Cash', 'company_id' => $company_id]); - PaymentMethod::create(['name' => 'Check', 'company_id' => $company_id]); - PaymentMethod::create(['name' => 'Credit Card', 'company_id' => $company_id]); - PaymentMethod::create(['name' => 'Bank Transfer', 'company_id' => $company_id]); - - Currency::create([ - 'name' => 'Serbian Dinar', - 'code' => 'RSD', - 'symbol' => 'RSD', - 'precision' => '2', - 'thousand_separator' => '.', - 'decimal_separator' => ',', - ]); - } - - public function databaseChanges() - { - $payments = Payment::all(); - - if ($payments) { - foreach ($payments as $payment) { - $payment->unique_hash = Hashids::connection(Payment::class)->encode($payment->id); - $payment->save(); - - $paymentMethod = PaymentMethod::where('name', $payment->payment_mode) - ->first(); - - if ($paymentMethod) { - $payment->payment_method_id = $paymentMethod->id; - $payment->save(); - } - } - } - - $items = Item::all(); - - if ($items) { - foreach ($items as $item) { - $unit = Unit::where('name', $item->unit) - ->first(); - - if ($unit) { - $item->unit_id = $unit->id; - $item->save(); - } - } - } - } -} diff --git a/app/Listeners/Updates/v3/Version310.php b/app/Listeners/Updates/v3/Version310.php deleted file mode 100644 index 9be0767f6..000000000 --- a/app/Listeners/Updates/v3/Version310.php +++ /dev/null @@ -1,47 +0,0 @@ -isListenerFired($event)) { - return; - } - - Currency::firstOrCreate( - [ - 'name' => 'Kyrgyzstani som', - 'code' => 'KGS', - ], - [ - 'name' => 'Kyrgyzstani som', - 'code' => 'KGS', - 'symbol' => 'С̲ ', - 'precision' => '2', - 'thousand_separator' => '.', - 'decimal_separator' => ',', - ] - ); - - Artisan::call('migrate', ['--force' => true]); - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } -} diff --git a/app/Listeners/Updates/v3/Version311.php b/app/Listeners/Updates/v3/Version311.php deleted file mode 100644 index e9005216d..000000000 --- a/app/Listeners/Updates/v3/Version311.php +++ /dev/null @@ -1,31 +0,0 @@ -isListenerFired($event)) { - return; - } - - Artisan::call('migrate', ['--force' => true]); - - // Update Crater app version - Setting::setSetting('version', static::VERSION); - } -} diff --git a/app/Mail/EstimateViewedMail.php b/app/Mail/EstimateViewedMail.php index a29d8f6c7..9773eec39 100644 --- a/app/Mail/EstimateViewedMail.php +++ b/app/Mail/EstimateViewedMail.php @@ -1,6 +1,6 @@ from(config('mail.from.address'), config('mail.from.name')) - ->markdown('emails.viewed.estimate', ['data', $this->data]); + ->markdown('emails.viewed.estimate', ['data', $this->data]); } } diff --git a/app/Mail/InvoiceViewedMail.php b/app/Mail/InvoiceViewedMail.php index 94e858b31..e658de359 100644 --- a/app/Mail/InvoiceViewedMail.php +++ b/app/Mail/InvoiceViewedMail.php @@ -1,6 +1,6 @@ from(config('mail.from.address'), config('mail.from.name')) - ->markdown('emails.viewed.invoice', ['data', $this->data]); + ->markdown('emails.viewed.invoice', ['data', $this->data]); } } diff --git a/app/Mail/SendEstimateMail.php b/app/Mail/SendEstimateMail.php index 70121e006..fc6c90740 100644 --- a/app/Mail/SendEstimateMail.php +++ b/app/Mail/SendEstimateMail.php @@ -1,12 +1,12 @@ data['url'] = route('estimate', ['email_log' => $log->token]); $mailContent = $this->from($this->data['from'], config('mail.from.name')) - ->subject($this->data['subject']) - ->markdown('emails.send.estimate', ['data', $this->data]); + ->subject($this->data['subject']) + ->markdown('emails.send.estimate', ['data', $this->data]); if ($this->data['attach']['data']) { $mailContent->attachData( diff --git a/app/Mail/SendInvoiceMail.php b/app/Mail/SendInvoiceMail.php index 81d76fa77..4c4473bf9 100644 --- a/app/Mail/SendInvoiceMail.php +++ b/app/Mail/SendInvoiceMail.php @@ -1,12 +1,12 @@ data['url'] = route('payment', ['email_log' => $log->token]); $mailContent = $this->from($this->data['from'], config('mail.from.name')) - ->subject($this->data['subject']) - ->markdown('emails.send.payment', ['data', $this->data]); + ->subject($this->data['subject']) + ->markdown('emails.send.payment', ['data', $this->data]); if ($this->data['attach']['data']) { $mailContent->attachData( diff --git a/app/Mail/TestMail.php b/app/Mail/TestMail.php index 8e7548d00..fd33048b1 100644 --- a/app/Mail/TestMail.php +++ b/app/Mail/TestMail.php @@ -1,6 +1,6 @@ firstOrCreate([ 'name' => 'super admin', 'title' => 'Super Admin', - 'scope' => $this->id + 'scope' => $this->id, ]); foreach (config('abilities.abilities') as $ability) { @@ -223,7 +223,7 @@ public function setupDefaultSettings() 'fiscal_year' => '1-12', 'carbon_date_format' => 'Y/m/d', 'moment_date_format' => 'YYYY/MM/DD', - 'notification_email' => 'noreply@crater.in', + 'notification_email' => 'noreply@invoiceshelf.com', 'notify_invoice_viewed' => 'NO', 'notify_estimate_viewed' => 'NO', 'tax_per_item' => 'NO', @@ -292,7 +292,6 @@ public function deleteCompany($user) $this->customFieldValues()->delete(); } - if ($this->customFields()->exists()) { $this->customFields()->delete(); } diff --git a/app/Models/CompanySetting.php b/app/Models/CompanySetting.php index d1927c2d8..8b1105f9a 100644 --- a/app/Models/CompanySetting.php +++ b/app/Models/CompanySetting.php @@ -1,6 +1,6 @@ attributes['time_answer'] = date("H:i:s", strtotime($value)); + $this->attributes['time_answer'] = date('H:i:s', strtotime($value)); } } diff --git a/app/Models/CustomFieldValue.php b/app/Models/CustomFieldValue.php index b80cefb7f..e8509d8fa 100644 --- a/app/Models/CustomFieldValue.php +++ b/app/Models/CustomFieldValue.php @@ -1,6 +1,6 @@ attributes['time_answer'] = date("H:i:s", strtotime($value)); + $this->attributes['time_answer'] = date('H:i:s', strtotime($value)); } else { $this->attributes['time_answer'] = null; } diff --git a/app/Models/Customer.php b/app/Models/Customer.php index 8b6a5af6b..b333338ea 100644 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -1,13 +1,13 @@ getMedia('customer_avatar')->first(); if ($avatar) { - return asset($avatar->getUrl()); + return asset($avatar->getUrl()); } return 0; diff --git a/app/Models/EmailLog.php b/app/Models/EmailLog.php index d4f253b78..f1efa25e3 100644 --- a/app/Models/EmailLog.php +++ b/app/Models/EmailLog.php @@ -1,6 +1,6 @@ 'integer', 'discount' => 'float', 'discount_val' => 'integer', - 'exchange_rate' => 'float' + 'exchange_rate' => 'float', ]; public function getEstimatePdfUrlAttribute() @@ -68,7 +74,7 @@ public function emailLogs() public function items() { - return $this->hasMany('Crater\Models\EstimateItem'); + return $this->hasMany('InvoiceShelf\Models\EstimateItem'); } public function customer() @@ -78,12 +84,12 @@ public function customer() public function creator() { - return $this->belongsTo('Crater\Models\User', 'creator_id'); + return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); } public function company() { - return $this->belongsTo('Crater\Models\Company'); + return $this->belongsTo('InvoiceShelf\Models\Company'); } public function currency() @@ -227,7 +233,7 @@ public static function createEstimate($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($estimate); } @@ -263,7 +269,7 @@ public function updateEstimate($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($this); } @@ -289,12 +295,12 @@ public function updateEstimate($request) } return Estimate::with([ - 'items.taxes', - 'items.fields', - 'items.fields.customField', - 'customer', - 'taxes' - ]) + 'items.taxes', + 'items.fields', + 'items.fields.customField', + 'customer', + 'taxes', + ]) ->find($this->id); } @@ -314,7 +320,7 @@ public static function createItems($estimate, $request, $exchange_rate) if (array_key_exists('taxes', $estimateItem) && $estimateItem['taxes']) { foreach ($estimateItem['taxes'] as $tax) { - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { $tax['company_id'] = $request->header('company'); $item->taxes()->create($tax); } @@ -332,7 +338,7 @@ public static function createTaxes($estimate, $request, $exchange_rate) $estimateTaxes = $request->taxes; foreach ($estimateTaxes as $tax) { - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { $tax['company_id'] = $request->header('company'); $tax['exchange_rate'] = $exchange_rate; $tax['base_amount'] = $tax['amount'] * $exchange_rate; @@ -495,7 +501,7 @@ public static function estimateTemplates() foreach ($templates as $key => $template) { $templateName = Str::before(basename($template), '.blade.php'); $estimateTemplates[$key]['name'] = $templateName; - $estimateTemplates[$key]['path'] = vite_asset('/img/PDF/'.$templateName.'.png'); + $estimateTemplates[$key]['path'] = Vite::asset('resources/static/img/PDF/'.$templateName.'.png'); } return $estimateTemplates; diff --git a/app/Models/EstimateItem.php b/app/Models/EstimateItem.php index d38a2b625..ad1ffe197 100644 --- a/app/Models/EstimateItem.php +++ b/app/Models/EstimateItem.php @@ -1,18 +1,18 @@ 'float' + 'exchange_rate' => 'float', ]; public function currency() diff --git a/app/Models/ExchangeRateProvider.php b/app/Models/ExchangeRateProvider.php index d02ae51d0..fef6110cf 100644 --- a/app/Models/ExchangeRateProvider.php +++ b/app/Models/ExchangeRateProvider.php @@ -1,11 +1,11 @@ 'array', 'driver_config' => 'array', - 'active' => 'boolean' + 'active' => 'boolean', ]; public function company() @@ -78,28 +78,28 @@ public static function checkExchangeRateProviderStatus($request) { switch ($request['driver']) { case 'currency_freak': - $url = "https://api.currencyfreaks.com/latest?apikey=".$request['key']."&symbols=INR&base=USD"; + $url = 'https://api.currencyfreaks.com/latest?apikey='.$request['key'].'&symbols=INR&base=USD'; $response = Http::get($url)->json(); if (array_key_exists('success', $response)) { - if ($response["success"] == false) { - return respondJson($response["error"]["message"], $response["error"]["message"]); + if ($response['success'] == false) { + return respondJson($response['error']['message'], $response['error']['message']); } } return response()->json([ - 'exchangeRate' => array_values($response["rates"]), + 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_layer': - $url = "http://api.currencylayer.com/live?access_key=".$request['key']."&source=INR¤cies=USD"; + $url = 'http://api.currencylayer.com/live?access_key='.$request['key'].'&source=INR¤cies=USD'; $response = Http::get($url)->json(); if (array_key_exists('success', $response)) { - if ($response["success"] == false) { - return respondJson($response["error"]["info"], $response["error"]["info"]); + if ($response['success'] == false) { + return respondJson($response['error']['info'], $response['error']['info']); } } @@ -110,25 +110,25 @@ public static function checkExchangeRateProviderStatus($request) break; case 'open_exchange_rate': - $url = "https://openexchangerates.org/api/latest.json?app_id=".$request['key']."&base=INR&symbols=USD"; + $url = 'https://openexchangerates.org/api/latest.json?app_id='.$request['key'].'&base=INR&symbols=USD'; $response = Http::get($url)->json(); - if (array_key_exists("error", $response)) { - return respondJson($response['message'], $response["description"]); + if (array_key_exists('error', $response)) { + return respondJson($response['message'], $response['description']); } return response()->json([ - 'exchangeRate' => array_values($response["rates"]), + 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_converter': $url = self::getCurrencyConverterUrl($request['driver_config']); - $url = $url."/api/v7/convert?apiKey=".$request['key']; + $url = $url.'/api/v7/convert?apiKey='.$request['key']; - $query = "INR_USD"; - $url = $url."&q={$query}"."&compact=y"; + $query = 'INR_USD'; + $url = $url."&q={$query}".'&compact=y'; $response = Http::get($url)->json(); return response()->json([ @@ -143,17 +143,17 @@ public static function getCurrencyConverterUrl($data) { switch ($data['type']) { case 'PREMIUM': - return "https://api.currconv.com"; + return 'https://api.currconv.com'; break; case 'PREPAID': - return "https://prepaid.currconv.com"; + return 'https://prepaid.currconv.com'; break; case 'FREE': - return "https://free.currconv.com"; + return 'https://free.currconv.com'; break; diff --git a/app/Models/Expense.php b/app/Models/Expense.php index bd0aa1e35..87bbb1345 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -1,20 +1,20 @@ 'string', - 'exchange_rate' => 'float' + 'exchange_rate' => 'float', ]; public function category() @@ -61,7 +61,7 @@ public function currency() public function creator() { - return $this->belongsTo('Crater\Models\User', 'creator_id'); + return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); } public function getFormattedExpenseDateAttribute($value) @@ -85,7 +85,7 @@ public function getReceiptUrlAttribute($value) if ($media) { return [ 'url' => $media->getFullUrl(), - 'type' => $media->type + 'type' => $media->type, ]; } @@ -235,7 +235,7 @@ public static function createExpense($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$expense['currency_id'] !== $company_currency) { + if ((string) $expense['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($expense); } @@ -258,7 +258,7 @@ public function updateExpense($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($this); } diff --git a/app/Models/ExpenseCategory.php b/app/Models/ExpenseCategory.php index 71dca9bbf..6347b6751 100644 --- a/app/Models/ExpenseCategory.php +++ b/app/Models/ExpenseCategory.php @@ -1,6 +1,6 @@ put($root.'crater_temp.text', 'Check Credentials'); + \Storage::disk($prefix.$disk)->put($root.'invoiceshelf_temp.text', 'Check Credentials'); - if (\Storage::disk($prefix.$disk)->exists($root.'crater_temp.text')) { + if (\Storage::disk($prefix.$disk)->exists($root.'invoiceshelf_temp.text')) { $exists = true; - \Storage::disk($prefix.$disk)->delete($root.'crater_temp.text'); + \Storage::disk($prefix.$disk)->delete($root.'invoiceshelf_temp.text'); } } catch (\Exception $e) { $exists = false; diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 39cd31659..91ea77f14 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1,18 +1,19 @@ 'integer', 'discount' => 'float', 'discount_val' => 'integer', - 'exchange_rate' => 'float' + 'exchange_rate' => 'float', ]; protected $guarded = [ @@ -74,7 +80,7 @@ public function emailLogs() public function items() { - return $this->hasMany('Crater\Models\InvoiceItem'); + return $this->hasMany('InvoiceShelf\Models\InvoiceItem'); } public function taxes() @@ -339,7 +345,7 @@ public static function createInvoice($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($invoice); } @@ -356,7 +362,7 @@ public static function createInvoice($request) 'items.fields', 'items.fields.customField', 'customer', - 'taxes' + 'taxes', ]) ->find($invoice->id); @@ -395,13 +401,16 @@ public function updateInvoice($request) $data['base_due_amount'] = $data['due_amount'] * $data['exchange_rate']; $data['customer_sequence_number'] = $serial->nextCustomerSequenceNumber; - $this->changeInvoiceStatus($data['due_amount']); + $statusData = $this->getInvoiceStatusByAmount($data['due_amount']); + if (! empty($statusData)) { + $data = array_merge($data, $statusData); + } $this->update($data); $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($this); } @@ -431,7 +440,7 @@ public function updateInvoice($request) 'items.fields', 'items.fields.customField', 'customer', - 'taxes' + 'taxes', ]) ->find($this->id); @@ -456,7 +465,7 @@ public function preview($data) return [ 'type' => 'preview', - 'view' => new SendInvoiceMail($data) + 'view' => new SendInvoiceMail($data), ]; } @@ -503,7 +512,7 @@ public static function createItems($invoice, $invoiceItems) $tax['base_amount'] = $tax['amount'] * $exchange_rate; $tax['currency_id'] = $invoice->currency_id; - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { if (array_key_exists('recurring_invoice_id', $invoiceItem)) { unset($invoiceItem['recurring_invoice_id']); } @@ -529,7 +538,7 @@ public static function createTaxes($invoice, $taxes) $tax['base_amount'] = $tax['amount'] * $exchange_rate; $tax['currency_id'] = $invoice->currency_id; - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { if (array_key_exists('recurring_invoice_id', $tax)) { unset($tax['recurring_invoice_id']); } @@ -663,7 +672,7 @@ public static function invoiceTemplates() foreach ($templates as $key => $template) { $templateName = Str::before(basename($template), '.blade.php'); $invoiceTemplates[$key]['name'] = $templateName; - $invoiceTemplates[$key]['path'] = vite_asset('img/PDF/'.$templateName.'.png'); + $invoiceTemplates[$key]['path'] = Vite::asset('resources/static/img/PDF/'.$templateName.'.png'); } return $invoiceTemplates; @@ -685,27 +694,52 @@ public function subtractInvoicePayment($amount) $this->changeInvoiceStatus($this->due_amount); } - public function changeInvoiceStatus($amount) + /** + * Set the invoice status from amount. + * + * @return array + */ + public function getInvoiceStatusByAmount($amount) { if ($amount < 0) { - return [ - 'error' => 'invalid_amount', - ]; + return []; } if ($amount == 0) { - $this->status = Invoice::STATUS_COMPLETED; - $this->paid_status = Invoice::STATUS_PAID; - $this->overdue = false; + $data = [ + 'status' => Invoice::STATUS_COMPLETED, + 'paid_status' => Invoice::STATUS_PAID, + 'overdue' => false, + ]; } elseif ($amount == $this->total) { - $this->status = $this->getPreviousStatus(); - $this->paid_status = Invoice::STATUS_UNPAID; + $data = [ + 'status' => $this->getPreviousStatus(), + 'paid_status' => Invoice::STATUS_UNPAID, + ]; } else { - $this->status = $this->getPreviousStatus(); - $this->paid_status = Invoice::STATUS_PARTIALLY_PAID; + $data = [ + 'status' => $this->getPreviousStatus(), + 'paid_status' => Invoice::STATUS_PARTIALLY_PAID, + ]; } - $this->save(); + return $data; + } + + /** + * Changes the invoice status right away + * + * @return string[]|void + */ + public function changeInvoiceStatus($amount) + { + $status = $this->getInvoiceStatusByAmount($amount); + if (! empty($status)) { + foreach ($status as $key => $value) { + $this->setAttribute($key, $value); + } + $this->save(); + } } public static function deleteInvoices($ids) diff --git a/app/Models/InvoiceItem.php b/app/Models/InvoiceItem.php index 2489b6fcc..71341645c 100644 --- a/app/Models/InvoiceItem.php +++ b/app/Models/InvoiceItem.php @@ -1,20 +1,20 @@ belongsTo('Crater\Models\User', 'creator_id'); + return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); } public function currency() diff --git a/app/Models/Module.php b/app/Models/Module.php index 97977fbb7..179492a38 100644 --- a/app/Models/Module.php +++ b/app/Models/Module.php @@ -1,6 +1,6 @@ 'string', - 'exchange_rate' => 'float' + 'exchange_rate' => 'float', ]; protected static function booted() @@ -107,7 +111,7 @@ public function invoice() public function creator() { - return $this->belongsTo('Crater\Models\User', 'creator_id'); + return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); } public function currency() @@ -166,7 +170,7 @@ public static function createPayment($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$payment['currency_id'] !== $company_currency) { + if ((string) $payment['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($payment); } @@ -180,7 +184,7 @@ public static function createPayment($request) 'customer', 'invoice', 'paymentMethod', - 'fields' + 'fields', ])->find($payment->id); return $payment; @@ -218,7 +222,7 @@ public function updatePayment($request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($this); } @@ -245,7 +249,7 @@ public static function deletePayments($ids) if ($payment->invoice_id != null) { $invoice = Invoice::find($payment->invoice_id); - $invoice->due_amount = ((int)$invoice->due_amount + (int)$payment->amount); + $invoice->due_amount = ((int) $invoice->due_amount + (int) $payment->amount); if ($invoice->due_amount == $invoice->total) { $invoice->paid_status = Invoice::STATUS_UNPAID; @@ -435,7 +439,7 @@ public function getExtraFields() '{PAYMENT_DATE}' => $this->formattedPaymentDate, '{PAYMENT_MODE}' => $this->paymentMethod ? $this->paymentMethod->name : null, '{PAYMENT_NUMBER}' => $this->payment_number, - '{PAYMENT_AMOUNT}' => $this->reference_number, + '{PAYMENT_AMOUNT}' => format_money_pdf($this->amount, $this->customer->currency), ]; } diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php index 23723c8d4..aab51b30c 100644 --- a/app/Models/PaymentMethod.php +++ b/app/Models/PaymentMethod.php @@ -1,6 +1,6 @@ 'array', - 'use_test_env' => 'boolean' + 'use_test_env' => 'boolean', ]; public function setSettingsAttribute($value) diff --git a/app/Models/RecurringInvoice.php b/app/Models/RecurringInvoice.php index aa3ecabbc..33f10fd87 100644 --- a/app/Models/RecurringInvoice.php +++ b/app/Models/RecurringInvoice.php @@ -1,47 +1,51 @@ 'float', - 'send_automatically' => 'boolean' + 'send_automatically' => 'boolean', ]; public function getFormattedStartsAtAttribute() @@ -190,7 +194,7 @@ public static function createFromRequest(RecurringInvoiceRequest $request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$recurringInvoice['currency_id'] !== $company_currency) { + if ((string) $recurringInvoice['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($recurringInvoice); } @@ -215,7 +219,7 @@ public function updateFromRequest(RecurringInvoiceRequest $request) $company_currency = CompanySetting::getSetting('currency', $request->header('company')); - if ((string)$data['currency_id'] !== $company_currency) { + if ((string) $data['currency_id'] !== $company_currency) { ExchangeRateLog::addExchangeRateLog($this); } @@ -242,7 +246,7 @@ public static function createItems($recurringInvoice, $invoiceItems) if (array_key_exists('taxes', $invoiceItem) && $invoiceItem['taxes']) { foreach ($invoiceItem['taxes'] as $tax) { $tax['company_id'] = $recurringInvoice->company_id; - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { $item->taxes()->create($tax); } } @@ -255,7 +259,7 @@ public static function createTaxes($recurringInvoice, $taxes) foreach ($taxes as $tax) { $tax['company_id'] = $recurringInvoice->company_id; - if (gettype($tax['amount']) !== "NULL") { + if (gettype($tax['amount']) !== 'NULL') { $recurringInvoice->taxes()->create($tax); } } @@ -307,7 +311,7 @@ public function createInvoice() $days = CompanySetting::getSetting('invoice_due_date_days', $this->company_id); - if (! $days || $days == "null") { + if (! $days || $days == 'null') { $days = 7; } @@ -359,7 +363,7 @@ public function createInvoice() foreach ($this->fields as $data) { $customField[] = [ 'id' => $data->custom_field_id, - 'value' => $data->defaultAnswer + 'value' => $data->defaultAnswer, ]; } @@ -375,7 +379,7 @@ public function createInvoice() 'subject' => 'New Invoice', 'invoice' => $invoice->toArray(), 'customer' => $invoice->customer->toArray(), - 'company' => Company::find($invoice->company_id) + 'company' => Company::find($invoice->company_id), ]; $invoice->send($data); diff --git a/app/Models/Setting.php b/app/Models/Setting.php index d386923d4..188b595df 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -1,6 +1,6 @@ 'float', - 'compound_tax' => 'boolean' + 'compound_tax' => 'boolean', ]; public const TYPE_GENERAL = 'GENERAL'; + public const TYPE_MODULE = 'MODULE'; public function taxes() diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index 97a3faf71..3dc761d3a 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -1,6 +1,6 @@ email; $password = $request->password; - return (\Auth::attempt(['email' => $email, 'password' => $password], $remember)); + return \Auth::attempt(['email' => $email, 'password' => $password], $remember); } public function getFormattedCreatedAtAttribute($value) @@ -114,7 +114,7 @@ public function currency() public function creator() { - return $this->belongsTo('Crater\Models\User', 'creator_id'); + return $this->belongsTo('InvoiceShelf\Models\User', 'creator_id'); } public function companies() @@ -273,7 +273,7 @@ public function getAvatarAttribute() $avatar = $this->getMedia('admin_avatar')->first(); if ($avatar) { - return asset($avatar->getUrl()); + return asset($avatar->getUrl()); } return 0; diff --git a/app/Models/UserSetting.php b/app/Models/UserSetting.php index 81b9661ed..15a67732f 100644 --- a/app/Models/UserSetting.php +++ b/app/Models/UserSetting.php @@ -1,6 +1,6 @@ company->slug}/customer/reset/password/".$this->token); - return ( new MailMessage() ) + return (new MailMessage()) ->subject('Reset Password Notification') - ->line("Hello! You are receiving this email because we received a password reset request for your account.") + ->line('Hello! You are receiving this email because we received a password reset request for your account.') ->action('Reset Password', $link) - ->line("This password reset link will expire in ".config('auth.passwords.users.expire')." minutes") - ->line("If you did not request a password reset, no further action is required."); + ->line('This password reset link will expire in '.config('auth.passwords.users.expire').' minutes') + ->line('If you did not request a password reset, no further action is required.'); } /** diff --git a/app/Notifications/MailResetPasswordNotification.php b/app/Notifications/MailResetPasswordNotification.php index b9f145862..bf4553653 100644 --- a/app/Notifications/MailResetPasswordNotification.php +++ b/app/Notifications/MailResetPasswordNotification.php @@ -1,11 +1,10 @@ token); + $link = url('/reset-password/'.$this->token); - return ( new MailMessage() ) + return (new MailMessage()) ->subject('Reset Password Notification') - ->line("Hello! You are receiving this email because we received a password reset request for your account.") + ->line('Hello! You are receiving this email because we received a password reset request for your account.') ->action('Reset Password', $link) - ->line("This password reset link will expire in ".config('auth.passwords.users.expire')." minutes") - ->line("If you did not request a password reset, no further action is required."); + ->line('This password reset link will expire in '.config('auth.passwords.users.expire').' minutes') + ->line('If you did not request a password reset, no further action is required.'); } /** diff --git a/app/Policies/CompanyPolicy.php b/app/Policies/CompanyPolicy.php index 19f7d347c..1d8d3d320 100644 --- a/app/Policies/CompanyPolicy.php +++ b/app/Policies/CompanyPolicy.php @@ -1,10 +1,10 @@ loadJsonTranslationsFrom(resource_path('scripts/locales')); - if (\Storage::disk('local')->has('database_created') && Schema::hasTable('abilities')) { + if (InstallUtils::isDbCreated()) { $this->addMenus(); } } @@ -30,27 +31,27 @@ public function boot() */ public function register() { - // + BouncerModels::scope(new DefaultScope); } public function addMenus() { //main menu \Menu::make('main_menu', function ($menu) { - foreach (config('crater.main_menu') as $data) { + foreach (config('invoiceshelf.main_menu') as $data) { $this->generateMenu($menu, $data); } }); //setting menu \Menu::make('setting_menu', function ($menu) { - foreach (config('crater.setting_menu') as $data) { + foreach (config('invoiceshelf.setting_menu') as $data) { $this->generateMenu($menu, $data); } }); \Menu::make('customer_portal_menu', function ($menu) { - foreach (config('crater.customer_menu') as $data) { + foreach (config('invoiceshelf.customer_menu') as $data) { $this->generateMenu($menu, $data); } }); diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 61cd43057..b5e59d15d 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -1,24 +1,24 @@ \Crater\Policies\CustomerPolicy::class, - \Crater\Models\Invoice::class => \Crater\Policies\InvoicePolicy::class, - \Crater\Models\Estimate::class => \Crater\Policies\EstimatePolicy::class, - \Crater\Models\Payment::class => \Crater\Policies\PaymentPolicy::class, - \Crater\Models\Expense::class => \Crater\Policies\ExpensePolicy::class, - \Crater\Models\ExpenseCategory::class => \Crater\Policies\ExpenseCategoryPolicy::class, - \Crater\Models\PaymentMethod::class => \Crater\Policies\PaymentMethodPolicy::class, - \Crater\Models\TaxType::class => \Crater\Policies\TaxTypePolicy::class, - \Crater\Models\CustomField::class => \Crater\Policies\CustomFieldPolicy::class, - \Crater\Models\User::class => \Crater\Policies\UserPolicy::class, - \Crater\Models\Item::class => \Crater\Policies\ItemPolicy::class, - \Silber\Bouncer\Database\Role::class => \Crater\Policies\RolePolicy::class, - \Crater\Models\Unit::class => \Crater\Policies\UnitPolicy::class, - \Crater\Models\RecurringInvoice::class => \Crater\Policies\RecurringInvoicePolicy::class, - \Crater\Models\ExchangeRateProvider::class => \Crater\Policies\ExchangeRateProviderPolicy::class, + \InvoiceShelf\Models\Customer::class => \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, ]; /** diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php index b7fa5ce1d..03311fc2a 100644 --- a/app/Providers/BroadcastServiceProvider.php +++ b/app/Providers/BroadcastServiceProvider.php @@ -1,6 +1,6 @@ 'api.auth']); + Broadcast::routes(['middleware' => 'api.auth']); require base_path('routes/channels.php'); } } diff --git a/app/Providers/DropboxServiceProvider.php b/app/Providers/DropboxServiceProvider.php index c2a477acf..96fed754e 100644 --- a/app/Providers/DropboxServiceProvider.php +++ b/app/Providers/DropboxServiceProvider.php @@ -1,6 +1,6 @@ [ - Version110::class, - Version200::class, - Version201::class, - Version202::class, - Version210::class, - Version300::class, - Version310::class, - Version311::class, + ], Registered::class => [ SendEmailVerificationNotification::class, diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 76b5312bf..9c95749dc 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -1,6 +1,6 @@ has('database_created') && Schema::hasTable('settings')) { - View::share('login_page_logo', get_app_setting('login_page_logo')); - View::share('login_page_heading', get_app_setting('login_page_heading')); - View::share('login_page_description', get_app_setting('login_page_description')); - View::share('admin_page_title', get_app_setting('admin_page_title')); - View::share('copyright_text', get_app_setting('copyright_text')); - } + View::share('login_page_logo', get_app_setting('login_page_logo')); + View::share('login_page_heading', get_app_setting('login_page_heading')); + View::share('login_page_description', get_app_setting('login_page_description')); + View::share('admin_page_title', get_app_setting('admin_page_title')); + View::share('copyright_text', get_app_setting('copyright_text')); } } diff --git a/app/Rules/Backup/BackupDisk.php b/app/Rules/Backup/BackupDisk.php index 1e285ff1e..6a890abc0 100644 --- a/app/Rules/Backup/BackupDisk.php +++ b/app/Rules/Backup/BackupDisk.php @@ -1,6 +1,6 @@ attribute = $attribute; try { - $data = json_decode($value)->data; + $decoded = json_decode(trim($value)); + $name = ! empty($decoded->name) ? $decoded->name : ''; + $data = ! empty($decoded->data) ? $decoded->data : ''; } catch (\Exception $e) { return false; } + $extension = pathinfo($name, PATHINFO_EXTENSION); + if (! in_array($extension, $this->extensions)) { + return false; + } + $pattern = '/^data:\w+\/[\w\+]+;base64,[\w\+\=\/]+$/'; if (! preg_match($pattern, $data)) { diff --git a/app/Rules/RelationNotExist.php b/app/Rules/RelationNotExist.php index 57086d6bc..fd1006820 100644 --- a/app/Rules/RelationNotExist.php +++ b/app/Rules/RelationNotExist.php @@ -1,6 +1,6 @@ class = $class; $this->relation = $relation; diff --git a/app/Services/Module/Module.php b/app/Services/Module/Module.php index fa6747a45..c51a87edc 100644 --- a/app/Services/Module/Module.php +++ b/app/Services/Module/Module.php @@ -1,6 +1,6 @@ company; if (request()->has('format')) { - $format = request()->format; + $format = request()->get('format'); } else { $format = CompanySetting::getSetting( $settingKey, @@ -156,7 +151,7 @@ public function setNextCustomerSequenceNumber() public static function getPlaceholders(string $format) { - $regex = "/{{([A-Z_]{1,})(?::)?([a-zA-Z0-9_]{1,6}|.{1})?}}/"; + $regex = '/{{([A-Z_]{1,})(?::)?([a-zA-Z0-9_]{1,6}|.{1})?}}/'; preg_match_all($regex, $format, $placeholders); array_shift($placeholders); @@ -175,8 +170,8 @@ public static function getPlaceholders(string $format) if (in_array($name, self::VALID_PLACEHOLDERS)) { $validPlaceholders->push([ - "name" => $name, - "value" => $value + 'name' => $name, + 'value' => $value, ]); } } @@ -198,36 +193,36 @@ private function generateSerialNumber(string $format) $value = $placeholder['value']; switch ($name) { - case "SEQUENCE": - $value = $value ? $value : 6; - $serialNumber .= str_pad($this->nextSequenceNumber, $value, 0, STR_PAD_LEFT); - - break; - case "DATE_FORMAT": - $value = $value ? $value : 'Y'; - $serialNumber .= date($value); - - break; - case "RANDOM_SEQUENCE": - $value = $value ? $value : 6; - $serialNumber .= substr(bin2hex(random_bytes($value)), 0, $value); - - break; - case "CUSTOMER_SERIES": - if (isset($this->customer)) { - $serialNumber .= $this->customer->prefix ?? 'CST'; - } else { - $serialNumber .= 'CST'; - } - - break; - case "CUSTOMER_SEQUENCE": - $serialNumber .= str_pad($this->nextCustomerSequenceNumber, $value, 0, STR_PAD_LEFT); - - break; - default: - $serialNumber .= $value; - } + case 'SEQUENCE': + $value = $value ? $value : 6; + $serialNumber .= str_pad($this->nextSequenceNumber, $value, 0, STR_PAD_LEFT); + + break; + case 'DATE_FORMAT': + $value = $value ? $value : 'Y'; + $serialNumber .= date($value); + + break; + case 'RANDOM_SEQUENCE': + $value = $value ? $value : 6; + $serialNumber .= substr(bin2hex(random_bytes($value)), 0, $value); + + break; + case 'CUSTOMER_SERIES': + if (isset($this->customer)) { + $serialNumber .= $this->customer->prefix ?? 'CST'; + } else { + $serialNumber .= 'CST'; + } + + break; + case 'CUSTOMER_SEQUENCE': + $serialNumber .= str_pad($this->nextCustomerSequenceNumber, $value, 0, STR_PAD_LEFT); + + break; + default: + $serialNumber .= $value; + } } return $serialNumber; diff --git a/app/Space/DateFormatter.php b/app/Space/DateFormatter.php index a3c95bb2d..abfe301c8 100644 --- a/app/Space/DateFormatter.php +++ b/app/Space/DateFormatter.php @@ -1,6 +1,6 @@ "Y M d", - "moment_format" => "YYYY MMM DD", + 'carbon_format' => 'Y M d', + 'moment_format' => 'YYYY MMM DD', ], [ - "carbon_format" => "d M Y", - "moment_format" => "DD MMM YYYY", + 'carbon_format' => 'd M Y', + 'moment_format' => 'DD MMM YYYY', ], [ - "carbon_format" => "d/m/Y", - "moment_format" => "DD/MM/YYYY", + 'carbon_format' => 'd/m/Y', + 'moment_format' => 'DD/MM/YYYY', ], [ - "carbon_format" => "d.m.Y", - "moment_format" => "DD.MM.YYYY", + 'carbon_format' => 'd.m.Y', + 'moment_format' => 'DD.MM.YYYY', ], [ - "carbon_format" => "d-m-Y", - "moment_format" => "DD-MM-YYYY", + 'carbon_format' => 'd-m-Y', + 'moment_format' => 'DD-MM-YYYY', ], [ - "carbon_format" => "m/d/Y", - "moment_format" => "MM/DD/YYYY", + 'carbon_format' => 'm/d/Y', + 'moment_format' => 'MM/DD/YYYY', ], [ - "carbon_format" => "Y/m/d", - "moment_format" => " YYYY/MM/DD", + 'carbon_format' => 'Y/m/d', + 'moment_format' => ' YYYY/MM/DD', ], [ - "carbon_format" => "Y-m-d", - "moment_format" => "YYYY-MM-DD", + 'carbon_format' => 'Y-m-d', + 'moment_format' => 'YYYY-MM-DD', ], ]; @@ -47,9 +47,9 @@ public static function get_list() foreach (static::$formats as $format) { $new[] = [ - "display_date" => Carbon::now()->format($format['carbon_format']) , - "carbon_format_value" => $format['carbon_format'], - "moment_format_value" => $format['moment_format'], + 'display_date' => Carbon::now()->format($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 7ba57dcb8..8ae8200a1 100755 --- a/app/Space/EnvironmentManager.php +++ b/app/Space/EnvironmentManager.php @@ -1,14 +1,13 @@ envPath = base_path('.env'); } + /** + * Returns the .env contents + * + * @return false|string + */ + private function getEnvContents() + { + return file_get_contents($this->envPath); + } + + /** + * Updates .env file - inspired by Akaunting + * + * @return bool + */ + public function updateEnv(array $data) + { + if (empty($data) || ! is_array($data) || ! is_file($this->envPath)) { + return false; + } + + $env = $this->getEnvContents(); + + $env = explode($this->delimiter, $env); + + foreach ($data as $data_key => $data_value) { + $updated = false; + + foreach ($env as $env_key => $env_value) { + $entry = explode('=', $env_value, 2); + + // Check if new or old key + if ($entry[0] == $data_key) { + $env[$env_key] = $data_key.'='.$this->encode($data_value); + $updated = true; + } + } + + // Lets create if not available + if (! $updated) { + $env[] = $data_key.'='.$this->encode($data_value); + } + } + + $env = implode($this->delimiter, $env); + + file_put_contents(base_path('.env'), $env); + + return true; + } + + /** + * Encodes value for .env + * + * @return mixed|string + */ + private function encode($str) + { + + if ((strpos($str, ' ') !== false || preg_match('/'.preg_quote('^\'£$%^&*()}{@#~?><,@|-=-_+-¬', '/').'/', $str)) && ($str[0] != '"' || $str[strlen($str) - 1] != '"')) { + $str = '"'.$str.'"'; + } + + return $str; + + } + /** * Save the database content to the .env file. * - * @param DatabaseEnvironmentRequest $request * @return array */ public function saveDatabaseVariables(DatabaseEnvironmentRequest $request) { - $oldDatabaseData = - 'DB_CONNECTION='.config('database.default')."\n"; - $newDatabaseData = - 'DB_CONNECTION='.$request->database_connection."\n"; + $dbEnv = [ + 'APP_URL' => $request->get('app_url'), + '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')) { - if (env('DB_USERNAME') && env('DB_HOST')) { - $oldDatabaseData = $oldDatabaseData. - 'DB_HOST='.config('database.connections.'.config('database.default').'.host')."\n". - 'DB_PORT='.config('database.connections.'.config('database.default').'.port')."\n". - 'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n". - 'DB_USERNAME='.config('database.connections.'.config('database.default').'.username')."\n". - 'DB_PASSWORD="'.config('database.connections.'.config('database.default').'.password')."\"\n\n"; - } else { - $oldDatabaseData = $oldDatabaseData. - 'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n\n"; - } + $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'); - $newDatabaseData = $newDatabaseData. - 'DB_HOST='.$request->database_hostname."\n". - 'DB_PORT='.$request->database_port."\n". - 'DB_DATABASE='.$request->database_name."\n". - 'DB_USERNAME='.$request->database_username."\n". - 'DB_PASSWORD="'.$request->database_password."\"\n\n"; } else { - if (env('DB_USERNAME') && env('DB_HOST')) { - $oldDatabaseData = $oldDatabaseData. - 'DB_HOST='.config('database.connections.'.config('database.default').'.host')."\n". - 'DB_PORT='.config('database.connections.'.config('database.default').'.port')."\n". - 'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n". - 'DB_USERNAME='.config('database.connections.'.config('database.default').'.username')."\n". - 'DB_PASSWORD="'.config('database.connections.'.config('database.default').'.password')."\"\n\n"; - } else { - $oldDatabaseData = $oldDatabaseData. - 'DB_DATABASE='.config('database.connections.'.config('database.default').'.database')."\n\n"; - } - - $newDatabaseData = $newDatabaseData. - 'DB_DATABASE='.$request->database_name."\n\n"; + $dbEnv['DB_DATABASE'] = $request->get('database_name'); } try { - $conn = $this->checkDatabaseConnection($request); - - // $requirement = $this->checkVersionRequirements($request, $conn); - - // if ($requirement) { - // return [ - // 'error' => 'minimum_version_requirement', - // 'requirement' => $requirement, - // ]; - // } + $this->checkDatabaseConnection($request); if (\Schema::hasTable('users')) { return [ @@ -99,30 +137,7 @@ public function saveDatabaseVariables(DatabaseEnvironmentRequest $request) } try { - file_put_contents($this->envPath, str_replace( - $oldDatabaseData, - $newDatabaseData, - file_get_contents($this->envPath) - )); - - file_put_contents($this->envPath, str_replace( - 'APP_URL='.config('app.url'), - 'APP_URL='.$request->app_url, - file_get_contents($this->envPath) - )); - - file_put_contents($this->envPath, str_replace( - 'SANCTUM_STATEFUL_DOMAINS='.env('SANCTUM_STATEFUL_DOMAINS'), - 'SANCTUM_STATEFUL_DOMAINS='.$request->app_domain, - file_get_contents($this->envPath) - )); - - - file_put_contents($this->envPath, str_replace( - 'SESSION_DOMAIN='.config('session.domain'), - 'SESSION_DOMAIN='.explode(':', $request->app_domain)[0], - file_get_contents($this->envPath) - )); + $this->updateEnv($dbEnv); } catch (Exception $e) { return [ 'error' => 'database_variables_save_error', @@ -135,28 +150,27 @@ public function saveDatabaseVariables(DatabaseEnvironmentRequest $request) } /** + * Returns PDO object if all ok. * - * @param DatabaseEnvironmentRequest $request - * @return bool + * @return \Closure|\PDO */ private function checkDatabaseConnection(DatabaseEnvironmentRequest $request) { - $connection = $request->database_connection; + $connection = $request->get('database_connection'); - $settings = config("database.connections.$connection"); $settings = config("database.connections.$connection"); $connectionArray = array_merge($settings, [ 'driver' => $connection, - 'database' => $request->database_name, + 'database' => $request->get('database_name'), ]); if ($request->has('database_username') && $request->has('database_password')) { $connectionArray = array_merge($connectionArray, [ - 'username' => $request->database_username, - 'password' => $request->database_password, - 'host' => $request->database_hostname, - 'port' => $request->database_port, + 'username' => $request->get('database_username'), + 'password' => $request->get('database_password'), + 'host' => $request->get('database_hostname'), + 'port' => $request->get('database_port'), ]); } @@ -172,87 +186,18 @@ private function checkDatabaseConnection(DatabaseEnvironmentRequest $request) } /** + * Save the mail content to the .env file. * - * @param DatabaseEnvironmentRequest $request - * @return bool + * @return array */ - private function checkVersionRequirements(DatabaseEnvironmentRequest $request, $conn) - { - $connection = $request->database_connection; - - $checker = new RequirementsChecker(); - - $phpSupportInfo = $checker->checkPHPVersion( - config('crater.min_php_version') - ); - - if (! $phpSupportInfo['supported']) { - return $phpSupportInfo; - } - - $dbSupportInfo = []; - - switch ($connection) { - case 'mysql': - $dbSupportInfo = $checker->checkMysqlVersion($conn); - - break; - - case 'pgsql': - $conn = pg_connect("host={$request->database_hostname} port={$request->database_port} dbname={$request->database_name} user={$request->database_username} password={$request->database_password}"); - $dbSupportInfo = $checker->checkPgsqlVersion( - $conn, - config('crater.min_pgsql_version') - ); - - break; - - case 'sqlite': - $dbSupportInfo = $checker->checkSqliteVersion( - config('crater.min_sqlite_version') - ); - - break; - - } - - if (! $dbSupportInfo['supported']) { - return $dbSupportInfo; - } - - return false; - } - - /** - * Save the mail content to the .env file. - * - * @param Request $request - * @return array - */ public function saveMailVariables(MailEnvironmentRequest $request) { - $mailData = $this->getMailData($request); + $mailEnv = $this->getMailConfiguration($request); try { - file_put_contents($this->envPath, str_replace( - $mailData['old_mail_data'], - $mailData['new_mail_data'], - file_get_contents($this->envPath) - )); - - if ($mailData['extra_old_mail_data']) { - file_put_contents($this->envPath, str_replace( - $mailData['extra_old_mail_data'], - $mailData['extra_mail_data'], - file_get_contents($this->envPath) - )); - } else { - file_put_contents( - $this->envPath, - "\n".$mailData['extra_mail_data'], - FILE_APPEND - ); - } + + $this->updateEnv($mailEnv); + } catch (Exception $e) { return [ 'error' => 'mail_variables_save_error', @@ -264,193 +209,103 @@ public function saveMailVariables(MailEnvironmentRequest $request) ]; } - private function getMailData($request) + /** + * Returns the mail configuration + * + * @param MailEnvironmentRequest $request + * @return array + */ + private function getMailConfiguration($request) { - $mailFromCredential = ""; - $extraMailData = ""; - $extraOldMailData = ""; - $oldMailData = ""; - $newMailData = ""; - - if (env('MAIL_FROM_ADDRESS') !== null && env('MAIL_FROM_NAME') !== null) { - $mailFromCredential = - 'MAIL_FROM_ADDRESS='.config('mail.from.address')."\n". - 'MAIL_FROM_NAME="'.config('mail.from.name')."\"\n\n"; - } + $mailEnv = []; - switch ($request->mail_driver) { + $driver = $request->get('mail_driver'); + + switch ($driver) { case 'smtp': - $oldMailData = - 'MAIL_DRIVER='.config('mail.driver')."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - $mailFromCredential; - - $newMailData = - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.$request->mail_host."\n". - 'MAIL_PORT='.$request->mail_port."\n". - 'MAIL_USERNAME='.$request->mail_username."\n". - 'MAIL_PASSWORD='.$request->mail_password."\n". - 'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n". - 'MAIL_FROM_ADDRESS='.$request->from_mail."\n". - 'MAIL_FROM_NAME="'.$request->from_name."\"\n\n"; + $mailEnv = [ + 'MAIL_DRIVER' => $request->get('mail_driver'), + 'MAIL_HOST' => $request->get('mail_host'), + '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_FROM_ADDRESS' => $request->get('from_mail'), + 'MAIL_FROM_NAME' => $request->get('from_name'), + ]; break; case 'mailgun': - $oldMailData = - 'MAIL_DRIVER='.config('mail.driver')."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - $mailFromCredential; - - $newMailData = - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.$request->mail_host."\n". - 'MAIL_PORT='.$request->mail_port."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n". - 'MAIL_FROM_ADDRESS='.$request->from_mail."\n". - 'MAIL_FROM_NAME="'.$request->from_name."\"\n\n"; - - $extraMailData = - 'MAILGUN_DOMAIN='.$request->mail_mailgun_domain."\n". - 'MAILGUN_SECRET='.$request->mail_mailgun_secret."\n". - 'MAILGUN_ENDPOINT='.$request->mail_mailgun_endpoint."\n"; - - if (env('MAILGUN_DOMAIN') !== null && env('MAILGUN_SECRET') !== null && env('MAILGUN_ENDPOINT') !== null) { - $extraOldMailData = - 'MAILGUN_DOMAIN='.config('services.mailgun.domain')."\n". - 'MAILGUN_SECRET='.config('services.mailgun.secret')."\n". - 'MAILGUN_ENDPOINT='.config('services.mailgun.endpoint')."\n"; - } + + $mailEnv = [ + 'MAIL_DRIVER' => $request->get('mail_driver'), + 'MAIL_HOST' => $request->get('mail_host'), + 'MAIL_PORT' => $request->get('mail_port'), + 'MAIL_USERNAME' => config('mail.username'), + 'MAIL_PASSWORD' => config('mail.password'), + 'MAIL_ENCRYPTION' => $request->get('mail_encryption'), + 'MAIL_FROM_ADDRESS' => $request->get('from_mail'), + 'MAIL_FROM_NAME' => $request->get('from_name'), + 'MAILGUN_DOMAIN' => $request->get('mail_mailgun_domain'), + 'MAILGUN_SECRET' => $request->get('mail_mailgun_secret'), + 'MAILGUN_ENDPOINT' => $request->get('mail_mailgun_endpoint'), + ]; break; case 'ses': - $oldMailData = - 'MAIL_DRIVER='.config('mail.driver')."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - $mailFromCredential; - - $newMailData = - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.$request->mail_host."\n". - 'MAIL_PORT='.$request->mail_port."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n". - 'MAIL_FROM_ADDRESS='.$request->from_mail."\n". - 'MAIL_FROM_NAME="'.$request->from_name."\"\n\n"; - - $extraMailData = - 'SES_KEY='.$request->mail_ses_key."\n". - 'SES_SECRET='.$request->mail_ses_secret."\n"; - - if (env('SES_KEY') !== null && env('SES_SECRET') !== null) { - $extraOldMailData = - 'SES_KEY='.config('services.ses.key')."\n". - 'SES_SECRET='.config('services.ses.secret')."\n"; - } - break; - - case 'mail': - $oldMailData = - 'MAIL_DRIVER='.config('mail.driver')."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - $mailFromCredential; - - $newMailData = - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - 'MAIL_FROM_ADDRESS='.$request->from_mail."\n". - 'MAIL_FROM_NAME="'.$request->from_name."\"\n\n"; + $mailEnv = [ + 'MAIL_DRIVER' => $request->get('mail_driver'), + 'MAIL_HOST' => $request->get('mail_host'), + 'MAIL_PORT' => $request->get('mail_port'), + 'MAIL_USERNAME' => config('mail.username'), + 'MAIL_PASSWORD' => config('mail.password'), + 'MAIL_ENCRYPTION' => $request->get('mail_encryption'), + 'MAIL_FROM_ADDRESS' => $request->get('from_mail'), + 'MAIL_FROM_NAME' => $request->get('from_mail'), + 'SES_KEY' => $request->get('from_mail'), + 'SES_SECRET' => $request->get('from_name'), + ]; break; case 'sendmail': - $oldMailData = - 'MAIL_DRIVER='.config('mail.driver')."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - $mailFromCredential; - - $newMailData = - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.config('mail.host')."\n". - 'MAIL_PORT='.config('mail.port')."\n". - 'MAIL_USERNAME='.config('mail.username')."\n". - 'MAIL_PASSWORD='.config('mail.password')."\n". - 'MAIL_ENCRYPTION='.config('mail.encryption')."\n\n". - 'MAIL_FROM_ADDRESS='.$request->from_mail."\n". - 'MAIL_FROM_NAME="'.$request->from_name."\"\n\n"; + case 'mail': + + $mailEnv = [ + 'MAIL_DRIVER' => $request->get('mail_driver'), + 'MAIL_HOST' => config('mail.host'), + 'MAIL_PORT' => config('mail.port'), + 'MAIL_USERNAME' => config('mail.username'), + 'MAIL_PASSWORD' => config('mail.password'), + 'MAIL_ENCRYPTION' => config('mail.encryption'), + 'MAIL_FROM_ADDRESS' => $request->get('from_mail'), + 'MAIL_FROM_NAME' => $request->get('from_name'), + ]; break; + } - return [ - 'old_mail_data' => $oldMailData, - 'new_mail_data' => $newMailData, - 'extra_mail_data' => $extraMailData, - 'extra_old_mail_data' => $extraOldMailData, - ]; + return $mailEnv; } /** * Save the disk content to the .env file. * - * @param Request $request * @return array */ public function saveDiskVariables(DiskEnvironmentRequest $request) { - $diskData = $this->getDiskData($request); + $diskEnv = $this->getDiskConfiguration($request); try { - if (! $diskData['old_default_driver']) { - file_put_contents($this->envPath, $diskData['default_driver'], FILE_APPEND); - } else { - file_put_contents($this->envPath, str_replace( - $diskData['old_default_driver'], - $diskData['default_driver'], - file_get_contents($this->envPath) - )); - } - if (! $diskData['old_disk_data']) { - file_put_contents($this->envPath, $diskData['new_disk_data'], FILE_APPEND); - } else { - file_put_contents($this->envPath, str_replace( - $diskData['old_disk_data'], - $diskData['new_disk_data'], - file_get_contents($this->envPath) - )); - } + $this->updateEnv($diskEnv); + } catch (Exception $e) { return [ 'error' => 'disk_variables_save_error', @@ -462,122 +317,113 @@ public function saveDiskVariables(DiskEnvironmentRequest $request) ]; } - private function getDiskData($request) + /** + * Returns the disk configuration + * + * @return array + */ + private function getDiskConfiguration(DiskEnvironmentRequest $request) { - $oldDefaultDriver = ""; - $defaultDriver = ""; - $oldDiskData = ""; - $newDiskData = ""; - - if ($request->default_driver) { - if (env('FILESYSTEM_DRIVER') !== null) { - $defaultDriver = "\n".'FILESYSTEM_DRIVER='.$request->default_driver."\n"; - - $oldDefaultDriver = - "\n".'FILESYSTEM_DRIVER='.config('filesystems.default')."\n"; - } else { - $defaultDriver = - "\n".'FILESYSTEM_DRIVER='.$request->default_driver."\n"; - } + $diskEnv = []; + + $driver = $request->get('app_domain'); + + if ($driver) { + $diskEnv['FILESYSTEM_DRIVER'] = $driver; } - switch ($request->selected_driver) { + switch ($request->get('selected_driver')) { case 's3': - if (env('AWS_KEY') !== null) { - $oldDiskData = "\n". - 'AWS_KEY='.config('filesystems.disks.s3.key')."\n". - 'AWS_SECRET="'.config('filesystems.disks.s3.secret')."\"\n". - 'AWS_REGION='.config('filesystems.disks.s3.region')."\n". - 'AWS_BUCKET='.config('filesystems.disks.s3.bucket')."\n". - 'AWS_ROOT='.config('filesystems.disks.s3.root')."\n"; - } - $newDiskData = "\n". - 'AWS_KEY='.$request->aws_key."\n". - 'AWS_SECRET="'.$request->aws_secret."\"\n". - 'AWS_REGION='.$request->aws_region."\n". - 'AWS_BUCKET='.$request->aws_bucket."\n". - 'AWS_ROOT='.$request->aws_root."\n"; + $diskEnv = [ + 'AWS_KEY' => $request->get('aws_key'), + 'AWS_SECRET' => $request->get('aws_secret'), + 'AWS_REGION' => $request->get('aws_region'), + 'AWS_BUCKET' => $request->get('aws_bucket'), + 'AWS_ROOT' => $request->get('aws_root'), + ]; break; case 'doSpaces': - if (env('DO_SPACES_KEY') !== null) { - $oldDiskData = "\n". - 'DO_SPACES_KEY='.config('filesystems.disks.doSpaces.key')."\n". - 'DO_SPACES_SECRET="'.config('filesystems.disks.doSpaces.secret')."\"\n". - 'DO_SPACES_REGION='.config('filesystems.disks.doSpaces.region')."\n". - 'DO_SPACES_BUCKET='.config('filesystems.disks.doSpaces.bucket')."\n". - 'DO_SPACES_ENDPOINT='.config('filesystems.disks.doSpaces.endpoint')."\n"; - 'DO_SPACES_ROOT='.config('filesystems.disks.doSpaces.root')."\n"; - } - $newDiskData = "\n". - 'DO_SPACES_KEY='.$request->do_spaces_key."\n". - 'DO_SPACES_SECRET="'.$request->do_spaces_secret."\"\n". - 'DO_SPACES_REGION='.$request->do_spaces_region."\n". - 'DO_SPACES_BUCKET='.$request->do_spaces_bucket."\n". - 'DO_SPACES_ENDPOINT='.$request->do_spaces_endpoint."\n"; - 'DO_SPACES_ROOT='.$request->do_spaces_root."\n\n"; + $diskEnv = [ + 'DO_SPACES_KEY' => $request->get('do_spaces_key'), + 'DO_SPACES_SECRET' => $request->get('do_spaces_secret'), + 'DO_SPACES_REGION' => $request->get('do_spaces_region'), + 'DO_SPACES_BUCKET' => $request->get('do_spaces_bucket'), + 'DO_SPACES_ENDPOINT' => $request->get('do_spaces_endpoint'), + 'DO_SPACES_ROOT' => $request->get('do_spaces_root'), + ]; break; case 'dropbox': - if (env('DROPBOX_TOKEN') !== null) { - $oldDiskData = "\n". - 'DROPBOX_TOKEN='.config('filesystems.disks.dropbox.token')."\n". - 'DROPBOX_KEY='.config('filesystems.disks.dropbox.key')."\n". - 'DROPBOX_SECRET="'.config('filesystems.disks.dropbox.secret')."\"\n". - 'DROPBOX_APP='.config('filesystems.disks.dropbox.app')."\n". - 'DROPBOX_ROOT='.config('filesystems.disks.dropbox.root')."\n"; - } - $newDiskData = "\n". - 'DROPBOX_TOKEN='.$request->dropbox_token."\n". - 'DROPBOX_KEY='.$request->dropbox_key."\n". - 'DROPBOX_SECRET="'.$request->dropbox_secret."\"\n". - 'DROPBOX_APP='.$request->dropbox_app."\n". - 'DROPBOX_ROOT='.$request->dropbox_root."\n"; + $diskEnv = [ + 'DROPBOX_TOKEN' => $request->get('dropbox_token'), + 'DROPBOX_KEY' => $request->get('dropbox_key'), + 'DROPBOX_SECRET' => $request->get('dropbox_secret'), + 'DROPBOX_APP' => $request->get('dropbox_app'), + 'DROPBOX_ROOT' => $request->get('dropbox_root'), + ]; break; } - return [ - 'old_disk_data' => $oldDiskData, - 'new_disk_data' => $newDiskData, - 'default_driver' => $defaultDriver, - 'old_default_driver' => $oldDefaultDriver, - ]; + return $diskEnv; } /** - * Save sanctum statful domain to the .env file. + * Save sanctum stateful domain to the .env file. * - * @param DomainEnvironmentRequest $request * @return array */ public function saveDomainVariables(DomainEnvironmentRequest $request) { try { - file_put_contents($this->envPath, str_replace( - 'SANCTUM_STATEFUL_DOMAINS='.env('SANCTUM_STATEFUL_DOMAINS'), - 'SANCTUM_STATEFUL_DOMAINS='.$request->app_domain, - file_get_contents($this->envPath) - )); - - file_put_contents($this->envPath, str_replace( - 'SESSION_DOMAIN='.config('session.domain'), - 'SESSION_DOMAIN='.explode(':', $request->app_domain)[0], - file_get_contents($this->envPath) - )); + $this->updateEnv([ + 'SANCTUM_STATEFUL_DOMAINS' => $request->get('app_domain'), + 'SESSION_DOMAIN' => explode(':', $request->get('app_domain'))[0], + ]); } catch (Exception $e) { return [ - 'error' => 'domain_verification_failed' + 'error' => 'domain_verification_failed', ]; } return [ - 'success' => 'domain_variable_save_successfully' + 'success' => 'domain_variable_save_successfully', ]; } + + /** + * Order the env contents + * + * @return void + */ + public function reoderEnv() + { + $contents = $this->getEnvContents(); + $contents = explode($this->delimiter, $contents); + if (empty($contents)) { + return; + } + natsort($contents); + + $formatted = ''; + $previous = ''; + foreach ($contents as $current) { + $parts_line = explode('_', $current); + $parts_last = explode('_', $previous); + if ($parts_line[0] != $parts_last[0]) { + $formatted .= $this->delimiter; + } + $formatted .= $current.$this->delimiter; + $previous = $current; + + } + + file_put_contents($this->envPath, trim($formatted)); + } } diff --git a/app/Space/FilePermissionChecker.php b/app/Space/FilePermissionChecker.php index e8d30ce6b..6c48dc7ed 100644 --- a/app/Space/FilePermissionChecker.php +++ b/app/Space/FilePermissionChecker.php @@ -1,6 +1,6 @@ has('database_created'); + } catch (FilesystemException $e) { + Log::error('Unable to verify db marker: '.$e->getMessage()); + } + + return false; + } + + /** + * Creates the database marker + * + * @return bool + */ + public static function createDbMarker() + { + try { + return \Storage::disk('local')->put('database_created', time()); + } catch (\Exception $e) { + Log::error('Unable to create db marker: '.$e->getMessage()); + } + + return false; + } + + /** + * Deletes the database marker + * + * @return bool + */ + public static function deleteDbMarker() + { + try { + return \Storage::disk('local')->delete('database_created'); + } catch (\Exception $e) { + Log::error('Unable to delete db marker: '.$e->getMessage()); + } + + return false; + } +} diff --git a/app/Space/ModuleInstaller.php b/app/Space/ModuleInstaller.php index d0d9968cd..a019caa46 100644 --- a/app/Space/ModuleInstaller.php +++ b/app/Space/ModuleInstaller.php @@ -1,15 +1,15 @@ 100, 'track_redirects' => true], $token); if ($response && ($response->getStatusCode() == 401)) { - return (object)['success' => false, 'error' => 'invalid_token']; + return (object) ['success' => false, 'error' => 'invalid_token']; } if ($response && ($response->getStatusCode() == 200)) { @@ -137,7 +137,7 @@ public static function download($module, $version) return [ 'success' => true, - 'path' => $zip_file_path + 'path' => $zip_file_path, ]; } @@ -215,7 +215,7 @@ public static function complete($module, $version) return true; } - public static function checkToken(String $token) + public static function checkToken(string $token) { $url = 'api/marketplace/ping'; $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true], $token); diff --git a/app/Space/RequirementsChecker.php b/app/Space/RequirementsChecker.php index 48d808f40..71a8865a2 100755 --- a/app/Space/RequirementsChecker.php +++ b/app/Space/RequirementsChecker.php @@ -1,6 +1,6 @@ getPhpVersionInfo(); @@ -129,7 +128,7 @@ public function checkMysqlVersion($conn) $isMariaDb = Str::contains($version_info, 'MariaDB'); - $minVersionMysql = $isMariaDb ? config('crater.min_mariadb_version') : config('crater.min_mysql_version'); + $minVersionMysql = $isMariaDb ? config('invoiceshelf.min_mariadb_version') : config('invoiceshelf.min_mysql_version'); $currentMysqlVersion = $this->getMysqlVersionInfo($conn); @@ -167,7 +166,7 @@ private static function getMysqlVersionInfo($pdo) * * @return array */ - public function checkSqliteVersion(string $minSqliteVersion = null) + public function checkSqliteVersion(?string $minSqliteVersion = null) { $minVersionSqlite = $minSqliteVersion; $currentSqliteVersion = $this->getSqliteVersionInfo(); @@ -203,7 +202,7 @@ private static function getSqliteVersionInfo() * * @return array */ - public function checkPgsqlVersion($conn, string $minPgsqlVersion = null) + public function checkPgsqlVersion($conn, ?string $minPgsqlVersion = null) { $minVersionPgsql = $minPgsqlVersion; $currentPgsqlVersion = $this->getPgsqlVersionInfo($conn); diff --git a/app/Space/SiteApi.php b/app/Space/SiteApi.php index e10a4e99e..badb5df91 100644 --- a/app/Space/SiteApi.php +++ b/app/Space/SiteApi.php @@ -1,23 +1,23 @@ false, 'base_uri' => config('crater.base_url').'/']); + $client = new Client(['verify' => false, 'base_uri' => config('invoiceshelf.base_url').'/']); $headers['headers'] = [ 'Accept' => 'application/json', 'Referer' => url('/'), - 'crater' => Setting::getSetting('version'), 'Authorization' => "Bearer {$token}", + 'invoiceshelf' => Setting::getSetting('version'), ]; $data['http_errors'] = false; diff --git a/app/Space/TimeZones.php b/app/Space/TimeZones.php index d83a5b9a3..901030318 100644 --- a/app/Space/TimeZones.php +++ b/app/Space/TimeZones.php @@ -1,6 +1,6 @@ 100, 'track_redirects' => true]); @@ -30,14 +26,13 @@ public static function checkForUpdate($installed_version) $data = json_decode($data); - if ($data->success && $data->version && property_exists($data->version, 'extensions')) { - $extensions = $data->version->extensions; - $extensionData = []; - foreach (json_decode($extensions) as $extension) { - $extensionData[$extension] = phpversion($extension) ? true : false; + if ($data->success && $data->release && property_exists($data->release, 'extensions')) { + $extensions = []; + foreach ($data->release->extensions as $extension) { + $extensions[$extension] = phpversion($extension) !== false; } - $extensionData['php'.'('.$data->version->minimum_php_version.')'] = version_compare(phpversion(), $data->version->minimum_php_version, ">="); - $data->version->extensions = $extensionData; + $extensions['php'.'('.$data->release->min_php_version.')'] = version_compare(phpversion(), $data->release->min_php_version, '>='); + $data->release->extensions = $extensions; } return $data; @@ -48,12 +43,7 @@ public static function download($new_version, $is_cmd = 0) $data = null; $path = null; - if (env('APP_ENV') === 'development') { - $url = 'downloads/file/'.$new_version.'?type=update&is_dev=1&is_cmd='.$is_cmd; - } else { - $url = 'downloads/file/'.$new_version.'?type=update&is_cmd='.$is_cmd; - } - + $url = 'releases/download/'.$new_version.'.zip'; $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]); // Exception @@ -118,7 +108,7 @@ public static function unzip($zip_file_path) public static function copyFiles($temp_extract_dir) { - if (! File::copyDirectory($temp_extract_dir.'/Crater', base_path())) { + if (! File::copyDirectory($temp_extract_dir.'/InvoiceShelf', base_path())) { return false; } diff --git a/app/Space/helpers.php b/app/Space/helpers.php index 8e14fe0ad..4e05deb4e 100644 --- a/app/Space/helpers.php +++ b/app/Space/helpers.php @@ -1,86 +1,87 @@ has('database_created')) { - return CompanySetting::getSetting($key, $company_id); + if (! InstallUtils::isDbCreated()) { + return null; } + + return CompanySetting::getSetting($key, $company_id); } /** * Get app setting * - * @param $company_id + * @param $company_id * @return string */ function get_app_setting($key) { - if (\Storage::disk('local')->has('database_created')) { - return Setting::getSetting($key); + if (! InstallUtils::isDbCreated()) { + return null; } + + return Setting::getSetting($key); } /** * Get page title * - * @param $company_id * @return string */ function get_page_title($company_id) { - $routeName = Route::currentRouteName(); - - $pageTitle = null; - $defaultPageTitle = 'Crater - Self Hosted Invoicing Platform'; + if (! InstallUtils::isDbCreated()) { + return null; + } - if (\Storage::disk('local')->has('database_created')) { - if ($routeName === 'customer.dashboard') { - $pageTitle = CompanySetting::getSetting('customer_portal_page_title', $company_id); + $routeName = Route::currentRouteName(); - return $pageTitle ? $pageTitle : $defaultPageTitle; - } + $defaultPageTitle = 'InvoiceShelf - Self Hosted Invoicing Platform'; - $pageTitle = Setting::getSetting('admin_page_title'); + if ($routeName === 'customer.dashboard') { + $pageTitle = CompanySetting::getSetting('customer_portal_page_title', $company_id); return $pageTitle ? $pageTitle : $defaultPageTitle; } + + $pageTitle = Setting::getSetting('admin_page_title'); + + return $pageTitle ? $pageTitle : $defaultPageTitle; } /** * Set Active Path * - * @param $path - * @param string $active + * @param string $active * @return string */ function set_active($path, $active = 'active') { - return call_user_func_array('Request::is', (array)$path) ? $active : ''; + return call_user_func_array('Request::is', (array) $path) ? $active : ''; } /** - * @param $path * @return mixed */ function is_url($path) { - return call_user_func_array('Request::is', (array)$path); + return call_user_func_array('Request::is', (array) $path); } /** - * @param string $type * @return string */ function getCustomFieldValueKey(string $type) @@ -122,7 +123,6 @@ function getCustomFieldValueKey(string $type) } /** - * @param $money * @return formated_money */ function format_money_pdf($money, $currency = null) @@ -151,7 +151,7 @@ function format_money_pdf($money, $currency = null) } /** - * @param $string + * @param $string * @return string */ function clean_slug($model, $title, $id = 0) @@ -191,6 +191,6 @@ function respondJson($error, $message) { return response()->json([ 'error' => $error, - 'message' => $message + 'message' => $message, ], 422); } diff --git a/app/Traits/ExchangeRateProvidersTrait.php b/app/Traits/ExchangeRateProvidersTrait.php index bd493d758..8d03e29d0 100644 --- a/app/Traits/ExchangeRateProvidersTrait.php +++ b/app/Traits/ExchangeRateProvidersTrait.php @@ -1,6 +1,6 @@ json(); if (array_key_exists('success', $response)) { - if ($response["success"] == false) { - return respondJson($response["error"]["message"], $response["error"]["message"]); + if ($response['success'] == false) { + return respondJson($response['error']['message'], $response['error']['message']); } } return response()->json([ - 'exchangeRate' => array_values($response["rates"]), + 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_layer': - $url = "http://api.currencylayer.com/live?access_key=".$filter['key']."&source={$baseCurrencyCode}¤cies={$currencyCode}"; + $url = 'http://api.currencylayer.com/live?access_key='.$filter['key']."&source={$baseCurrencyCode}¤cies={$currencyCode}"; $response = Http::get($url)->json(); if (array_key_exists('success', $response)) { - if ($response["success"] == false) { - return respondJson($response["error"]["info"], $response["error"]["info"]); + if ($response['success'] == false) { + return respondJson($response['error']['info'], $response['error']['info']); } } @@ -44,25 +44,25 @@ public function getExchangeRate($filter, $baseCurrencyCode, $currencyCode) break; case 'open_exchange_rate': - $url = "https://openexchangerates.org/api/latest.json?app_id=".$filter['key']."&base={$baseCurrencyCode}&symbols={$currencyCode}"; + $url = 'https://openexchangerates.org/api/latest.json?app_id='.$filter['key']."&base={$baseCurrencyCode}&symbols={$currencyCode}"; $response = Http::get($url)->json(); - if (array_key_exists("error", $response)) { - return respondJson($response["message"], $response["description"]); + if (array_key_exists('error', $response)) { + return respondJson($response['message'], $response['description']); } return response()->json([ - 'exchangeRate' => array_values($response["rates"]), + 'exchangeRate' => array_values($response['rates']), ], 200); break; case 'currency_converter': $url = $this->getCurrencyConverterUrl($filter['driver_config']); - $url = $url."/api/v7/convert?apiKey=".$filter['key']; + $url = $url.'/api/v7/convert?apiKey='.$filter['key']; $query = "{$baseCurrencyCode}_{$currencyCode}"; - $url = $url."&q={$query}"."&compact=y"; + $url = $url."&q={$query}".'&compact=y'; $response = Http::get($url)->json(); return response()->json([ @@ -77,17 +77,17 @@ public function getCurrencyConverterUrl($data) { switch ($data['type']) { case 'PREMIUM': - return "https://api.currconv.com"; + return 'https://api.currconv.com'; break; case 'PREPAID': - return "https://prepaid.currconv.com"; + return 'https://prepaid.currconv.com'; break; case 'FREE': - return "https://free.currconv.com"; + return 'https://free.currconv.com'; break; @@ -108,7 +108,7 @@ public function getSupportedCurrencies($request) switch ($request->driver) { case 'currency_freak': - $url = "https://api.currencyfreaks.com/currency-symbols"; + $url = 'https://api.currencyfreaks.com/currency-symbols'; $response = Http::get($url)->json(); $checkKey = $this->getUrl($request); @@ -127,7 +127,7 @@ public function getSupportedCurrencies($request) break; case 'currency_layer': - $url = "http://api.currencylayer.com/list?access_key=".$request->key; + $url = 'http://api.currencylayer.com/list?access_key='.$request->key; $response = Http::get($url)->json(); if ($response == null) { @@ -143,7 +143,7 @@ public function getSupportedCurrencies($request) break; case 'open_exchange_rate': - $url = "https://openexchangerates.org/api/currencies.json"; + $url = 'https://openexchangerates.org/api/currencies.json'; $response = Http::get($url)->json(); $checkKey = $this->getUrl($request); @@ -182,28 +182,28 @@ public function getUrl($request) { switch ($request->driver) { case 'currency_freak': - $url = "https://api.currencyfreaks.com/latest?apikey=".$request->key."&symbols=INR&base=USD"; + $url = 'https://api.currencyfreaks.com/latest?apikey='.$request->key.'&symbols=INR&base=USD'; return Http::get($url)->json(); break; case 'currency_layer': - $url = "http://api.currencylayer.com/live?access_key=".$request->key."&source=INR¤cies=USD"; + $url = 'http://api.currencylayer.com/live?access_key='.$request->key.'&source=INR¤cies=USD'; return Http::get($url)->json(); break; case 'open_exchange_rate': - $url = "https://openexchangerates.org/api/latest.json?app_id=".$request->key."&base=INR&symbols=USD"; + $url = 'https://openexchangerates.org/api/latest.json?app_id='.$request->key.'&base=INR&symbols=USD'; return Http::get($url)->json(); break; case 'currency_converter': - $url = $this->getCurrencyConverterUrl($request)."/api/v7/currencies?apiKey=".$request->key; + $url = $this->getCurrencyConverterUrl($request).'/api/v7/currencies?apiKey='.$request->key; return Http::get($url)->json(); diff --git a/app/Traits/GeneratesMenuTrait.php b/app/Traits/GeneratesMenuTrait.php index b3c4f1d60..5c04daf5f 100644 --- a/app/Traits/GeneratesMenuTrait.php +++ b/app/Traits/GeneratesMenuTrait.php @@ -1,16 +1,19 @@ items->toArray() as $data) { + $menu = \Menu::get($key); + $items = $menu ? $menu->items->toArray() : []; + + foreach ($items as $data) { if ($user->checkAccess($data)) { - $menu[] = [ + $new_items[] = [ 'title' => $data->title, 'link' => $data->link->path['url'], 'icon' => $data->data['icon'], @@ -20,6 +23,6 @@ public function generateMenu($key, $user) } } - return $menu; + return $new_items; } } diff --git a/app/Traits/GeneratesPdfTrait.php b/app/Traits/GeneratesPdfTrait.php index 6d26829c3..c377b54b8 100644 --- a/app/Traits/GeneratesPdfTrait.php +++ b/app/Traits/GeneratesPdfTrait.php @@ -1,12 +1,12 @@ company_id); + $locale = CompanySetting::getSetting('language', $this->company_id); App::setLocale($locale); @@ -68,13 +68,13 @@ public function getGeneratedPDF($collection_name) public function generatePDF($collection_name, $file_name, $deleteExistingFile = false) { - $save_pdf_to_disk = CompanySetting::getSetting('save_pdf_to_disk', $this->company_id); + $save_pdf_to_disk = CompanySetting::getSetting('save_pdf_to_disk', $this->company_id); if ($save_pdf_to_disk == 'NO') { return 0; } - $locale = CompanySetting::getSetting('language', $this->company_id); + $locale = CompanySetting::getSetting('language', $this->company_id); App::setLocale($locale); @@ -175,9 +175,9 @@ public function getFormattedString($format) $str = preg_replace("/<[^\/>]*>([\s]?)*<\/[^>]*>/", '', $str); - $str = str_replace("

", "", $str); + $str = str_replace('

', '', $str); - $str = str_replace("

", "
", $str); + $str = str_replace('

', '
', $str); return $str; } diff --git a/app/Traits/HasCustomFieldsTrait.php b/app/Traits/HasCustomFieldsTrait.php index d24d21ddd..56145d6d7 100644 --- a/app/Traits/HasCustomFieldsTrait.php +++ b/app/Traits/HasCustomFieldsTrait.php @@ -1,14 +1,14 @@ morphMany('Crater\Models\CustomFieldValue', 'custom_field_valuable'); + return $this->morphMany('InvoiceShelf\Models\CustomFieldValue', 'custom_field_valuable'); } protected static function booted() @@ -24,7 +24,7 @@ public function addCustomFields($customFields) { foreach ($customFields as $field) { if (! is_array($field)) { - $field = (array)$field; + $field = (array) $field; } $customField = CustomField::find($field['id']); @@ -43,7 +43,7 @@ public function updateCustomFields($customFields) { foreach ($customFields as $field) { if (! is_array($field)) { - $field = (array)$field; + $field = (array) $field; } $customField = CustomField::find($field['id']); diff --git a/bootstrap/app.php b/bootstrap/app.php index fe20b6904..cf96fb625 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -28,17 +28,17 @@ $app->singleton( Illuminate\Contracts\Http\Kernel::class, - Crater\Http\Kernel::class + InvoiceShelf\Http\Kernel::class ); $app->singleton( Illuminate\Contracts\Console\Kernel::class, - Crater\Console\Kernel::class + InvoiceShelf\Console\Kernel::class ); $app->singleton( Illuminate\Contracts\Debug\ExceptionHandler::class, - Crater\Exceptions\Handler::class + InvoiceShelf\Exceptions\Handler::class ); /* diff --git a/composer.json b/composer.json index e8dbec79c..655d36874 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { - "name": "crater-invoice/crater", - "description": "Free & Open Source Invoice App for Individuals & Small Businesses. https://craterapp.com", + "name": "invoiceshelf/invoiceshelf", + "description": "Free & Open Source Invoice App for Individuals & Small Businesses. https://invoiceshelf.com", "keywords": [ "framework", "laravel" @@ -8,49 +8,45 @@ "license": "MIT", "type": "project", "require": { - "php": "^7.4 || ^8.0", - "aws/aws-sdk-php": "^3.142", - "barryvdh/laravel-dompdf": "^0.9.0", - "crater-invoice/modules": "^1.0.0", - "doctrine/dbal": "^2.10", - "dragonmantank/cron-expression": "^3.1", - "fideloper/proxy": "^4.0", - "fruitcake/laravel-cors": "^1.0", - "guzzlehttp/guzzle": "^7.0.1", - "innocenzi/laravel-vite": "^0.1.1", - "intervention/image": "^2.3", - "jasonmccreary/laravel-test-assertions": "^2.0", - "laravel/framework": "^8.0", - "laravel/helpers": "^1.1", - "laravel/sanctum": "^2.6", - "laravel/tinker": "^2.0", - "laravel/ui": "^3.0", + "php": "^8.1", + "guzzlehttp/guzzle": "^7.2", + "laravel/framework": "^10.10", + "laravel/sanctum": "^3.3", + "laravel/tinker": "^2.8", + "laravel/helpers": "^1.5", + "laravel/ui": "^4.4", + "ext-json": "*", + "aws/aws-sdk-php": "^3.297", + "barryvdh/laravel-dompdf": "^v2.0", + "invoiceshelf/modules": "^1.0.0", + "dragonmantank/cron-expression": "^3.3", + "jasonmccreary/laravel-test-assertions": "^2.3", "lavary/laravel-menu": "^1.8", - "league/flysystem-aws-s3-v3": "^1.0", - "predis/predis": "^1.1", - "silber/bouncer": "v1.0.0-rc.10", - "spatie/flysystem-dropbox": "^1.2", - "spatie/laravel-backup": "^6.11", - "spatie/laravel-medialibrary": "^8.7", - "vinkla/hashids": "^9.0" + "league/flysystem-aws-s3-v3": "^3.23", + "predis/predis": "^2.2", + "silber/bouncer": "v1.0.1", + "spatie/flysystem-dropbox": "^3.0", + "spatie/laravel-backup": "^8.5", + "spatie/laravel-medialibrary": "^10.15", + "vinkla/hashids": "^11.0" }, "require-dev": { - "barryvdh/laravel-ide-helper": "^2.6", - "beyondcode/laravel-dump-server": "^1.0", - "facade/ignition": "^2.3.6", - "friendsofphp/php-cs-fixer": "^3.8", "fakerphp/faker": "^1.9.1", - "mockery/mockery": "^1.3.1", - "nunomaduro/collision": "^5.0", - "pestphp/pest": "^1.0", - "pestphp/pest-plugin-faker": "^1.0", - "pestphp/pest-plugin-laravel": "^1.0", - "pestphp/pest-plugin-parallel": "^0.2.1", - "phpunit/phpunit": "^9.3" + "laravel/pint": "^1.0", + "laravel/sail": "^1.18", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^7.0", + "phpunit/phpunit": "^10.1", + "spatie/laravel-ignition": "^2.0", + "barryvdh/laravel-ide-helper": "^2.13", + "beyondcode/laravel-dump-server": "^1.9", + "pestphp/pest": "^2.33", + "pestphp/pest-plugin-faker": "^2.0", + "pestphp/pest-plugin-laravel": "^2.2" }, "autoload": { "psr-4": { - "Crater\\": "app/", + "InvoiceShelf\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/", "Modules\\": "Modules/" @@ -64,7 +60,7 @@ "Tests\\": "tests/" } }, - "minimum-stability": "dev", + "minimum-stability": "stable", "prefer-stable": true, "scripts": { "post-autoload-dump": [ diff --git a/composer.lock b/composer.lock index a398fdacb..d5ec27111 100644 --- a/composer.lock +++ b/composer.lock @@ -4,83 +4,31 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9e3c5088770d95d7d258550fe2c0f07d", + "content-hash": "a38bb7b429a7be4927fd59b8896f4d26", "packages": [ - { - "name": "asm89/stack-cors", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/b9c31def6a83f84b4d4a40d35996d375755f0e08", - "reference": "b9c31def6a83f84b4d4a40d35996d375755f0e08", - "shasum": "" - }, - "require": { - "php": ">=5.5.9", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8.10", - "squizlabs/php_codesniffer": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "Asm89\\Stack\\": "src/Asm89/Stack/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander", - "email": "iam.asm89@gmail.com" - } - ], - "description": "Cross-origin resource sharing library and stack middleware", - "homepage": "https://github.com/asm89/stack-cors", - "keywords": [ - "cors", - "stack" - ], - "support": { - "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/1.3.0" - }, - "time": "2019-12-24T22:41:47+00:00" - }, { "name": "aws/aws-crt-php", - "version": "v1.0.2", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "3942776a8c99209908ee0b287746263725685732" + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/3942776a8c99209908ee0b287746263725685732", - "reference": "3942776a8c99209908ee0b287746263725685732", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2", + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2", "shasum": "" }, "require": { "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.8.35|^5.4.3" + "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." }, "type": "library", "autoload": { @@ -99,7 +47,7 @@ } ], "description": "AWS Common Runtime for PHP", - "homepage": "http://aws.amazon.com/sdkforphp", + "homepage": "https://github.com/awslabs/aws-crt-php", "keywords": [ "amazon", "aws", @@ -108,39 +56,42 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.2" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4" }, - "time": "2021-09-03T22:57:30+00:00" + "time": "2023-11-08T00:42:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.225.1", + "version": "3.299.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "b795c9c14997dac771f66d1f6cbadb62c742373a" + "reference": "a0f87b8e8bfb9afd0ffd702fcda556b465eee457" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/b795c9c14997dac771f66d1f6cbadb62c742373a", - "reference": "b795c9c14997dac771f66d1f6cbadb62c742373a", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a0f87b8e8bfb9afd0ffd702fcda556b465eee457", + "reference": "a0f87b8e8bfb9afd0ffd702fcda556b465eee457", "shasum": "" }, "require": { - "aws/aws-crt-php": "^1.0.2", + "aws/aws-crt-php": "^1.2.3", "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^5.3.3 || ^6.2.1 || ^7.0", - "guzzlehttp/promises": "^1.4.0", - "guzzlehttp/psr7": "^1.7.0 || ^2.1.1", + "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", + "guzzlehttp/promises": "^1.4.0 || ^2.0", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "mtdowling/jmespath.php": "^2.6", - "php": ">=5.5" + "php": ">=7.2.5", + "psr/http-message": "^1.0 || ^2.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", "aws/aws-php-sns-message-validator": "~1.0", "behat/behat": "~3.0", + "composer/composer": "^1.10.22", + "dms/phpunit-arraysubset-asserts": "^0.4.0", "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", @@ -148,10 +99,11 @@ "ext-sockets": "*", "nette/neon": "^2.3", "paragonie/random_compat": ">= 2", - "phpunit/phpunit": "^4.8.35 || ^5.6.3", + "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", "psr/cache": "^1.0", "psr/simple-cache": "^1.0", - "sebastian/comparator": "^1.2.3" + "sebastian/comparator": "^1.2.3 || ^4.0", + "yoast/phpunit-polyfills": "^1.0" }, "suggest": { "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", @@ -199,40 +151,47 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.225.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.299.1" }, - "time": "2022-06-09T18:19:43+00:00" + "time": "2024-02-16T19:08:34+00:00" }, { "name": "barryvdh/laravel-dompdf", - "version": "v0.9.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-dompdf.git", - "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b" + "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/5b99e1f94157d74e450f4c97e8444fcaffa2144b", - "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b", + "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6", + "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6", "shasum": "" }, "require": { - "dompdf/dompdf": "^1", - "illuminate/support": "^5.5|^6|^7|^8", - "php": "^7.1 || ^8.0" + "dompdf/dompdf": "^2.0.1", + "illuminate/support": "^6|^7|^8|^9|^10", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "nunomaduro/larastan": "^1|^2", + "orchestra/testbench": "^4|^5|^6|^7|^8", + "phpro/grumphp": "^1", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.9-dev" + "dev-master": "2.0-dev" }, "laravel": { "providers": [ "Barryvdh\\DomPDF\\ServiceProvider" ], "aliases": { - "PDF": "Barryvdh\\DomPDF\\Facade" + "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf", + "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf" } } }, @@ -259,38 +218,41 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-dompdf/issues", - "source": "https://github.com/barryvdh/laravel-dompdf/tree/v0.9.0" + "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.1" }, "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, { "url": "https://github.com/barryvdh", "type": "github" } ], - "time": "2020-12-27T12:05:53+00:00" + "time": "2023-01-12T15:12:49+00:00" }, { "name": "brick/math", - "version": "0.9.3", + "version": "0.11.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", + "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", "shasum": "" }, "require": { - "ext-json": "*", - "php": "^7.1 || ^8.0" + "php": "^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.9.2" + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "5.0.0" }, "type": "library", "autoload": { @@ -315,99 +277,97 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.3" + "source": "https://github.com/brick/math/tree/0.11.0" }, "funding": [ { "url": "https://github.com/BenMorel", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" } ], - "time": "2021-08-15T20:50:18+00:00" + "time": "2023-01-15T23:15:59+00:00" }, { - "name": "crater-invoice/modules", - "version": "1.0.0", + "name": "carbonphp/carbon-doctrine-types", + "version": "2.1.0", "source": { "type": "git", - "url": "https://github.com/crater-invoice/modules.git", - "reference": "996f80cb279416ef7da5a32f6e119ff9ce703591" + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/crater-invoice/modules/zipball/996f80cb279416ef7da5a32f6e119ff9ce703591", - "reference": "996f80cb279416ef7da5a32f6e119ff9ce703591", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", "shasum": "" }, "require": { - "ext-json": "*", - "php": ">=7.3" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<3.7.0 || >=4.0.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16", - "laravel/framework": "^8.0", - "mockery/mockery": "~1.0", - "orchestra/testbench": "^6.2", - "phpstan/phpstan": "^0.12.14", - "phpunit/phpunit": "^8.5", - "spatie/phpunit-snapshot-assertions": "^2.1.0|^4.2" + "doctrine/dbal": "^3.7.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" }, "type": "library", - "extra": { - "laravel": { - "providers": [ - "Nwidart\\Modules\\LaravelModulesServiceProvider" - ], - "aliases": { - "Module": "Nwidart\\Modules\\Facades\\Module" - } - }, - "branch-alias": { - "dev-master": "8.0-dev" - } - }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { - "Nwidart\\Modules\\": "src" + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Crater Module Management Package", + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", "keywords": [ - "crater", - "laravel", - "module", - "modules", - "rad" + "carbon", + "date", + "datetime", + "doctrine", + "time" ], "support": { - "issues": "https://github.com/crater-invoice/modules/issues", - "source": "https://github.com/crater-invoice/modules/tree/1.0.0" + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" }, - "time": "2021-12-21T14:18:56+00:00" + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2023-12-11T17:09:12+00:00" }, { "name": "dflydev/dot-access-data", - "version": "v3.0.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "0992cc19268b259a39e86f296da5f0677841f42c" + "reference": "f41715465d65213d644d3141a6a93081be5d3549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c", - "reference": "0992cc19268b259a39e86f296da5f0677841f42c", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", "shasum": "" }, "require": { @@ -418,7 +378,7 @@ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", "scrutinizer/ocular": "1.6.0", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.14" + "vimeo/psalm": "^4.0.0" }, "type": "library", "extra": { @@ -467,42 +427,39 @@ ], "support": { "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1" + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" }, - "time": "2021-08-13T13:06:58+00:00" + "time": "2022-10-27T11:44:00+00:00" }, { - "name": "doctrine/cache", - "version": "2.2.0", + "name": "doctrine/inflector", + "version": "2.0.9", "source": { "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + "url": "https://github.com/doctrine/inflector.git", + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", "shasum": "" }, "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" + "php": "^7.2 || ^8.0" }, "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" + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -531,22 +488,23 @@ "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", + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", + "inflection", + "inflector", + "lowercase", + "manipulation", "php", - "redis", - "xcache" + "plural", + "singular", + "strings", + "uppercase", + "words" ], "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.0" + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.9" }, "funding": [ { @@ -558,54 +516,40 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", "type": "tidelift" } ], - "time": "2022-05-20T20:07:39+00:00" + "time": "2024-01-15T18:05:13+00:00" }, { - "name": "doctrine/dbal", - "version": "2.13.9", + "name": "doctrine/lexer", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", - "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { - "doctrine/cache": "^1.0|^2.0", - "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.1 || ^8" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.4.6", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", - "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.6.2", - "symfony/cache": "^4.4", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.22.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" }, - "bin": [ - "bin/doctrine-dbal" - ], "type": "library", "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -622,40 +566,22 @@ "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": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlanywhere", - "sqlite", - "sqlserver", - "sqlsrv" + "annotations", + "docblock", + "lexer", + "parser", + "php" ], "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.9" + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -667,88 +593,105 @@ "type": "patreon" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", "type": "tidelift" } ], - "time": "2022-05-02T20:28:55+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { - "name": "doctrine/deprecations", - "version": "v1.0.0", + "name": "dompdf/dompdf", + "version": "v2.0.4", "source": { "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + "url": "https://github.com/dompdf/dompdf.git", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f", + "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f", "shasum": "" }, "require": { - "php": "^7.1|^8.0" + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1" ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.0.0" + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v2.0.4" }, - "time": "2022-05-02T15:47:09+00:00" + "time": "2023-12-12T20:19:39+00:00" }, { - "name": "doctrine/event-manager", - "version": "1.1.1", + "name": "dragonmantank/cron-expression", + "version": "v3.3.3", "source": { "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" }, - "conflict": { - "doctrine/common": "<2.9@dev" + "replace": { + "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Cron\\": "src/Cron/" } }, "notification-url": "https://packagist.org/downloads/", @@ -757,88 +700,63 @@ ], "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" + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" } ], - "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", + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" + "cron", + "schedule" ], "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" }, "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" + "url": "https://github.com/dragonmantank", + "type": "github" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2023-08-10T19:36:49+00:00" }, { - "name": "doctrine/inflector", - "version": "2.0.4", + "name": "egulias/email-validator", + "version": "4.0.2", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "doctrine/coding-standard": "^8.2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.10" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + "Egulias\\EmailValidator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -847,91 +765,62 @@ ], "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": "Eduardo Gulias Davis" } ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" ], "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.4" + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "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%2Finflector", - "type": "tidelift" + "url": "https://github.com/egulias", + "type": "github" } ], - "time": "2021-10-22T20:16:43+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.4.1", + "name": "fruitcake/php-cors", + "version": "v1.3.0", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" }, "require-dev": { - "doctrine/coding-standard": "^9", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "Fruitcake\\Cors\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -940,64 +829,64 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", "keywords": [ - "constructor", - "instantiate" + "cors", + "laravel", + "symfony" ], "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", + "url": "https://fruitcake.nl", "type": "custom" }, { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" + "url": "https://github.com/barryvdh", + "type": "github" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2023-10-12T05:21:21+00:00" }, { - "name": "doctrine/lexer", - "version": "1.2.3", + "name": "graham-campbell/guzzle-factory", + "version": "v7.0.1", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "url": "https://github.com/GrahamCampbell/Guzzle-Factory.git", + "reference": "134f6ca38ad0c948ed7c22552a286bb56b5a5b35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/GrahamCampbell/Guzzle-Factory/zipball/134f6ca38ad0c948ed7c22552a286bb56b5a5b35", + "reference": "134f6ca38ad0c948ed7c22552a286bb56b5a5b35", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "guzzlehttp/guzzle": "^7.8.1", + "guzzlehttp/psr7": "^2.6.2", + "php": "^7.4.15 || ^8.0.2" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "graham-campbell/analyzer": "^4.1", + "phpunit/phpunit": "^9.6.14 || ^10.5.1" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "GrahamCampbell\\GuzzleFactory\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1006,147 +895,131 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "description": "Provides A Simple Guzzle Factory With Good Defaults", "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" + "Graham Campbell", + "GrahamCampbell", + "Guzzle", + "Guzzle Factory", + "Guzzle-Factory", + "http" ], "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "issues": "https://github.com/GrahamCampbell/Guzzle-Factory/issues", + "source": "https://github.com/GrahamCampbell/Guzzle-Factory/tree/v7.0.1" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" + "url": "https://github.com/GrahamCampbell", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/guzzle-factory", "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2023-12-03T20:50:24+00:00" }, { - "name": "dompdf/dompdf", - "version": "v1.2.2", + "name": "graham-campbell/manager", + "version": "v5.1.0", "source": { "type": "git", - "url": "https://github.com/dompdf/dompdf.git", - "reference": "5031045d9640b38cfc14aac9667470df09c9e090" + "url": "https://github.com/GrahamCampbell/Laravel-Manager.git", + "reference": "5c9e1e4b8f9ef5fc904545c617b83efa46d1bd09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5031045d9640b38cfc14aac9667470df09c9e090", - "reference": "5031045d9640b38cfc14aac9667470df09c9e090", + "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Manager/zipball/5c9e1e4b8f9ef5fc904545c617b83efa46d1bd09", + "reference": "5c9e1e4b8f9ef5fc904545c617b83efa46d1bd09", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "phenx/php-font-lib": "^0.5.4", - "phenx/php-svg-lib": "^0.3.3 || ^0.4.0", - "php": "^7.1 || ^8.0" + "illuminate/contracts": "^8.75 || ^9.0 || ^10.0 || ^11.0", + "illuminate/support": "^8.75 || ^9.0 || ^10.0 || ^11.0", + "php": "^7.4.15 || ^8.0.2" }, "require-dev": { - "ext-json": "*", - "ext-zip": "*", - "mockery/mockery": "^1.3", - "phpunit/phpunit": "^7.5 || ^8 || ^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "suggest": { - "ext-gd": "Needed to process images", - "ext-gmagick": "Improves image processing performance", - "ext-imagick": "Improves image processing performance", - "ext-zlib": "Needed for pdf stream compression" + "graham-campbell/analyzer": "^4.1", + "graham-campbell/testbench-core": "^4.1", + "mockery/mockery": "^1.6.6", + "phpunit/phpunit": "^9.6.15 || ^10.5.1" }, "type": "library", "autoload": { "psr-4": { - "Dompdf\\": "src/" - }, - "classmap": [ - "lib/" - ] + "GrahamCampbell\\Manager\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - }, - { - "name": "Brian Sweeney", - "email": "eclecticgeek@gmail.com" - }, - { - "name": "Gabriel Bull", - "email": "me@gabrielbull.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", - "homepage": "https://github.com/dompdf/dompdf", - "support": { - "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v1.2.2" - }, - "time": "2022-04-27T13:50:54+00:00" - }, + "description": "Manager Provides Some Manager Functionality For Laravel", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Laravel Manager", + "Laravel-Manager", + "connector", + "framework", + "interface", + "laravel", + "manager" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Laravel-Manager/issues", + "source": "https://github.com/GrahamCampbell/Laravel-Manager/tree/v5.1.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/manager", + "type": "tidelift" + } + ], + "time": "2023-12-03T23:16:15+00:00" + }, { - "name": "dragonmantank/cron-expression", - "version": "v3.3.1", + "name": "graham-campbell/result-type", + "version": "v1.1.2", "source": { "type": "git", - "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa" + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862", + "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862", "shasum": "" }, "require": { - "php": "^7.2|^8.0", - "webmozart/assert": "^1.0" - }, - "replace": { - "mtdowling/cron-expression": "^1.0" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2" }, "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, "type": "library", "autoload": { "psr-4": { - "Cron\\": "src/Cron/" + "GrahamCampbell\\ResultType\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1155,64 +1028,86 @@ ], "authors": [ { - "name": "Chris Tankersley", - "email": "chris@ctankersley.com", - "homepage": "https://github.com/dragonmantank" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "description": "An Implementation Of The Result Type", "keywords": [ - "cron", - "schedule" + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" ], "support": { - "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1" + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2" }, "funding": [ { - "url": "https://github.com/dragonmantank", + "url": "https://github.com/GrahamCampbell", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" } ], - "time": "2022-01-18T15:43:28+00:00" + "time": "2023-11-12T22:16:48+00:00" }, { - "name": "egulias/email-validator", - "version": "2.1.25", + "name": "guzzlehttp/guzzle", + "version": "7.8.1", "source": { "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { + "files": [ + "src/functions_include.php" + ], "psr-4": { - "Egulias\\EmailValidator\\": "src" + "GuzzleHttp\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1221,117 +1116,104 @@ ], "authors": [ { - "name": "Eduardo Gulias Davis" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", + "description": "Guzzle is a PHP HTTP client library", "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" ], "support": { - "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { - "url": "https://github.com/egulias", + "url": "https://github.com/GrahamCampbell", "type": "github" - } - ], - "time": "2020-12-29T14:50:06+00:00" - }, - { - "name": "facade/ignition-contracts", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition-contracts.git", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v2.15.8", - "phpunit/phpunit": "^9.3.11", - "vimeo/psalm": "^3.17.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Facade\\IgnitionContracts\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + }, { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://flareapp.io", - "role": "Developer" + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" } ], - "description": "Solution contracts for Ignition", - "homepage": "https://github.com/facade/ignition-contracts", - "keywords": [ - "contracts", - "flare", - "ignition" - ], - "support": { - "issues": "https://github.com/facade/ignition-contracts/issues", - "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" - }, - "time": "2020-10-16T08:27:54+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { - "name": "fideloper/proxy", - "version": "4.4.1", + "name": "guzzlehttp/promises", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0" + "url": "https://github.com/guzzle/promises.git", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0", - "php": ">=5.4.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.0" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { - "Fideloper\\Proxy\\": "src/" + "GuzzleHttp\\Promise\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1340,65 +1222,92 @@ ], "authors": [ { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], - "description": "Set trusted proxies for Laravel", + "description": "Guzzle promises library", "keywords": [ - "load balancing", - "proxy", - "trusted proxy" + "promise" ], "support": { - "issues": "https://github.com/fideloper/TrustedProxy/issues", - "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.1" + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, - "time": "2020-10-22T13:48:01+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:19:20+00:00" }, { - "name": "fruitcake/laravel-cors", - "version": "v1.0.6", + "name": "guzzlehttp/psr7", + "version": "2.6.2", "source": { "type": "git", - "url": "https://github.com/fruitcake/laravel-cors.git", - "reference": "1d127dbec313e2e227d65e0c483765d8d7559bf6" + "url": "https://github.com/guzzle/psr7.git", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/1d127dbec313e2e227d65e0c483765d8d7559bf6", - "reference": "1d127dbec313e2e227d65e0c483765d8d7559bf6", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { - "asm89/stack-cors": "^1.3", - "illuminate/contracts": "^5.5|^6.0|^7.0|^8.0", - "illuminate/support": "^5.5|^6.0|^7.0|^8.0", - "php": ">=7", - "symfony/http-foundation": "^3.3|^4.0|^5.0", - "symfony/http-kernel": "^3.3|^4.0|^5.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" }, "require-dev": { - "laravel/framework": "^5.5|^6.0|^7.0|^8.0", - "orchestra/testbench": "^3.5|^4.0|^5.0|^6.0", - "phpro/grumphp": "^0.16|^0.17", - "phpunit/phpunit": "^6.0|^7.0|^8.0", - "squizlabs/php_codesniffer": "^3.5" + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Fruitcake\\Cors\\CorsServiceProvider" - ] + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { - "Fruitcake\\Cors\\": "src/" + "GuzzleHttp\\Psr7\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1407,60 +1316,105 @@ ], "authors": [ { - "name": "Fruitcake", - "homepage": "https://fruitcake.nl" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], - "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ - "api", - "cors", - "crossdomain", - "laravel" + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" ], "support": { - "issues": "https://github.com/fruitcake/laravel-cors/issues", - "source": "https://github.com/fruitcake/laravel-cors/tree/1.0" + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { - "url": "https://github.com/barryvdh", + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" } ], - "time": "2020-04-28T08:47:37+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { - "name": "graham-campbell/guzzle-factory", - "version": "v5.1.0", + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Guzzle-Factory.git", - "reference": "d9168bbceeb33bd15eb7dee50325a3ff6bc1e8a3" + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Guzzle-Factory/zipball/d9168bbceeb33bd15eb7dee50325a3ff6bc1e8a3", - "reference": "d9168bbceeb33bd15eb7dee50325a3ff6bc1e8a3", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^7.4.3", - "guzzlehttp/psr7": "^2.2.1", - "php": "^7.4.15 || ^8.0.2" + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "graham-campbell/analyzer": "^3.1", - "phpunit/phpunit": "^9.5" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { "psr-4": { - "GrahamCampbell\\GuzzleFactory\\": "src/" + "GuzzleHttp\\UriTemplate\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1472,20 +1426,31 @@ "name": "Graham Campbell", "email": "hello@gjcampbell.co.uk", "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" } ], - "description": "Provides A Simple Guzzle Factory With Good Defaults", + "description": "A polyfill class for uri_template of PHP", "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Guzzle", - "Guzzle Factory", - "Guzzle-Factory", - "http" + "guzzlehttp", + "uri-template" ], "support": { - "issues": "https://github.com/GrahamCampbell/Guzzle-Factory/issues", - "source": "https://github.com/GrahamCampbell/Guzzle-Factory/tree/v5.1.0" + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" }, "funding": [ { @@ -1493,107 +1458,101 @@ "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/guzzle-factory", + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", "type": "tidelift" } ], - "time": "2022-05-30T20:32:48+00:00" + "time": "2023-12-03T19:50:20+00:00" }, { - "name": "graham-campbell/manager", - "version": "v4.7.0", + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Laravel-Manager.git", - "reference": "b4cafa6491b9c92ecf7ce17521580050a27b8308" + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Manager/zipball/b4cafa6491b9c92ecf7ce17521580050a27b8308", - "reference": "b4cafa6491b9c92ecf7ce17521580050a27b8308", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", "shasum": "" }, "require": { - "illuminate/contracts": "^5.5 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/support": "^5.5 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "php": "^7.1.3 || ^8.0" + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" }, "require-dev": { - "graham-campbell/analyzer": "^2.4 || ^3.0", - "graham-campbell/testbench-core": "^3.4", - "mockery/mockery": "^1.3.1", - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.7" + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" }, "type": "library", - "autoload": { - "psr-4": { - "GrahamCampbell\\Manager\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" } }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - } + "BSD-3-Clause" ], - "description": "Manager Provides Some Manager Functionality For Laravel", + "description": "This is the PHP port of Hamcrest Matchers", "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Laravel Manager", - "Laravel-Manager", - "connector", - "framework", - "interface", - "laravel", - "manager" + "test" ], "support": { - "issues": "https://github.com/GrahamCampbell/Laravel-Manager/issues", - "source": "https://github.com/GrahamCampbell/Laravel-Manager/tree/v4.7.0" + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/manager", - "type": "tidelift" - } - ], - "time": "2022-01-24T01:59:19+00:00" + "time": "2020-07-09T08:09:16+00:00" }, { - "name": "graham-campbell/result-type", - "version": "v1.0.4", + "name": "hashids/hashids", + "version": "5.0.2", "source": { "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "0690bde05318336c7221785f2a932467f98b64ca" + "url": "https://github.com/vinkla/hashids.git", + "reference": "197171016b77ddf14e259e186559152eb3f8cf33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/0690bde05318336c7221785f2a932467f98b64ca", - "reference": "0690bde05318336c7221785f2a932467f98b64ca", + "url": "https://api.github.com/repos/vinkla/hashids/zipball/197171016b77ddf14e259e186559152eb3f8cf33", + "reference": "197171016b77ddf14e259e186559152eb3f8cf33", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "phpoption/phpoption": "^1.8" + "ext-mbstring": "*", + "php": "^8.1" }, "require-dev": { - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-bcmath": "Required to use BC Math arbitrary precision mathematics (*).", + "ext-gmp": "Required to use GNU multiple precision mathematics (*)." }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" + "Hashids\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1602,84 +1561,78 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Ivan Akimov", + "email": "ivan@barreleye.com" + }, + { + "name": "Vincent Klaiber", + "email": "hello@doubledip.se" } ], - "description": "An Implementation Of The Result Type", + "description": "Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers", + "homepage": "https://hashids.org/php", "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" + "bitly", + "decode", + "encode", + "hash", + "hashid", + "hashids", + "ids", + "obfuscate", + "youtube" ], "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.4" + "issues": "https://github.com/vinkla/hashids/issues", + "source": "https://github.com/vinkla/hashids/tree/5.0.2" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", - "type": "tidelift" - } - ], - "time": "2021-11-21T21:41:47+00:00" + "time": "2023-02-23T15:00:54+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "7.4.4", + "name": "intervention/image", + "version": "2.7.2", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8" + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/e3ff079b22820c2029d4c2a87796b6a0b8716ad8", - "reference": "e3ff079b22820c2029d4c2a87796b6a0b8716ad8", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", "shasum": "" }, "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.8.3 || ^2.1", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1 || ^2.0 || ^3.0" + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" }, "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" + "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": "7.4-dev" + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { - "GuzzleHttp\\": "src/" + "Intervention\\Image\\": "src/Intervention/Image" } }, "notification-url": "https://packagist.org/downloads/", @@ -1688,198 +1641,335 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" } ], - "description": "Guzzle is a PHP HTTP client library", + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" ], "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.4" + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", - "type": "github" + "url": "https://paypal.me/interventionio", + "type": "custom" }, { - "url": "https://github.com/Nyholm", + "url": "https://github.com/Intervention", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" } ], - "time": "2022-06-09T21:39:15+00:00" + "time": "2022-05-21T17:30:32+00:00" }, { - "name": "guzzlehttp/promises", - "version": "1.5.1", + "name": "invoiceshelf/modules", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + "url": "https://github.com/InvoiceShelf/modules.git", + "reference": "996f80cb279416ef7da5a32f6e119ff9ce703591" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "url": "https://api.github.com/repos/InvoiceShelf/modules/zipball/996f80cb279416ef7da5a32f6e119ff9ce703591", + "reference": "996f80cb279416ef7da5a32f6e119ff9ce703591", "shasum": "" }, "require": { - "php": ">=5.5" + "ext-json": "*", + "php": ">=7.3" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "friendsofphp/php-cs-fixer": "^2.16", + "laravel/framework": "^8.0", + "mockery/mockery": "~1.0", + "orchestra/testbench": "^6.2", + "phpstan/phpstan": "^0.12.14", + "phpunit/phpunit": "^8.5", + "spatie/phpunit-snapshot-assertions": "^2.1.0|^4.2" }, "type": "library", "extra": { + "laravel": { + "providers": [ + "Nwidart\\Modules\\LaravelModulesServiceProvider" + ], + "aliases": { + "Module": "Nwidart\\Modules\\Facades\\Module" + } + }, "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "8.0-dev" } }, "autoload": { "files": [ - "src/functions_include.php" + "src/helpers.php" ], "psr-4": { - "GuzzleHttp\\Promise\\": "src/" + "Nwidart\\Modules\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - } - ], - "description": "Guzzle promises library", + "description": "Crater Module Management Package", "keywords": [ - "promise" + "crater", + "laravel", + "module", + "modules", + "rad" ], "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.1" + "source": "https://github.com/InvoiceShelf/modules/tree/1.0.0" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, + "time": "2021-12-21T14:18:56+00:00" + }, + { + "name": "jasonmccreary/laravel-test-assertions", + "version": "v2.3", + "source": { + "type": "git", + "url": "https://github.com/jasonmccreary/laravel-test-assertions.git", + "reference": "77d1812dce4438c294e281acade9d52adf4ce0a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/77d1812dce4438c294e281acade9d52adf4ce0a0", + "reference": "77d1812dce4438c294e281acade9d52adf4ce0a0", + "shasum": "" + }, + "require": { + "illuminate/testing": "^9.0|^10.0", + "mockery/mockery": "^1.4.2", + "php": "^8.0", + "phpunit/phpunit": "^9.3.3|^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "JMac\\Testing\\AdditionalAssertionsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "JMac\\Testing\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" + "name": "Jason McCreary", + "email": "jason@pureconcepts.net" } ], - "time": "2021-10-22T20:56:57+00:00" + "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.3" + }, + "time": "2023-03-15T16:29:35+00:00" }, { - "name": "guzzlehttp/psr7", - "version": "2.3.0", + "name": "laravel/framework", + "version": "v10.44.0", "source": { "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee" + "url": "https://github.com/laravel/framework.git", + "reference": "1199dbe361787bbe9648131a79f53921b4148cf6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/83260bb50b8fc753c72d14dc1621a2dac31877ee", - "reference": "83260bb50b8fc753c72d14dc1621a2dac31877ee", + "url": "https://api.github.com/repos/laravel/framework/zipball/1199dbe361787bbe9648131a79f53921b4148cf6", + "reference": "1199dbe361787bbe9648131a79f53921b4148cf6", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "ralouphie/getallheaders": "^3.0" + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.9", + "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", + "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", + "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", + "phpunit/phpunit": ">=11.0.0", + "tightenco/collect": "<5.5.33" }, "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.8 || ^9.3.10" + "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", + "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", + "nyholm/psr7": "^1.2", + "orchestra/testbench-core": "^8.18", + "pda/pheanstalk": "^4.0", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^10.0.7", + "predis/predis": "^2.0.2", + "symfony/cache": "^6.2", + "symfony/http-client": "^6.2.4", + "symfony/psr-http-message-bridge": "^2.0" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "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).", + "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.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "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).", + "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).", + "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).", + "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)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "10.x-dev" } }, "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -1888,158 +1978,234 @@ ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "PSR-7 message implementation that also provides common utility methods", + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" + "framework", + "laravel" ], "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.3.0" + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, + "time": "2024-02-13T16:01:16+00:00" + }, + { + "name": "laravel/helpers", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/helpers.git", + "reference": "6caaa242a23bc39b4e3cf57304b5409260a7a346" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/helpers/zipball/6caaa242a23bc39b4e3cf57304b5409260a7a346", + "reference": "6caaa242a23bc39b4e3cf57304b5409260a7a346", + "shasum": "" + }, + "require": { + "illuminate/support": "~5.8.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.0|^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^7.0|^8.0|^9.0|^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://github.com/Nyholm", - "type": "github" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" }, { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" + "name": "Dries Vints", + "email": "dries@laravel.com" } ], - "time": "2022-06-09T08:26:02+00:00" + "description": "Provides backwards compatibility for helpers in the latest Laravel release.", + "keywords": [ + "helpers", + "laravel" + ], + "support": { + "source": "https://github.com/laravel/helpers/tree/v1.7.0" + }, + "time": "2023-11-30T14:09:05+00:00" }, { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "name": "laravel/prompts", + "version": "v0.1.15", "source": { "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "url": "https://github.com/laravel/prompts.git", + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "ext-mbstring": "*", + "illuminate/collections": "^10.0|^11.0", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "0.1.x-dev" } }, "autoload": { - "classmap": [ - "hamcrest" - ] + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "This is the PHP port of Hamcrest Matchers", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.1.15" + }, + "time": "2023-12-29T22:37:42+00:00" + }, + { + "name": "laravel/sanctum", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/sanctum.git", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "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" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^7.28.2|^8.8.3", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sanctum\\SanctumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sanctum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", "keywords": [ - "test" + "auth", + "laravel", + "sanctum" ], "support": { - "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "issues": "https://github.com/laravel/sanctum/issues", + "source": "https://github.com/laravel/sanctum" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2023-12-19T18:44:48+00:00" }, { - "name": "hashids/hashids", - "version": "4.1.0", + "name": "laravel/serializable-closure", + "version": "v1.3.3", "source": { "type": "git", - "url": "https://github.com/vinkla/hashids.git", - "reference": "8cab111f78e0bd9c76953b082919fc9e251761be" + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vinkla/hashids/zipball/8cab111f78e0bd9c76953b082919fc9e251761be", - "reference": "8cab111f78e0bd9c76953b082919fc9e251761be", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754", + "reference": "3dbf8a8e914634c48d389c1234552666b3d43754", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": "^7.2 || ^8.0" + "php": "^7.3|^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.0 || ^9.4", - "squizlabs/php_codesniffer": "^3.5" - }, - "suggest": { - "ext-bcmath": "Required to use BC Math arbitrary precision mathematics (*).", - "ext-gmp": "Required to use GNU multiple precision mathematics (*)." + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "Hashids\\": "src/" + "Laravel\\SerializableClosure\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2048,79 +2214,67 @@ ], "authors": [ { - "name": "Ivan Akimov", - "email": "ivan@barreleye.com" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" }, { - "name": "Vincent Klaiber", - "email": "hello@doubledip.se" + "name": "Nuno Maduro", + "email": "nuno@laravel.com" } ], - "description": "Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers", - "homepage": "https://hashids.org/php", + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", "keywords": [ - "bitly", - "decode", - "encode", - "hash", - "hashid", - "hashids", - "ids", - "obfuscate", - "youtube" + "closure", + "laravel", + "serializable" ], "support": { - "issues": "https://github.com/vinkla/hashids/issues", - "source": "https://github.com/vinkla/hashids/tree/4.1.0" + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" }, - "time": "2020-11-26T19:24:33+00:00" + "time": "2023-11-08T14:08:06+00:00" }, { - "name": "innocenzi/laravel-vite", - "version": "0.1.27", + "name": "laravel/tinker", + "version": "v2.9.0", "source": { "type": "git", - "url": "https://github.com/innocenzi/laravel-vite.git", - "reference": "50bc07018bd6a2b6c88e074c62bfb0909275f327" + "url": "https://github.com/laravel/tinker.git", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/innocenzi/laravel-vite/zipball/50bc07018bd6a2b6c88e074c62bfb0909275f327", - "reference": "50bc07018bd6a2b6c88e074c62bfb0909275f327", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0", - "guzzlehttp/guzzle": "^6.0|^7.2", - "illuminate/contracts": "^8.0|^9.0", - "php": "^7.4|^8.0", - "spatie/laravel-package-tools": "^1.1" + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.2.1", - "orchestra/testbench": "^6.0|^7.0", - "pestphp/pest": "^1.20.0", - "phpunit/phpunit": "^9.3", - "symfony/process": "^5.3|^6.0" + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { "laravel": { "providers": [ - "Innocenzi\\Vite\\ViteServiceProvider" - ], - "aliases": { - "Vite": "Innocenzi\\Vite\\ViteFacade" - } + "Laravel\\Tinker\\TinkerServiceProvider" + ] } }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { - "Innocenzi\\Vite\\": "src", - "Innocenzi\\Vite\\Database\\Factories\\": "database/factories" + "Laravel\\Tinker\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2129,74 +2283,63 @@ ], "authors": [ { - "name": "Enzo Innocenzi", - "email": "enzo@innocenzi.dev", - "role": "Developer" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "Vite integration for Laravel", - "homepage": "https://github.com/innocenzi/laravel-vite", + "description": "Powerful REPL for the Laravel framework.", "keywords": [ - "innocenzi", - "laravel-vite" + "REPL", + "Tinker", + "laravel", + "psysh" ], "support": { - "issues": "https://github.com/innocenzi/laravel-vite/issues", - "source": "https://github.com/innocenzi/laravel-vite/tree/0.1.27" + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "funding": [ - { - "url": "https://github.com/innocenzi", - "type": "github" - } - ], - "time": "2022-01-31T14:50:39+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { - "name": "intervention/image", - "version": "2.7.2", + "name": "laravel/ui", + "version": "v4.4.0", "source": { "type": "git", - "url": "https://github.com/Intervention/image.git", - "reference": "04be355f8d6734c826045d02a1079ad658322dad" + "url": "https://github.com/laravel/ui.git", + "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", - "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "url": "https://api.github.com/repos/laravel/ui/zipball/7335d7049b2cde345c029e9d2de839b80af62bc0", + "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "guzzlehttp/psr7": "~1.1 || ^2.0", - "php": ">=5.4.0" + "illuminate/console": "^9.21|^10.0|^11.0", + "illuminate/filesystem": "^9.21|^10.0|^11.0", + "illuminate/support": "^9.21|^10.0|^11.0", + "illuminate/validation": "^9.21|^10.0|^11.0", + "php": "^8.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" + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.3|^10.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "4.x-dev" }, "laravel": { "providers": [ - "Intervention\\Image\\ImageServiceProvider" - ], - "aliases": { - "Image": "Intervention\\Image\\Facades\\Image" - } + "Laravel\\Ui\\UiServiceProvider" + ] } }, "autoload": { "psr-4": { - "Intervention\\Image\\": "src/Intervention/Image" + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2205,68 +2348,53 @@ ], "authors": [ { - "name": "Oliver Vogel", - "email": "oliver@intervention.io", - "homepage": "https://intervention.io/" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "Image handling and manipulation library with support for Laravel integration", - "homepage": "http://image.intervention.io/", + "description": "Laravel UI utilities and presets.", "keywords": [ - "gd", - "image", - "imagick", "laravel", - "thumbnail", - "watermark" + "ui" ], "support": { - "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/2.7.2" + "source": "https://github.com/laravel/ui/tree/v4.4.0" }, - "funding": [ - { - "url": "https://paypal.me/interventionio", - "type": "custom" - }, - { - "url": "https://github.com/Intervention", - "type": "github" - } - ], - "time": "2022-05-21T17:30:32+00:00" + "time": "2024-01-12T15:56:45+00:00" }, { - "name": "jasonmccreary/laravel-test-assertions", - "version": "v2.1.1", + "name": "lavary/laravel-menu", + "version": "v1.8.4", "source": { "type": "git", - "url": "https://github.com/jasonmccreary/laravel-test-assertions.git", - "reference": "2547c0366f1ee9a2d58b031468b26edc63faef4e" + "url": "https://github.com/lavary/laravel-menu.git", + "reference": "5255e715912b50127b296da7410bd97468bf5e40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jasonmccreary/laravel-test-assertions/zipball/2547c0366f1ee9a2d58b031468b26edc63faef4e", - "reference": "2547c0366f1ee9a2d58b031468b26edc63faef4e", + "url": "https://api.github.com/repos/lavary/laravel-menu/zipball/5255e715912b50127b296da7410bd97468bf5e40", + "reference": "5255e715912b50127b296da7410bd97468bf5e40", "shasum": "" }, "require": { - "illuminate/testing": "^8.0|^9.0", - "mockery/mockery": "^1.4.2", - "php": ">=7.3|^8.0", - "phpunit/phpunit": "^9.3.3" + "illuminate/support": ">=5.0", + "illuminate/view": ">=5.0", + "php": ">=5.4.0" }, "type": "library", "extra": { "laravel": { "providers": [ - "JMac\\Testing\\AdditionalAssertionsServiceProvider" - ] + "Lavary\\Menu\\ServiceProvider" + ], + "aliases": { + "Menu": "Lavary\\Menu\\Facade" + } } }, "autoload": { - "psr-4": { - "JMac\\Testing\\": "src/" + "psr-0": { + "Lavary\\Menu\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2275,287 +2403,257 @@ ], "authors": [ { - "name": "Jason McCreary", - "email": "jason@pureconcepts.net" + "name": "Lavary", + "email": "mrl.8081@gmail.com" } ], - "description": "A set of helpful assertions when testing Laravel applications.", + "description": "A quick way to create menus in Laravel 5", + "homepage": "https://github.com/lavary/laravel-menu", + "keywords": [ + "laravel" + ], "support": { - "issues": "https://github.com/jasonmccreary/laravel-test-assertions/issues", - "source": "https://github.com/jasonmccreary/laravel-test-assertions/tree/v2.1.1" + "issues": "https://github.com/lavary/laravel-menu/issues", + "source": "https://github.com/lavary/laravel-menu/tree/v1.8.4" }, - "time": "2022-03-08T14:47:39+00:00" + "time": "2022-02-14T19:30:22+00:00" }, { - "name": "laravel/framework", - "version": "v8.83.16", + "name": "league/commonmark", + "version": "2.4.2", "source": { "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "6be5abd144faf517879af7298e9d79f06f250f75" + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/6be5abd144faf517879af7298e9d79f06f250f75", - "reference": "6be5abd144faf517879af7298e9d79f06f250f75", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", "ext-mbstring": "*", - "ext-openssl": "*", - "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", - "league/flysystem": "^1.1", - "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.53.1", - "opis/closure": "^3.6", - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/log": "^1.0|^2.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "^4.2.2", - "swiftmailer/swiftmailer": "^6.3", - "symfony/console": "^5.4", - "symfony/error-handler": "^5.4", - "symfony/finder": "^5.4", - "symfony/http-foundation": "^5.4", - "symfony/http-kernel": "^5.4", - "symfony/mime": "^5.4", - "symfony/process": "^5.4", - "symfony/routing": "^5.4", - "symfony/var-dumper": "^5.4", - "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^1.6.1" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "provide": { - "psr/container-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/collections": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/macroable": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/testing": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version" + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "aws/aws-sdk-php": "^3.198.1", - "doctrine/dbal": "^2.13.3|^3.1.4", - "filp/whoops": "^2.14.3", - "guzzlehttp/guzzle": "^6.5.5|^7.0.1", - "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.27", - "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.19|^9.5.8", - "predis/predis": "^1.1.9", - "symfony/cache": "^5.4" + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.3", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.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.198.1).", - "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", - "ext-bcmath": "Required to use the multiple_of validation rule.", - "ext-ftp": "Required to use the Flysystem FTP driver.", - "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", - "ext-memcached": "Required to use the memcache cache driver.", - "ext-pcntl": "Required to use all features of the queue worker.", - "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).", - "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, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", - "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.4).", - "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 (^8.5.19|^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.9).", - "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 (^4.0|^5.0|^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", - "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-main": "2.5-dev" } }, - "autoload": { - "files": [ - "src/Illuminate/Collections/helpers.php", - "src/Illuminate/Events/functions.php", - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/", - "Illuminate\\Support\\": [ - "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" - ] + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" } ], - "description": "The Laravel Framework.", - "homepage": "https://laravel.com", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", "keywords": [ - "framework", - "laravel" + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" ], "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" }, - "time": "2022-06-07T15:09:06+00:00" + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2024-02-02T11:59:32+00:00" }, { - "name": "laravel/helpers", - "version": "v1.5.0", + "name": "league/config", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/laravel/helpers.git", - "reference": "c28b0ccd799d58564c41a62395ac9511a1e72931" + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/helpers/zipball/c28b0ccd799d58564c41a62395ac9511a1e72931", - "reference": "c28b0ccd799d58564c41a62395ac9511a1e72931", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", "shasum": "" }, "require": { - "illuminate/support": "~5.8.0|^6.0|^7.0|^8.0|^9.0", - "php": "^7.1.3|^8.0" + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.2-dev" } }, "autoload": { - "files": [ - "src/helpers.php" - ] + "psr-4": { + "League\\Config\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Dries Vints", - "email": "dries@laravel.com" + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" } ], - "description": "Provides backwards compatibility for helpers in the latest Laravel release.", + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", "keywords": [ - "helpers", - "laravel" + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" ], "support": { - "source": "https://github.com/laravel/helpers/tree/v1.5.0" + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" }, - "time": "2022-01-12T15:58:51+00:00" + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" }, { - "name": "laravel/sanctum", - "version": "v2.15.1", + "name": "league/flysystem", + "version": "3.24.0", "source": { "type": "git", - "url": "https://github.com/laravel/sanctum.git", - "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473" + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "b25a361508c407563b34fac6f64a8a17a8819675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473", - "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675", + "reference": "b25a361508c407563b34fac6f64a8a17a8819675", "shasum": "" }, "require": { - "ext-json": "*", - "illuminate/console": "^6.9|^7.0|^8.0|^9.0", - "illuminate/contracts": "^6.9|^7.0|^8.0|^9.0", - "illuminate/database": "^6.9|^7.0|^8.0|^9.0", - "illuminate/support": "^6.9|^7.0|^8.0|^9.0", - "php": "^7.2|^8.0" + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, - "require-dev": { - "mockery/mockery": "^1.0", - "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0", - "phpunit/phpunit": "^8.0|^9.3" + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.34", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Sanctum\\SanctumServiceProvider" - ] - } - }, "autoload": { "psr-4": { - "Laravel\\Sanctum\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2564,53 +2662,68 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.", + "description": "File storage abstraction for PHP", "keywords": [ - "auth", - "laravel", - "sanctum" + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" ], "support": { - "issues": "https://github.com/laravel/sanctum/issues", - "source": "https://github.com/laravel/sanctum" + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.24.0" }, - "time": "2022-04-08T13:39:49+00:00" + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2024-02-04T12:10:17+00:00" }, { - "name": "laravel/serializable-closure", - "version": "v1.2.0", + "name": "league/flysystem-aws-s3-v3", + "version": "3.24.0", "source": { "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540" + "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", + "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", + "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", "shasum": "" }, "require": { - "php": "^7.3|^8.0" + "aws/aws-sdk-php": "^3.295.10", + "league/flysystem": "^3.10.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, - "require-dev": { - "pestphp/pest": "^1.18", - "phpstan/phpstan": "^0.12.98", - "symfony/var-dumper": "^5.3" + "conflict": { + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { "psr-4": { - "Laravel\\SerializableClosure\\": "src/" + "League\\Flysystem\\AwsS3V3\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2619,69 +2732,59 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Nuno Maduro", - "email": "nuno@laravel.com" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "description": "AWS S3 filesystem adapter for Flysystem.", "keywords": [ - "closure", - "laravel", - "serializable" + "Flysystem", + "aws", + "file", + "files", + "filesystem", + "s3", + "storage" ], "support": { - "issues": "https://github.com/laravel/serializable-closure/issues", - "source": "https://github.com/laravel/serializable-closure" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0" }, - "time": "2022-05-16T17:09:47+00:00" + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2024-01-26T18:43:21+00:00" }, { - "name": "laravel/tinker", - "version": "v2.7.2", + "name": "league/flysystem-local", + "version": "3.23.1", "source": { "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "dff39b661e827dae6e092412f976658df82dbac5" + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5", - "reference": "dff39b661e827dae6e092412f976658df82dbac5", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0", - "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" - }, - "require-dev": { - "mockery/mockery": "~1.3.3|^1.4.2", - "phpunit/phpunit": "^8.5.8|^9.3.3" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0)." + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, "autoload": { "psr-4": { - "Laravel\\Tinker\\": "src/" + "League\\Flysystem\\Local\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2690,62 +2793,63 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "description": "Powerful REPL for the Laravel framework.", + "description": "Local filesystem adapter for Flysystem.", "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" + "Flysystem", + "file", + "files", + "filesystem", + "local" ], "support": { - "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.7.2" + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" }, - "time": "2022-03-23T12:38:24+00:00" + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2024-01-26T18:25:23+00:00" }, { - "name": "laravel/ui", - "version": "v3.4.6", + "name": "league/glide", + "version": "2.3.0", "source": { "type": "git", - "url": "https://github.com/laravel/ui.git", - "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c" + "url": "https://github.com/thephpleague/glide.git", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/65ec5c03f7fee2c8ecae785795b829a15be48c2c", - "reference": "65ec5c03f7fee2c8ecae785795b829a15be48c2c", + "url": "https://api.github.com/repos/thephpleague/glide/zipball/2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", "shasum": "" }, "require": { - "illuminate/console": "^8.42|^9.0", - "illuminate/filesystem": "^8.42|^9.0", - "illuminate/support": "^8.82|^9.0", - "illuminate/validation": "^8.42|^9.0", - "php": "^7.3|^8.0" + "intervention/image": "^2.7", + "league/flysystem": "^2.0|^3.0", + "php": "^7.2|^8.0", + "psr/http-message": "^1.0|^2.0" }, "require-dev": { - "orchestra/testbench": "^6.23|^7.0" + "mockery/mockery": "^1.3.3", + "phpunit/php-token-stream": "^3.1|^4.0", + "phpunit/phpunit": "^8.5|^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Ui\\UiServiceProvider" - ] - } - }, "autoload": { "psr-4": { - "Laravel\\Ui\\": "src/", - "Illuminate\\Foundation\\Auth\\": "auth-backend/" + "League\\Glide\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2754,53 +2858,61 @@ ], "authors": [ { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "http://reinink.ca" + }, + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com", + "homepage": "https://titouangalopin.com" } ], - "description": "Laravel UI utilities and presets.", + "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", + "homepage": "http://glide.thephpleague.com", "keywords": [ - "laravel", - "ui" + "ImageMagick", + "editing", + "gd", + "image", + "imagick", + "league", + "manipulation", + "processing" ], "support": { - "source": "https://github.com/laravel/ui/tree/v3.4.6" + "issues": "https://github.com/thephpleague/glide/issues", + "source": "https://github.com/thephpleague/glide/tree/2.3.0" }, - "time": "2022-05-20T13:38:08+00:00" + "time": "2023-07-08T06:26:07+00:00" }, { - "name": "lavary/laravel-menu", - "version": "v1.8.3", + "name": "league/mime-type-detection", + "version": "1.15.0", "source": { "type": "git", - "url": "https://github.com/lavary/laravel-menu.git", - "reference": "4f14cb9b11cfcd9839d1d87c806632c84a94d3be" + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lavary/laravel-menu/zipball/4f14cb9b11cfcd9839d1d87c806632c84a94d3be", - "reference": "4f14cb9b11cfcd9839d1d87c806632c84a94d3be", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { - "illuminate/support": ">=5.0", - "illuminate/view": ">=5.0", - "php": ">=5.4.0" + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Lavary\\Menu\\ServiceProvider" - ], - "aliases": { - "Menu": "Lavary\\Menu\\Facade" - } - } + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, + "type": "library", "autoload": { - "psr-0": { - "Lavary\\Menu\\": "src/" + "psr-4": { + "League\\MimeTypeDetection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2809,335 +2921,323 @@ ], "authors": [ { - "name": "Lavary", - "email": "mrl.8081@gmail.com" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "description": "A quick way to create menus in Laravel 5", - "homepage": "https://github.com/lavary/laravel-menu", - "keywords": [ - "laravel" - ], + "description": "Mime-type detection for Flysystem", "support": { - "issues": "https://github.com/lavary/laravel-menu/issues", - "source": "https://github.com/lavary/laravel-menu/tree/v1.8.3" + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, - "time": "2021-02-22T16:41:26+00:00" + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-01-28T23:22:08+00:00" }, { - "name": "league/commonmark", - "version": "2.3.3", + "name": "maennchen/zipstream-php", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/commonmark.git", - "reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc" + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/0da1dca5781dd3cfddbe328224d9a7a62571addc", - "reference": "0da1dca5781dd3cfddbe328224d9a7a62571addc", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", "shasum": "" }, "require": { "ext-mbstring": "*", - "league/config": "^1.1.1", - "php": "^7.4 || ^8.0", - "psr/event-dispatcher": "^1.0", - "symfony/deprecation-contracts": "^2.1 || ^3.0", - "symfony/polyfill-php80": "^1.16" + "ext-zlib": "*", + "php-64bit": "^8.1" }, "require-dev": { - "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", - "commonmark/commonmark.js": "0.30.0", - "composer/package-versions-deprecated": "^1.8", - "embed/embed": "^4.4", - "erusev/parsedown": "^1.0", - "ext-json": "*", - "github/gfm": "0.29.0", - "michelf/php-markdown": "^1.4", - "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^0.12.88 || ^1.0.0", - "phpunit/phpunit": "^9.5.5", - "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", + "vimeo/psalm": "^5.0" }, "suggest": { - "symfony/yaml": "v2.3+ required if using the Front Matter extension" + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - } - }, "autoload": { "psr-4": { - "League\\CommonMark\\": "src" + "ZipStream\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", - "homepage": "https://commonmark.thephpleague.com", + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", "keywords": [ - "commonmark", - "flavored", - "gfm", - "github", - "github-flavored", - "markdown", - "md", - "parser" + "stream", + "zip" ], "support": { - "docs": "https://commonmark.thephpleague.com/", - "forum": "https://github.com/thephpleague/commonmark/discussions", - "issues": "https://github.com/thephpleague/commonmark/issues", - "rss": "https://github.com/thephpleague/commonmark/releases.atom", - "source": "https://github.com/thephpleague/commonmark" + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" }, "funding": [ { - "url": "https://www.colinodell.com/sponsor", - "type": "custom" - }, - { - "url": "https://www.paypal.me/colinpodell/10.00", - "type": "custom" - }, - { - "url": "https://github.com/colinodell", + "url": "https://github.com/maennchen", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/league/commonmark", - "type": "tidelift" + "url": "https://opencollective.com/zipstream", + "type": "open_collective" } ], - "time": "2022-06-07T21:28:26+00:00" + "time": "2023-06-21T14:59:35+00:00" }, { - "name": "league/config", - "version": "v1.1.1", + "name": "masterminds/html5", + "version": "2.8.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/config.git", - "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", - "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", "shasum": "" }, "require": { - "dflydev/dot-access-data": "^3.0.1", - "nette/schema": "^1.2", - "php": "^7.4 || ^8.0" + "ext-dom": "*", + "php": ">=5.3.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.90", - "phpunit/phpunit": "^9.5.5", - "scrutinizer/ocular": "^1.8.1", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.2-dev" + "dev-master": "2.7-dev" } }, "autoload": { "psr-4": { - "League\\Config\\": "src" + "Masterminds\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" - } - ], - "description": "Define configuration arrays with strict schemas and access values with dot notation", - "homepage": "https://config.thephpleague.com", - "keywords": [ - "array", - "config", - "configuration", - "dot", - "dot-access", - "nested", - "schema" - ], - "support": { - "docs": "https://config.thephpleague.com/", - "issues": "https://github.com/thephpleague/config/issues", - "rss": "https://github.com/thephpleague/config/releases.atom", - "source": "https://github.com/thephpleague/config" - }, - "funding": [ - { - "url": "https://www.colinodell.com/sponsor", - "type": "custom" + "name": "Matt Butcher", + "email": "technosophos@gmail.com" }, { - "url": "https://www.paypal.me/colinpodell/10.00", - "type": "custom" + "name": "Matt Farina", + "email": "matt@mattfarina.com" }, { - "url": "https://github.com/colinodell", - "type": "github" + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" } ], - "time": "2021-08-14T12:15:32+00:00" + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" }, { - "name": "league/flysystem", - "version": "1.1.9", + "name": "mockery/mockery", + "version": "1.6.7", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99" + "url": "https://github.com/mockery/mockery.git", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" }, "conflict": { - "league/flysystem-sftp": "<1.0.6" + "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "phpunit/phpunit": "^8.5 || ^9.6.10", + "symplify/easy-coding-standard": "^12.0.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], "psr-4": { - "League\\Flysystem\\": "src/" + "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Frank de Jonge", - "email": "info@frenky.net" + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", "keywords": [ - "Cloud Files", - "WebDAV", - "abstraction", - "aws", - "cloud", - "copy.com", - "dropbox", - "file systems", - "files", - "filesystem", - "filesystems", - "ftp", - "rackspace", - "remote", - "s3", - "sftp", - "storage" + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" ], "support": { - "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "funding": [ - { - "url": "https://offset.earth/frankdejonge", - "type": "other" - } - ], - "time": "2021-12-09T09:40:50+00:00" + "time": "2023-12-10T02:24:34+00:00" }, { - "name": "league/flysystem-aws-s3-v3", - "version": "1.0.29", + "name": "monolog/monolog", + "version": "3.5.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "4e25cc0582a36a786c31115e419c6e40498f6972" + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/4e25cc0582a36a786c31115e419c6e40498f6972", - "reference": "4e25cc0582a36a786c31115e419c6e40498f6972", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", "shasum": "" }, "require": { - "aws/aws-sdk-php": "^3.20.0", - "league/flysystem": "^1.0.40", - "php": ">=5.5.0" + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" }, "require-dev": { - "henrikbjorn/phpspec-code-coverage": "~1.0.1", - "phpspec/phpspec": "^2.0.0" + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.1", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "League\\Flysystem\\AwsS3v3\\": "src/" + "Monolog\\": "src/Monolog" } }, "notification-url": "https://packagist.org/downloads/", @@ -3146,51 +3246,71 @@ ], "authors": [ { - "name": "Frank de Jonge", - "email": "info@frenky.net" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" } ], - "description": "Flysystem adapter for the AWS S3 SDK v3.x", + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], "support": { - "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/1.0.29" + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" }, - "time": "2020-10-08T18:58:37+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2023-10-27T15:32:31+00:00" }, { - "name": "league/glide", - "version": "1.7.1", + "name": "mtdowling/jmespath.php", + "version": "2.7.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/glide.git", - "reference": "257e0c3612ef3dc57eb7f90cb741198151a45a5f" + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/glide/zipball/257e0c3612ef3dc57eb7f90cb741198151a45a5f", - "reference": "257e0c3612ef3dc57eb7f90cb741198151a45a5f", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b", + "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b", "shasum": "" }, "require": { - "intervention/image": "^2.4", - "league/flysystem": "^1.0", - "php": "^7.2|^8.0", - "psr/http-message": "^1.0" + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" }, "require-dev": { - "mockery/mockery": "^1.3.3", - "phpunit/php-token-stream": "^3.1|^4.0", - "phpunit/phpunit": "^8.5|^9.0" + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" }, + "bin": [ + "bin/jp.php" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.7-dev" } }, "autoload": { + "files": [ + "src/JmesPath.php" + ], "psr-4": { - "League\\Glide\\": "src/" + "JmesPath\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3199,122 +3319,148 @@ ], "authors": [ { - "name": "Jonathan Reinink", - "email": "jonathan@reinink.ca", - "homepage": "http://reinink.ca" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Titouan Galopin", - "email": "galopintitouan@gmail.com", - "homepage": "https://titouangalopin.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", - "homepage": "http://glide.thephpleague.com", + "description": "Declaratively specify how to extract elements from a JSON document", "keywords": [ - "ImageMagick", - "editing", - "gd", - "image", - "imagick", - "league", - "manipulation", - "processing" + "json", + "jsonpath" ], "support": { - "issues": "https://github.com/thephpleague/glide/issues", - "source": "https://github.com/thephpleague/glide/tree/1.7.1" + "issues": "https://github.com/jmespath/jmespath.php/issues", + "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" }, - "time": "2022-04-27T04:03:46+00:00" + "time": "2023-08-25T10:54:48+00:00" }, { - "name": "league/mime-type-detection", - "version": "1.11.0", + "name": "myclabs/deep-copy", + "version": "1.11.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.2", - "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], "psr-4": { - "League\\MimeTypeDetection\\": "src" + "DeepCopy\\": "src/DeepCopy/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frankdejonge.nl" - } + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" ], - "description": "Mime-type detection for Flysystem", "support": { - "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { - "url": "https://github.com/frankdejonge", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", "type": "tidelift" } ], - "time": "2022-04-17T13:12:02+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { - "name": "maennchen/zipstream-php", - "version": "2.2.1", + "name": "nesbot/carbon", + "version": "2.72.3", "source": { "type": "git", - "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729" + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/211e9ba1530ea5260b45d90c9ea252f56ec52729", - "reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { - "myclabs/php-enum": "^1.5", - "php": "^7.4 || ^8.0", - "psr/http-message": "^1.0", - "symfony/polyfill-mbstring": "^1.0" + "carbonphp/carbon-doctrine-types": "*", + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "psr/clock": "^1.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + }, + "provide": { + "psr/clock-implementation": "1.0" }, "require-dev": { - "ext-zip": "*", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4", - "phpunit/phpunit": "^8.5.8 || ^9.4.2", - "vimeo/psalm": "^4.1" + "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" }, + "bin": [ + "bin/carbon" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, "autoload": { "psr-4": { - "ZipStream\\": "src/" + "Carbon\\": "src/Carbon/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3323,785 +3469,713 @@ ], "authors": [ { - "name": "Paul Duncan", - "email": "pabs@pablotron.org" - }, - { - "name": "Jonatan Männchen", - "email": "jonatan@maennchen.ch" - }, - { - "name": "Jesse Donat", - "email": "donatj@gmail.com" + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" }, { - "name": "András Kolesár", - "email": "kolesar@kolesar.hu" + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" } ], - "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", "keywords": [ - "stream", - "zip" + "date", + "datetime", + "time" ], "support": { - "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.2.1" + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" }, "funding": [ { - "url": "https://opencollective.com/zipstream", - "type": "open_collective" + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" } ], - "time": "2022-05-18T15:52:06+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { - "name": "mockery/mockery", - "version": "1.5.0", + "name": "nette/schema", + "version": "v1.3.0", "source": { "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac" + "url": "https://github.com/nette/schema.git", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac", - "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", - "php": "^7.3 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<8.0" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3" + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.3-dev" } }, "autoload": { - "psr-0": { - "Mockery": "library/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" + "config", + "nette" ], "support": { - "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.5.0" + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2022-01-20T13:18:17+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { - "name": "monolog/monolog", - "version": "2.7.0", + "name": "nette/utils", + "version": "v4.0.4", "source": { "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524" + "url": "https://github.com/nette/utils.git", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5579edf28aee1190a798bfa5be8bc16c563bd524", - "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { - "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "php": ">=8.0 <8.4" }, - "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" }, "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7 || ^8", - "ext-json": "*", - "graylog2/gelf-php": "^1.4.2", - "guzzlehttp/guzzle": "^7.4", - "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.15", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5.14", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3 || ^2 || ^3", - "ruflin/elastica": "^7", - "swiftmailer/swiftmailer": "^5.3|^6.0", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" }, "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "log", - "logging", - "psr-3" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.7.0" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2022-06-09T08:59:12+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { - "name": "mtdowling/jmespath.php", - "version": "2.6.1", + "name": "nikic/php-parser", + "version": "v5.0.0", "source": { "type": "git", - "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb", - "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0 || ^8.0", - "symfony/polyfill-mbstring": "^1.17" + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" }, "require-dev": { - "composer/xdebug-handler": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^7.5.15" + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ - "bin/jp.php" + "bin/php-parse" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "5.0-dev" } }, "autoload": { - "files": [ - "src/JmesPath.php" - ], "psr-4": { - "JmesPath\\": "src/" + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Nikita Popov" } ], - "description": "Declaratively specify how to extract elements from a JSON document", + "description": "A PHP parser written in PHP", "keywords": [ - "json", - "jsonpath" + "parser", + "php" ], "support": { - "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.6.1" + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" }, - "time": "2021-06-14T00:11:39+00:00" + "time": "2024-01-07T17:17:35+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.11.0", + "name": "nunomaduro/termwind", + "version": "v1.15.1", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc", + "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" }, "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + "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", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, "autoload": { "files": [ - "src/DeepCopy/deep_copy.php" + "src/Functions.php" ], "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "Termwind\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Create deep copies (clones) of your objects", + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "cli", + "console", + "css", + "package", + "php", + "style" ], "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-02-08T01:06:31+00:00" }, { - "name": "myclabs/php-enum", - "version": "1.8.3", + "name": "phar-io/manifest", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/myclabs/php-enum.git", - "reference": "b942d263c641ddb5190929ff840c68f78713e937" + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937", - "reference": "b942d263c641ddb5190929ff840c68f78713e937", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { - "ext-json": "*", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", - "autoload": { - "psr-4": { - "MyCLabs\\Enum\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" - } - ], - "description": "PHP Enum implementation", - "homepage": "http://github.com/myclabs/php-enum", - "keywords": [ - "enum" - ], - "support": { - "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.8.3" - }, - "funding": [ + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, { - "url": "https://github.com/mnapoli", - "type": "github" + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { - "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", - "type": "tidelift" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "time": "2021-07-05T08:18:36+00:00" + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { - "name": "nesbot/carbon", - "version": "2.58.0", + "name": "phar-io/version", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055" + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/97a34af22bde8d0ac20ab34b29d7bfe360902055", - "reference": "97a34af22bde8d0ac20ab34b29d7bfe360902055", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "ext-json": "*", - "php": "^7.1.8 || ^8.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" - }, - "require-dev": { - "doctrine/dbal": "^2.0 || ^3.0", - "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^3.0", - "kylekatarnls/multi-tester": "^2.0", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54 || ^1.0", - "phpunit/php-file-iterator": "^2.0.5", - "phpunit/phpunit": "^7.5.20 || ^8.5.23", - "squizlabs/php_codesniffer": "^3.4" + "php": "^7.2 || ^8.0" }, - "bin": [ - "bin/carbon" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] - } - }, "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "https://markido.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" }, { - "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" - } - ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "support": { - "docs": "https://carbon.nesbot.com/docs", - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "funding": [ - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "time": "2022-04-25T19:31:17+00:00" + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { - "name": "nette/schema", - "version": "v1.2.2", + "name": "phenx/php-font-lib", + "version": "0.5.6", "source": { "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "a1681e9793040740a405ac5b189275059e2a9863" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863", + "reference": "a1681e9793040740a405ac5b189275059e2a9863", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.2" + "ext-mbstring": "*" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.7" + "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "FontLib\\": "src/FontLib" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" } ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", "support": { - "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.2" + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.6" }, - "time": "2021-10-15T11:40:02+00:00" + "time": "2024-01-29T14:45:26+00:00" }, { - "name": "nette/utils", - "version": "v3.2.7", + "name": "phenx/php-svg-lib", + "version": "0.5.2", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa", + "reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa", "shasum": "" }, "require": { - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0.6" + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4" }, "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Svg\\": "src/Svg" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "LGPL-3.0" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.7" + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2" }, - "time": "2022-01-24T11:29:14+00:00" + "time": "2024-02-07T12:49:40+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.14.0", + "name": "phpoption/phpoption", + "version": "1.9.2", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820", + "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=7.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" }, - "bin": [ - "bin/php-parse" - ], "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "1.9-dev" } }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" + "PhpOption\\": "src/PhpOption/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "Apache-2.0" ], "authors": [ { - "name": "Nikita Popov" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], - "description": "A PHP parser written in PHP", + "description": "Option Type for PHP", "keywords": [ - "parser", - "php" + "language", + "option", + "php", + "type" ], "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.2" }, - "time": "2022-05-31T20:59:12+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2023-11-12T21:59:55+00:00" }, { - "name": "opis/closure", - "version": "3.6.3", + "name": "phpunit/php-code-coverage", + "version": "10.1.11", "source": { "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0 || ^8.0" + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-text-template": "^3.0", + "sebastian/code-unit-reverse-lookup": "^3.0", + "sebastian/complexity": "^3.0", + "sebastian/environment": "^6.0", + "sebastian/lines-of-code": "^2.0", + "sebastian/version": "^4.0", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.6.x-dev" + "dev-main": "10.1-dev" } }, - "autoload": { - "files": [ - "functions.php" - ], - "psr-4": { - "Opis\\Closure\\": "src/" - } + "autoload": { + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" + "coverage", + "testing", + "xunit" ], "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" + "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.11" }, - "time": "2022-01-27T09:35:39+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T15:38:30+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.3", + "name": "phpunit/php-file-iterator", + "version": "4.1.0", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -4114,47 +4188,61 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", - "role": "Developer" + "role": "lead" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" }, { - "name": "phar-io/version", - "version": "3.2.1", + "name": "phpunit/php-invoker", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -4165,206 +4253,278 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", - "role": "Developer" + "role": "lead" } ], - "description": "Library for handling version information and constraints", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" }, - "time": "2022-02-21T01:04:05+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:56:09+00:00" }, { - "name": "phenx/php-font-lib", - "version": "0.5.4", + "name": "phpunit/php-text-template", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/dompdf/php-font-lib.git", - "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4", - "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", "shasum": "" }, "require": { - "ext-mbstring": "*" + "php": ">=8.1" }, "require-dev": { - "symfony/phpunit-bridge": "^3 || ^4 || ^5" + "phpunit/phpunit": "^10.0" }, "type": "library", - "autoload": { - "psr-4": { - "FontLib\\": "src/FontLib" + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-3.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A library to read, parse, export and make subsets of different types of font files.", - "homepage": "https://github.com/PhenX/php-font-lib", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], "support": { - "issues": "https://github.com/dompdf/php-font-lib/issues", - "source": "https://github.com/dompdf/php-font-lib/tree/0.5.4" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" }, - "time": "2021-12-17T19:44:54+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" }, { - "name": "phenx/php-svg-lib", - "version": "0.4.1", + "name": "phpunit/php-timer", + "version": "6.0.0", "source": { "type": "git", - "url": "https://github.com/dompdf/php-svg-lib.git", - "reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/4498b5df7b08e8469f0f8279651ea5de9626ed02", - "reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": "^7.1 || ^7.2 || ^7.3 || ^7.4 || ^8.0", - "sabberworm/php-css-parser": "^8.4" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + "phpunit/phpunit": "^10.0" }, "type": "library", - "autoload": { - "psr-4": { - "Svg\\": "src/Svg" + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-3.0" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "A library to read, parse and export to PDF SVG files.", - "homepage": "https://github.com/PhenX/php-svg-lib", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], "support": { - "issues": "https://github.com/dompdf/php-svg-lib/issues", - "source": "https://github.com/dompdf/php-svg-lib/tree/0.4.1" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" }, - "time": "2022-03-07T12:52:04+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:57:52+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "name": "phpunit/phpunit", + "version": "10.5.10", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/50b8e314b6d0dd06521dc31d1abffa73f25f850c", + "reference": "50b8e314b6d0dd06521dc31d1abffa73f25f850c", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.5", + "phpunit/php-file-iterator": "^4.0", + "phpunit/php-invoker": "^4.0", + "phpunit/php-text-template": "^3.0", + "phpunit/php-timer": "^6.0", + "sebastian/cli-parser": "^2.0", + "sebastian/code-unit": "^2.0", + "sebastian/comparator": "^5.0", + "sebastian/diff": "^5.0", + "sebastian/environment": "^6.0", + "sebastian/exporter": "^5.1", + "sebastian/global-state": "^6.0.1", + "sebastian/object-enumerator": "^5.0", + "sebastian/recursion-context": "^5.0", + "sebastian/type": "^4.0", + "sebastian/version": "^4.0" }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-2.x": "2.x-dev" + "dev-main": "10.5-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.10" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" + "time": "2024-02-04T09:07:51+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "name": "predis/predis", + "version": "v2.2.2", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "url": "https://github.com/predis/predis.git", + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", + "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" + "friendsofphp/php-cs-fixer": "^3.3", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ~9.4.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } + "suggest": { + "ext-relay": "Faster connection with in-memory caching (>=0.6.2)" }, + "type": "library", "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "Predis\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4373,52 +4533,51 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "name": "Till Krüss", + "homepage": "https://till.im", + "role": "Maintainer" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "description": "A flexible and feature-complete Redis client for PHP.", + "homepage": "http://github.com/predis/predis", + "keywords": [ + "nosql", + "predis", + "redis" + ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + "issues": "https://github.com/predis/predis/issues", + "source": "https://github.com/predis/predis/tree/v2.2.2" }, - "time": "2021-10-19T17:43:47+00:00" + "funding": [ + { + "url": "https://github.com/sponsors/tillkruss", + "type": "github" + } + ], + "time": "2023-09-13T16:42:03+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.6.1", + "name": "psr/clock", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "php": "^7.0 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" + "Psr\\Clock\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4427,122 +4586,104 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" }, - "time": "2022-03-15T21:29:03+00:00" + "time": "2022-11-25T14:36:26+00:00" }, { - "name": "phpoption/phpoption", - "version": "1.8.1", + "name": "psr/container", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15" + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" + "php": ">=7.4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "PhpOption\\": "src/PhpOption/" + "Psr\\Container\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" - }, - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Option Type for PHP", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "language", - "option", - "php", - "type" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.8.1" + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], - "time": "2021-12-04T23:24:31+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { - "name": "phpspec/prophecy", - "version": "v1.15.0", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "php": ">=7.2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Prophecy\\": "src/Prophecy" + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4551,481 +4692,388 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", + "description": "Standard interfaces for event handling.", "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "events", + "psr", + "psr-14" ], "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2021-12-08T12:19:24+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "9.2.15", + "name": "psr/http-client", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", "keywords": [ - "coverage", - "testing", - "xunit" + "http", + "http-client", + "psr", + "psr-18" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" + "source": "https://github.com/php-fig/http-client" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-03-07T09:28:20+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "name": "psr/http-factory", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], - "time": "2021-12-02T12:48:52+00:00" + "support": { + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + }, + "time": "2023-04-10T20:10:41+00:00" }, { - "name": "phpunit/php-invoker", - "version": "3.1.1", + "name": "psr/http-message", + "version": "2.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "process" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { - "name": "phpunit/php-text-template", - "version": "2.0.4", + "name": "psr/log", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\Log\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "template" + "log", + "psr", + "psr-3" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { - "name": "phpunit/php-timer", - "version": "5.0.3", + "name": "psr/simple-cache", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Common interfaces for simple caching", "keywords": [ - "timer" + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2021-10-29T13:26:27+00:00" }, { - "name": "phpunit/phpunit", - "version": "9.5.20", + "name": "psy/psysh", + "version": "v0.12.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba" + "url": "https://github.com/bobthecow/psysh.git", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba", - "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.13", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.0", - "sebastian/version": "^3.0.2" - }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ - "phpunit" + "bin/psysh" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-main": "0.12.x-dev" + }, + "bamarni-bin": { + "bin-links": false, + "forward-command": false } }, "autoload": { "files": [ - "src/Framework/Assert/Functions.php" + "src/functions.php" ], - "classmap": [ - "src/" - ] + "psr-4": { + "Psy\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", "keywords": [ - "phpunit", - "testing", - "xunit" + "REPL", + "console", + "interactive", + "shell" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20" + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-04-01T12:37:26+00:00" + "time": "2023-12-20T15:28:09+00:00" }, { - "name": "predis/predis", - "version": "v1.1.10", + "name": "ralouphie/getallheaders", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/predis/predis.git", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e" + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", - "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", "shasum": "" }, "require": { - "php": ">=5.3.9" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "suggest": { - "ext-curl": "Allows access to Webdis when paired with phpiredis", - "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol" + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" }, "type": "library", "autoload": { - "psr-4": { - "Predis\\": "src/" - } + "files": [ + "src/getallheaders.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5033,57 +5081,68 @@ ], "authors": [ { - "name": "Daniele Alessandri", - "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator & Maintainer" - }, - { - "name": "Till Krüss", - "homepage": "https://till.im", - "role": "Maintainer" + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" } ], - "description": "Flexible and feature-complete Redis client for PHP and HHVM", - "homepage": "http://github.com/predis/predis", - "keywords": [ - "nosql", - "predis", - "redis" - ], + "description": "A polyfill for getallheaders.", "support": { - "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v1.1.10" + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" }, - "funding": [ - { - "url": "https://github.com/sponsors/tillkruss", - "type": "github" - } - ], - "time": "2022-01-05T17:46:08+00:00" + "time": "2019-03-08T08:55:37+00:00" }, { - "name": "psr/container", - "version": "1.1.2", + "name": "ramsey/collection", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" }, "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Ramsey\\Collection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5092,102 +5151,161 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "A PHP library for representing and manipulating collections.", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "array", + "collection", + "hash", + "map", + "queue", + "set" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" }, - "time": "2021-11-05T16:50:12+00:00" + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" }, { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "name": "ramsey/uuid", + "version": "4.7.5", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/ramsey/uuid.git", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", + "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e", "shasum": "" }, "require": { - "php": ">=7.2.0" + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" + "captainhook": { + "force-install": true } }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "Ramsey\\Uuid\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", "keywords": [ - "events", - "psr", - "psr-14" + "guid", + "identifier", + "uuid" ], "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.5" }, - "time": "2019-01-08T18:20:26+00:00" + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2023-11-08T05:53:05+00:00" }, { - "name": "psr/http-client", - "version": "1.0.1", + "name": "sabberworm/php-css-parser", + "version": "v8.5.1", "source": { "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152", + "reference": "4a3d572b0f8b28bb6fd016ae8bbfc445facef152", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.27" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "9.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Client\\": "src/" + "Sabberworm\\CSS\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5196,602 +5314,628 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Raphael Schweikert" + }, + { + "name": "Oliver Klee", + "email": "github@oliverklee.de" + }, + { + "name": "Jake Hotson", + "email": "jake.github@qzdesign.co.uk" } ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", "keywords": [ - "http", - "http-client", - "psr", - "psr-18" + "css", + "parser", + "stylesheet" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/master" + "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.5.1" }, - "time": "2020-06-29T06:28:15+00:00" + "time": "2024-02-15T16:41:13+00:00" }, { - "name": "psr/http-factory", - "version": "1.0.1", + "name": "sebastian/cli-parser", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", + "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", "shasum": "" }, "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "2.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" }, - "time": "2019-04-30T12:38:16+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:15+00:00" }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "sebastian/code-unit", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "2.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { - "source": "https://github.com/php-fig/http-message/tree/master" + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" }, - "time": "2016-08-06T14:39:51+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" }, { - "name": "psr/log", - "version": "2.0.0", + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", "shasum": "" }, "require": { - "php": ">=8.0.0" + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" }, - "time": "2021-07-14T16:41:46+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" }, { - "name": "psr/simple-cache", - "version": "1.0.1", + "name": "sebastian/comparator", + "version": "5.0.1", "source": { "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", + "reference": "2db5010a484d53ebf536087a70b4a5423c102372", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "5.0-dev" } }, "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], - "description": "Common interfaces for simple caching", + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" + "comparator", + "compare", + "equality" ], "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" }, - "time": "2017-10-23T01:57:42+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-14T13:18:12+00:00" }, { - "name": "psy/psysh", - "version": "v0.11.5", + "name": "sebastian/complexity", + "version": "3.2.0", "source": { "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "c23686f9c48ca202710dbb967df8385a952a2daf" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/c23686f9c48ca202710dbb967df8385a952a2daf", - "reference": "c23686f9c48ca202710dbb967df8385a952a2daf", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" - }, - "conflict": { - "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "phpunit/phpunit": "^10.0" }, - "bin": [ - "bin/psysh" - ], "type": "library", "extra": { "branch-alias": { - "dev-main": "0.11.x-dev" + "dev-main": "3.2-dev" } }, "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.5" + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, - "time": "2022-05-27T18:03:49+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:37:17+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "sebastian/diff", + "version": "5.1.0", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=8.1" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "phpunit/phpunit": "^10.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, "autoload": { - "files": [ - "src/getallheaders.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], - "description": "A polyfill for getallheaders.", + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" }, - "time": "2019-03-08T08:55:37+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T10:55:06+00:00" }, { - "name": "ramsey/collection", - "version": "1.2.2", + "name": "sebastian/environment", + "version": "6.0.1", "source": { "type": "git", - "url": "https://github.com/ramsey/collection.git", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", + "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", "shasum": "" }, "require": { - "php": "^7.3 || ^8", - "symfony/polyfill-php81": "^1.23" + "php": ">=8.1" }, "require-dev": { - "captainhook/captainhook": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "ergebnis/composer-normalize": "^2.6", - "fakerphp/faker": "^1.5", - "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.8", - "mockery/mockery": "^1.3", - "phpspec/prophecy-phpunit": "^2.0", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^0.12.32", - "phpstan/phpstan-mockery": "^0.12.5", - "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5 || ^9", - "psy/psysh": "^0.10.4", - "slevomat/coding-standard": "^6.3", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.4" + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", - "autoload": { - "psr-4": { - "Ramsey\\Collection\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "A PHP library for representing and manipulating collections.", + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ - "array", - "collection", - "hash", - "map", - "queue", - "set" + "Xdebug", + "environment", + "hhvm" ], "support": { - "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.2.2" + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" }, "funding": [ { - "url": "https://github.com/ramsey", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" } ], - "time": "2021-10-10T03:01:02+00:00" + "time": "2023-04-11T05:39:26+00:00" }, { - "name": "ramsey/uuid", - "version": "4.3.1", + "name": "sebastian/exporter", + "version": "5.1.1", "source": { "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", - "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", "shasum": "" }, "require": { - "brick/math": "^0.8 || ^0.9", - "ext-ctype": "*", - "ext-json": "*", - "php": "^8.0", - "ramsey/collection": "^1.0" - }, - "replace": { - "rhumsaa/uuid": "self.version" + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "captainhook/captainhook": "^5.10", - "captainhook/plugin-composer": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "doctrine/annotations": "^1.8", - "ergebnis/composer-normalize": "^2.15", - "mockery/mockery": "^1.3", - "moontoast/math": "^1.1", - "paragonie/random-lib": "^2", - "php-mock/php-mock": "^2.2", - "php-mock/php-mock-mockery": "^1.3", - "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^1.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-mockery": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5 || ^9", - "slevomat/coding-standard": "^7.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.9" - }, - "suggest": { - "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", - "ext-ctype": "Enables faster processing of character classification using ctype functions.", - "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", - "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", - "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { - "captainhook": { - "force-install": true + "branch-alias": { + "dev-main": "5.1-dev" } }, "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Ramsey\\Uuid\\": "src/" + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" ], - "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ - "guid", - "identifier", - "uuid" + "export", + "exporter" ], "support": { - "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.3.1" + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" }, "funding": [ { - "url": "https://github.com/ramsey", + "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", - "type": "tidelift" } ], - "time": "2022-03-27T21:42:02+00:00" + "time": "2023-09-24T13:22:09+00:00" }, { - "name": "sabberworm/php-css-parser", - "version": "8.4.0", + "name": "sebastian/global-state", + "version": "6.0.1", "source": { "type": "git", - "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", - "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30", - "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", "shasum": "" }, "require": { - "ext-iconv": "*", - "php": ">=5.6.20" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "codacy/coverage": "^1.4", - "phpunit/phpunit": "^4.8.36" - }, - "suggest": { - "ext-mbstring": "for parsing UTF-8 CSS" + "ext-dom": "*", + "phpunit/phpunit": "^10.0" }, "type": "library", - "autoload": { - "psr-4": { - "Sabberworm\\CSS\\": "src/" + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Raphael Schweikert" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Parser for CSS Files written in PHP", - "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "css", - "parser", - "stylesheet" + "global state" ], "support": { - "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", - "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0" + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" }, - "time": "2021-12-11T13:40:54+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-07-19T07:19:23+00:00" }, { - "name": "sebastian/cli-parser", - "version": "1.0.1", + "name": "sebastian/lines-of-code", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "php": ">=7.3" + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "2.0-dev" } }, "autoload": { @@ -5810,11 +5954,12 @@ "role": "lead" } ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -5822,32 +5967,34 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { - "name": "sebastian/code-unit", - "version": "1.0.8", + "name": "sebastian/object-enumerator", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -5862,15 +6009,14 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" }, "funding": [ { @@ -5878,32 +6024,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2023-02-03T07:08:32+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "name": "sebastian/object-reflector", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -5921,11 +6067,11 @@ "email": "sebastian@phpunit.de" } ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" }, "funding": [ { @@ -5933,34 +6079,32 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2023-02-03T07:06:18+00:00" }, { - "name": "sebastian/comparator", - "version": "4.0.6", + "name": "sebastian/recursion-context", + "version": "5.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -5982,24 +6126,15 @@ "email": "whatthejeff@gmail.com" }, { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" }, "funding": [ { @@ -6007,33 +6142,32 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2023-02-03T07:05:40+00:00" }, { - "name": "sebastian/complexity", - "version": "2.0.2", + "name": "sebastian/type", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6052,11 +6186,11 @@ "role": "lead" } ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" }, "funding": [ { @@ -6064,33 +6198,29 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-02-03T07:10:45+00:00" }, { - "name": "sebastian/diff", - "version": "4.0.4", + "name": "sebastian/version", + "version": "4.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", "shasum": "" }, "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -6105,24 +6235,15 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" }, "funding": [ { @@ -6130,656 +6251,866 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2023-02-07T11:34:05+00:00" }, { - "name": "sebastian/environment", - "version": "5.1.4", + "name": "silber/bouncer", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + "url": "https://github.com/JosephSilber/bouncer.git", + "reference": "502221b6724fe806aa01ffe08070edaa10222101" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/502221b6724fe806aa01ffe08070edaa10222101", + "reference": "502221b6724fe806aa01ffe08070edaa10222101", "shasum": "" }, "require": { - "php": ">=7.3" + "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" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "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" }, "suggest": { - "ext-posix": "*" + "illuminate/console": "Allows running the bouncer:clean artisan command", + "illuminate/events": "Required for multi-tenancy support" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "5.1-dev" + "laravel": { + "providers": [ + "Silber\\Bouncer\\BouncerServiceProvider" + ], + "aliases": { + "Bouncer": "Silber\\Bouncer\\BouncerFacade" + } } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Silber\\Bouncer\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Joseph Silber", + "email": "contact@josephsilber.com" + } + ], + "description": "Eloquent roles and abilities.", + "keywords": [ + "abilities", + "acl", + "capabilities", + "eloquent", + "laravel", + "permissions", + "roles" + ], + "support": { + "issues": "https://github.com/JosephSilber/bouncer/issues", + "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.1" + }, + "time": "2023-02-10T16:47:25+00:00" + }, + { + "name": "spatie/db-dumper", + "version": "3.4.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/db-dumper.git", + "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/db-dumper/zipball/59beef7ad612ca7463dfddb64de6e038eb59e0d7", + "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7", + "shasum": "" + }, + "require": { + "php": "^8.0", + "symfony/process": "^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\DbDumper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "Dump databases", + "homepage": "https://github.com/spatie/db-dumper", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "database", + "db-dumper", + "dump", + "mysqldump", + "spatie" ], "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + "source": "https://github.com/spatie/db-dumper/tree/3.4.2" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2022-04-03T09:37:03+00:00" + "time": "2023-12-25T11:42:15+00:00" }, { - "name": "sebastian/exporter", - "version": "4.0.4", + "name": "spatie/dropbox-api", + "version": "1.22.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "url": "https://github.com/spatie/dropbox-api.git", + "reference": "5b012d68568a560d1cd8888c0be2c2805c4b7c65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/spatie/dropbox-api/zipball/5b012d68568a560d1cd8888c0be2c2805c4b7c65", + "reference": "5b012d68568a560d1cd8888c0be2c2805c4b7c65", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-json": "*", + "graham-campbell/guzzle-factory": "^4.0.2|^5.0|^6.0|^7.0", + "guzzlehttp/guzzle": "^6.2|^7.0", + "php": "^8.1" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "laravel/pint": "^1.10.1", + "phpstan/phpstan": "^1.10.16", + "phpunit/phpunit": "^9.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\Dropbox\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Alex Vanderbist", + "email": "alex.vanderbist@gmail.com", + "homepage": "https://spatie.be", + "role": "Developer" }, { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", + "description": "A minimal implementation of Dropbox API v2", + "homepage": "https://github.com/spatie/dropbox-api", "keywords": [ - "export", - "exporter" + "Dropbox-API", + "api", + "dropbox", + "spatie", + "v2" ], "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "issues": "https://github.com/spatie/dropbox-api/issues", + "source": "https://github.com/spatie/dropbox-api/tree/1.22.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2023-06-08T07:13:00+00:00" }, { - "name": "sebastian/global-state", - "version": "5.0.5", + "name": "spatie/flysystem-dropbox", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "url": "https://github.com/spatie/flysystem-dropbox.git", + "reference": "766879111204a6e49412b5ff5989a6654e1b8ae0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/spatie/flysystem-dropbox/zipball/766879111204a6e49412b5ff5989a6654e1b8ae0", + "reference": "766879111204a6e49412b5ff5989a6654e1b8ae0", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "league/flysystem": "^3.7.0", + "php": "^8.0", + "spatie/dropbox-api": "^1.17.1" }, "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "pestphp/pest": "^1.22", + "phpspec/prophecy-phpunit": "^2.0.1", + "phpunit/phpunit": "^9.5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\FlysystemDropbox\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Alex Vanderbist", + "email": "alex.vanderbist@gmail.com", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "Flysystem Adapter for the Dropbox v2 API", + "homepage": "https://github.com/spatie/flysystem-dropbox", "keywords": [ - "global state" + "Flysystem", + "api", + "dropbox", + "flysystem-dropbox", + "spatie", + "v2" ], "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "issues": "https://github.com/spatie/flysystem-dropbox/issues", + "source": "https://github.com/spatie/flysystem-dropbox/tree/3.0.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2023-07-17T07:48:52+00:00" }, { - "name": "sebastian/lines-of-code", - "version": "1.0.3", + "name": "spatie/image", + "version": "2.2.7", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "url": "https://github.com/spatie/image.git", + "reference": "2f802853aab017aa615224daae1588054b5ab20e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/spatie/image/zipball/2f802853aab017aa615224daae1588054b5ab20e", + "reference": "2f802853aab017aa615224daae1588054b5ab20e", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" + "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" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5", + "symfony/var-dumper": "^4.0|^5.0|^6.0", + "vimeo/psalm": "^4.6" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\Image\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "description": "Manipulate images with an expressive API", + "homepage": "https://github.com/spatie/image", + "keywords": [ + "image", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "source": "https://github.com/spatie/image/tree/2.2.7" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-07-24T13:54:13+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "4.0.4", + "name": "spatie/image-optimizer", + "version": "1.7.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2023-11-03T10:08:02+00:00" }, { - "name": "sebastian/object-reflector", - "version": "2.0.4", + "name": "spatie/laravel-backup", + "version": "8.6.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "url": "https://github.com/spatie/laravel-backup.git", + "reference": "c6a7607c0eea80efc2cf6628ffcd172f73a2088f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/c6a7607c0eea80efc2cf6628ffcd172f73a2088f", + "reference": "c6a7607c0eea80efc2cf6628ffcd172f73a2088f", "shasum": "" }, "require": { - "php": ">=7.3" + "ext-zip": "^1.14.0", + "illuminate/console": "^10.10.0|^11.0", + "illuminate/contracts": "^10.10.0|^11.0", + "illuminate/events": "^10.10.0|^11.0", + "illuminate/filesystem": "^10.10.0|^11.0", + "illuminate/notifications": "^10.10.0|^11.0", + "illuminate/support": "^10.10.0|^11.0", + "league/flysystem": "^3.0", + "php": "^8.1", + "spatie/db-dumper": "^3.0", + "spatie/laravel-package-tools": "^1.6.2", + "spatie/laravel-signal-aware-command": "^1.2|^2.0", + "spatie/temporary-directory": "^2.0", + "symfony/console": "^6.0|^7.0", + "symfony/finder": "^6.0|^7.0" + }, + "require-dev": { + "composer-runtime-api": "^2.0", + "ext-pcntl": "*", + "larastan/larastan": "^2.7.0", + "laravel/slack-notification-channel": "^2.5|^3.0", + "league/flysystem-aws-s3-v3": "^2.0|^3.0", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.1" }, - "require-dev": { - "phpunit/phpunit": "^9.3" + "suggest": { + "laravel/slack-notification-channel": "Required for sending notifications via Slack" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.0-dev" + "laravel": { + "providers": [ + "Spatie\\Backup\\BackupServiceProvider" + ] } }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/Helpers/functions.php" + ], + "psr-4": { + "Spatie\\Backup\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "description": "A Laravel package to backup your application", + "homepage": "https://github.com/spatie/laravel-backup", + "keywords": [ + "backup", + "database", + "laravel-backup", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "issues": "https://github.com/spatie/laravel-backup/issues", + "source": "https://github.com/spatie/laravel-backup/tree/8.6.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/sponsors/spatie", "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2024-02-06T20:39:11+00:00" }, { - "name": "sebastian/recursion-context", - "version": "4.0.4", + "name": "spatie/laravel-medialibrary", + "version": "10.15.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "url": "https://github.com/spatie/laravel-medialibrary.git", + "reference": "f464c82357500c5c68ea350edff35ed9831fd48e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/f464c82357500c5c68ea350edff35ed9831fd48e", + "reference": "f464c82357500c5c68ea350edff35ed9831fd48e", "shasum": "" }, "require": { - "php": ">=7.3" + "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" + }, + "conflict": { + "php-ffmpeg/php-ffmpeg": "<0.6.1" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "aws/aws-sdk-php": "^3.133.11", + "doctrine/dbal": "^2.13", + "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" + }, + "suggest": { + "league/flysystem-aws-s3-v3": "Required to use AWS S3 file storage", + "php-ffmpeg/php-ffmpeg": "Required for generating video thumbnails", + "spatie/pdf-to-image": "Required for generating thumbnails of PDFs and SVGs" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "4.0-dev" + "laravel": { + "providers": [ + "Spatie\\MediaLibrary\\MediaLibraryServiceProvider" + ] } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\MediaLibrary\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "description": "Associate files with Eloquent models", + "homepage": "https://github.com/spatie/laravel-medialibrary", + "keywords": [ + "cms", + "conversion", + "downloads", + "images", + "laravel", + "laravel-medialibrary", + "media", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "issues": "https://github.com/spatie/laravel-medialibrary/issues", + "source": "https://github.com/spatie/laravel-medialibrary/tree/10.15.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2023-11-03T13:09:19+00:00" }, { - "name": "sebastian/resource-operations", - "version": "3.0.3", + "name": "spatie/laravel-package-tools", + "version": "1.16.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", "shasum": "" }, "require": { - "php": ">=7.3" + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-01-11T08:43:00+00:00" }, { - "name": "sebastian/type", - "version": "3.0.0", + "name": "spatie/laravel-signal-aware-command", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + "url": "https://github.com/spatie/laravel-signal-aware-command.git", + "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/46cda09a85aef3fd47fb73ddc7081f963e255571", + "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571", "shasum": "" }, "require": { - "php": ">=7.3" + "illuminate/contracts": "^8.35|^9.0|^10.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.4.3" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "brianium/paratest": "^6.2", + "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", + "spatie/laravel-ray": "^1.17" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.0-dev" + "laravel": { + "providers": [ + "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider" + ], + "aliases": { + "Signal": "Spatie\\SignalAwareCommand\\Facades\\Signal" + } } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\SignalAwareCommand\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" } ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", + "description": "Handle signals in artisan commands", + "homepage": "https://github.com/spatie/laravel-signal-aware-command", + "keywords": [ + "laravel", + "laravel-signal-aware-command", + "spatie" + ], "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" + "issues": "https://github.com/spatie/laravel-signal-aware-command/issues", + "source": "https://github.com/spatie/laravel-signal-aware-command/tree/1.3.0" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2022-03-15T09:54:48+00:00" + "time": "2023-01-14T21:10:59+00:00" }, { - "name": "sebastian/version", - "version": "3.0.2", + "name": "spatie/temporary-directory", + "version": "2.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", "shasum": "" }, "require": { - "php": ">=7.3" + "php": "^8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "require-dev": { + "phpunit/phpunit": "^9.5" }, + "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" }, "funding": [ { - "url": "https://github.com/sebastianbergmann", + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2023-12-25T11:46:58+00:00" }, { - "name": "silber/bouncer", - "version": "v1.0.0-rc.10", + "name": "symfony/console", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/JosephSilber/bouncer.git", - "reference": "429262a84414569be2fad1fad417f05d752c075b" + "url": "https://github.com/symfony/console.git", + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JosephSilber/bouncer/zipball/429262a84414569be2fad1fad417f05d752c075b", - "reference": "429262a84414569be2fad1fad417f05d752c075b", + "url": "https://api.github.com/repos/symfony/console/zipball/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", "shasum": "" }, "require": { - "illuminate/auth": "^6.0|^7.0|^8.0", - "illuminate/cache": "^6.0|^7.0|^8.0", - "illuminate/container": "^6.0|^7.0|^8.0", - "illuminate/contracts": "^6.0|^7.0|^8.0", - "illuminate/database": "^6.0|^7.0|^8.0", - "php": "^7.2|^8.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" }, - "require-dev": { - "illuminate/console": "^6.0|^7.0|^8.0", - "illuminate/events": "^6.0|^7.0|^8.0", - "larapack/dd": "^1.1", - "mockery/mockery": "^1.3.3", - "phpunit/phpunit": "^8.0|^9.0" + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, - "suggest": { - "illuminate/console": "Allows running the bouncer:clean artisan command", - "illuminate/events": "Required for multi-tenancy support" + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Silber\\Bouncer\\BouncerServiceProvider" - ], - "aliases": { - "Bouncer": "Silber\\Bouncer\\BouncerFacade" - } - } + "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/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" }, + "type": "library", "autoload": { "psr-4": { - "Silber\\Bouncer\\": "src/" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6787,52 +7118,66 @@ ], "authors": [ { - "name": "Joseph Silber", - "email": "contact@josephsilber.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Eloquent roles and abilities.", + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", "keywords": [ - "abilities", - "acl", - "capabilities", - "eloquent", - "laravel", - "permissions", - "roles" + "cli", + "command-line", + "console", + "terminal" ], "support": { - "issues": "https://github.com/JosephSilber/bouncer/issues", - "source": "https://github.com/JosephSilber/bouncer/tree/v1.0.0-rc.10" + "source": "https://github.com/symfony/console/tree/v6.4.3" }, - "time": "2020-12-08T15:31:20+00:00" + "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-01-23T14:51:35+00:00" }, { - "name": "spatie/db-dumper", - "version": "2.21.1", + "name": "symfony/css-selector", + "version": "v7.0.3", "source": { "type": "git", - "url": "https://github.com/spatie/db-dumper.git", - "reference": "05e5955fb882008a8947c5a45146d86cfafa10d1" + "url": "https://github.com/symfony/css-selector.git", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/db-dumper/zipball/05e5955fb882008a8947c5a45146d86cfafa10d1", - "reference": "05e5955fb882008a8947c5a45146d86cfafa10d1", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { - "php": "^7.2|^8.0", - "symfony/process": "^4.2|^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "php": ">=8.2" }, "type": "library", "autoload": { "psr-4": { - "Spatie\\DbDumper\\": "src" - } + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6840,134 +7185,145 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Dump databases", - "homepage": "https://github.com/spatie/db-dumper", - "keywords": [ - "database", - "db-dumper", - "dump", - "mysqldump", - "spatie" - ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/db-dumper/issues", - "source": "https://github.com/spatie/db-dumper/tree/2.21.1" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { - "url": "https://github.com/spatie", + "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": "2021-02-24T14:56:42+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { - "name": "spatie/dropbox-api", - "version": "1.20.1", + "name": "symfony/deprecation-contracts", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/spatie/dropbox-api.git", - "reference": "f7563632fa6e4970b895805169688be273fcbf19" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/dropbox-api/zipball/f7563632fa6e4970b895805169688be273fcbf19", - "reference": "f7563632fa6e4970b895805169688be273fcbf19", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { - "graham-campbell/guzzle-factory": "^3.0|^4.0|^5.0", - "guzzlehttp/guzzle": "^6.2|^7.0", - "php": "^7.1|^8.0" - }, - "conflict": { - "guzzlehttp/psr7": "<1.7.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.4" + "php": ">=8.1" }, "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Dropbox\\": "src" + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, + "autoload": { + "files": [ + "function.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Alex Vanderbist", - "email": "alex.vanderbist@gmail.com", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A minimal implementation of Dropbox API v2", - "homepage": "https://github.com/spatie/dropbox-api", - "keywords": [ - "Dropbox-API", - "api", - "dropbox", - "spatie", - "v2" - ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/dropbox-api/issues", - "source": "https://github.com/spatie/dropbox-api/tree/1.20.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { - "url": "https://spatie.be/open-source/support-us", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/spatie", + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2022-03-29T06:41:44+00:00" + "time": "2023-05-23T14:45:45+00:00" }, { - "name": "spatie/flysystem-dropbox", - "version": "1.2.3", + "name": "symfony/error-handler", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/spatie/flysystem-dropbox.git", - "reference": "8b6b072f217343b875316ca6a4203dd59f04207a" + "url": "https://github.com/symfony/error-handler.git", + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flysystem-dropbox/zipball/8b6b072f217343b875316ca6a4203dd59f04207a", - "reference": "8b6b072f217343b875316ca6a4203dd59f04207a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6dc3c76a278b77f01d864a6005d640822c6f26a6", + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6", "shasum": "" }, "require": { - "league/flysystem": "^1.0.20", - "php": "^7.0 || ^8.0", - "spatie/dropbox-api": "^1.1.0" + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" }, "require-dev": { - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.11 || ^9.4.3" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { - "Spatie\\FlysystemDropbox\\": "src" - } + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6975,62 +7331,79 @@ ], "authors": [ { - "name": "Alex Vanderbist", - "email": "alex.vanderbist@gmail.com", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Flysystem Adapter for the Dropbox v2 API", - "homepage": "https://github.com/spatie/flysystem-dropbox", - "keywords": [ - "Flysystem", - "api", - "dropbox", - "flysystem-dropbox", - "spatie", - "v2" - ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/flysystem-dropbox/issues", - "source": "https://github.com/spatie/flysystem-dropbox/tree/1.2.3" + "source": "https://github.com/symfony/error-handler/tree/v6.4.3" }, - "time": "2020-11-28T22:17:09+00:00" + "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-01-29T15:40:36+00:00" }, { - "name": "spatie/image", - "version": "1.10.6", + "name": "symfony/event-dispatcher", + "version": "v7.0.3", "source": { "type": "git", - "url": "https://github.com/spatie/image.git", - "reference": "897e819848096ea8eee8ed4a3531c6166f9a99e0" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image/zipball/897e819848096ea8eee8ed4a3531c6166f9a99e0", - "reference": "897e819848096ea8eee8ed4a3531c6166f9a99e0", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { - "ext-exif": "*", - "ext-json": "*", - "ext-mbstring": "*", - "league/glide": "^1.6", - "php": "^7.2|^8.0", - "spatie/image-optimizer": "^1.1", - "spatie/temporary-directory": "^1.0|^2.0", - "symfony/process": "^3.0|^4.0|^5.0|^6.0" + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { - "phpunit/phpunit": "^8.5.21|^9.5.4", - "symfony/var-dumper": "^4.0|^5.0|^6.0", - "vimeo/psalm": "^4.6" + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { "psr-4": { - "Spatie\\Image\\": "src" - } + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7038,62 +7411,66 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Manipulate images with an expressive API", - "homepage": "https://github.com/spatie/image", - "keywords": [ - "image", - "spatie" - ], + "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": { - "issues": "https://github.com/spatie/image/issues", - "source": "https://github.com/spatie/image/tree/1.10.6" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { - "url": "https://spatie.be/open-source/support-us", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/spatie", + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2021-12-21T10:01:09+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { - "name": "spatie/image-optimizer", - "version": "1.6.2", + "name": "symfony/event-dispatcher-contracts", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/spatie/image-optimizer.git", - "reference": "6db75529cbf8fa84117046a9d513f277aead90a0" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/6db75529cbf8fa84117046a9d513f277aead90a0", - "reference": "6db75529cbf8fa84117046a9d513f277aead90a0", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "php": "^7.3|^8.0", - "psr/log": "^1.0 | ^2.0 | ^3.0", - "symfony/process": "^4.2|^5.0|^6.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.21|^9.4.4", - "symfony/var-dumper": "^4.2|^5.0|^6.0" + "php": ">=8.1", + "psr/event-dispatcher": "^1" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, "autoload": { "psr-4": { - "Spatie\\ImageOptimizer\\": "src" + "Symfony\\Contracts\\EventDispatcher\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -7102,77 +7479,71 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Easily optimize images using PHP", - "homepage": "https://github.com/spatie/image-optimizer", + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", "keywords": [ - "image-optimizer", - "spatie" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.6.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" }, - "time": "2021-12-21T10:08:05+00:00" + "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": "2023-05-23T14:45:45+00:00" }, { - "name": "spatie/laravel-backup", - "version": "6.16.5", + "name": "symfony/finder", + "version": "v6.4.0", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-backup.git", - "reference": "332fae80b12cacb9e4161824ba195d984b28c8fb" + "url": "https://github.com/symfony/finder.git", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/332fae80b12cacb9e4161824ba195d984b28c8fb", - "reference": "332fae80b12cacb9e4161824ba195d984b28c8fb", + "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", "shasum": "" }, "require": { - "ext-zip": "^1.14.0", - "illuminate/console": "^6.0|^7.0|^8.0", - "illuminate/contracts": "^6.0|^7.0|^8.0", - "illuminate/events": "^6.0|^7.0|^8.0", - "illuminate/filesystem": "^6.0|^7.0|^8.0", - "illuminate/notifications": "^6.0|^7.0|^8.0", - "illuminate/support": "^6.0|^7.0|^8.0", - "league/flysystem": "^1.0.49", - "php": "^7.3|^8.0", - "spatie/db-dumper": "^2.12", - "spatie/temporary-directory": "^1.1", - "symfony/finder": "^4.2|^5.0" + "php": ">=8.1" }, "require-dev": { - "laravel/slack-notification-channel": "^2.3", - "league/flysystem-aws-s3-v3": "^1.0", - "mockery/mockery": "^1.4.2", - "orchestra/testbench": "4.*|5.*|6.*", - "phpunit/phpunit": "^8.4|^9.0" - }, - "suggest": { - "laravel/slack-notification-channel": "Required for sending notifications via Slack" + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\Backup\\BackupServiceProvider" - ] - } - }, "autoload": { - "files": [ - "src/Helpers/functions.php" - ], "psr-4": { - "Spatie\\Backup\\": "src" - } + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7180,99 +7551,76 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A Laravel package to backup your application", - "homepage": "https://github.com/spatie/laravel-backup", - "keywords": [ - "backup", - "database", - "laravel-backup", - "spatie" - ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/laravel-backup/issues", - "source": "https://github.com/spatie/laravel-backup/tree/6.16.5" + "source": "https://github.com/symfony/finder/tree/v6.4.0" }, "funding": [ { - "url": "https://github.com/sponsors/spatie", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://spatie.be/open-source/support-us", - "type": "other" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2021-09-12T10:04:18+00:00" + "time": "2023-10-31T17:30:12+00:00" }, { - "name": "spatie/laravel-medialibrary", - "version": "8.10.2", + "name": "symfony/http-foundation", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "448e8389cadc79f42c3c96c7c9491b57015702d4" + "url": "https://github.com/symfony/http-foundation.git", + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/448e8389cadc79f42c3c96c7c9491b57015702d4", - "reference": "448e8389cadc79f42c3c96c7c9491b57015702d4", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5677bdf7cade4619cb17fc9e1e7b31ec392244a9", + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "ext-json": "*", - "illuminate/bus": "^6.18|^7.0|^8.0", - "illuminate/console": "^6.18|^7.0|^8.0", - "illuminate/database": "^6.18|^7.0|^8.0", - "illuminate/pipeline": "^6.18|^7.0|^8.0", - "illuminate/support": "^6.18|^7.0|^8.0", - "league/flysystem": "^1.0.64", - "maennchen/zipstream-php": "^1.0|^2.0", - "php": "^7.4|^8.0", - "spatie/image": "^1.4.0", - "spatie/temporary-directory": "^1.1", - "symfony/console": "^4.4|^5.0" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" }, "conflict": { - "php-ffmpeg/php-ffmpeg": "<0.6.1" + "symfony/cache": "<6.3" }, "require-dev": { - "aws/aws-sdk-php": "^3.133.11", - "doctrine/dbal": "^2.5.2", - "ext-pdo_sqlite": "*", - "ext-zip": "*", - "guzzlehttp/guzzle": "^6.3|^7.0", - "league/flysystem-aws-s3-v3": "^1.0.23", - "mockery/mockery": "^1.3", - "orchestra/testbench": "^4.0|^5.0|^6.0", - "php-ffmpeg/php-ffmpeg": "^0.17.0", - "phpunit/phpunit": "^9.1", - "spatie/pdf-to-image": "^2.0", - "spatie/phpunit-snapshot-assertions": "^4.0" - }, - "suggest": { - "league/flysystem-aws-s3-v3": "Required to use AWS S3 file storage", - "php-ffmpeg/php-ffmpeg": "Required for generating video thumbnails", - "spatie/pdf-to-image": "Required for generating thumbsnails of PDFs and SVGs" + "doctrine/dbal": "^2.13.1|^3|^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" }, "type": "library", - "extra": { - "laravel": { - "providers": [ - "Spatie\\MediaLibrary\\MediaLibraryServiceProvider" - ] - } - }, "autoload": { "psr-4": { - "Spatie\\MediaLibrary\\": "src" - } + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7280,69 +7628,112 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Associate files with Eloquent models", - "homepage": "https://github.com/spatie/laravel-medialibrary", - "keywords": [ - "cms", - "conversion", - "downloads", - "images", - "laravel", - "laravel-medialibrary", - "media", - "spatie" - ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/8.10.2" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.3" }, "funding": [ { - "url": "https://spatie.be/open-source/support-us", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/spatie", + "url": "https://github.com/fabpot", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2021-05-22T09:23:57+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { - "name": "spatie/laravel-package-tools", - "version": "1.11.3", + "name": "symfony/http-kernel", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "baeb3df0ebb3a541394fdaf8cbe6115bf4034a59" + "url": "https://github.com/symfony/http-kernel.git", + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/baeb3df0ebb3a541394fdaf8cbe6115bf4034a59", - "reference": "baeb3df0ebb3a541394fdaf8cbe6115bf4034a59", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9c6ec4e543044f7568a53a76ab1484ecd30637a2", + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0|^8.0|^9.0", - "php": "^7.4|^8.0" + "php": ">=8.1", + "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/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/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "mockery/mockery": "^1.4", - "orchestra/testbench": "^5.0|^6.23|^7.0", - "phpunit/phpunit": "^9.4", - "spatie/test-time": "^1.2" + "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/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/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/serializer": "^6.3|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-exporter": "^6.2|^7.0", + "twig/twig": "^2.13|^3.0.4" }, "type": "library", "autoload": { "psr-4": { - "Spatie\\LaravelPackageTools\\": "src" - } + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7350,54 +7741,79 @@ ], "authors": [ { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Tools for creating Laravel packages", - "homepage": "https://github.com/spatie/laravel-package-tools", - "keywords": [ - "laravel-package-tools", - "spatie" - ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.11.3" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.3" }, "funding": [ { - "url": "https://github.com/spatie", + "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": "2022-03-15T20:01:36+00:00" + "time": "2024-01-31T07:21:29+00:00" }, { - "name": "spatie/temporary-directory", - "version": "1.3.0", + "name": "symfony/mailer", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/spatie/temporary-directory.git", - "reference": "f517729b3793bca58f847c5fd383ec16f03ffec6" + "url": "https://github.com/symfony/mailer.git", + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/f517729b3793bca58f847c5fd383ec16f03ffec6", - "reference": "f517729b3793bca58f847c5fd383ec16f03ffec6", + "url": "https://api.github.com/repos/symfony/mailer/zipball/74412c62f88a85a41b61f0b71ab0afcaad6f03ee", + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "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/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" }, "require-dev": { - "phpunit/phpunit": "^8.0|^9.0" + "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" }, "type": "library", "autoload": { "psr-4": { - "Spatie\\TemporaryDirectory\\": "src" - } + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7405,62 +7821,78 @@ ], "authors": [ { - "name": "Alex Vanderbist", - "email": "alex@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Easily create, use and destroy temporary directories", - "homepage": "https://github.com/spatie/temporary-directory", - "keywords": [ - "php", - "spatie", - "temporary-directory" - ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/1.3.0" + "source": "https://github.com/symfony/mailer/tree/v6.4.3" }, - "time": "2020-11-09T15:54:21+00:00" + "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-01-29T15:01:07+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v6.3.0", + "name": "symfony/mime", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + "url": "https://github.com/symfony/mime.git", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", "shasum": "" }, "require": { - "egulias/email-validator": "^2.0|^3.1", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, - "require-dev": { - "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.4" + "conflict": { + "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.3.2" }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses" + "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/property-access": "^5.4|^6.0|^7.0", + "symfony/property-info": "^5.4|^6.0|^7.0", + "symfony/serializer": "^6.3.2|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, "autoload": { - "files": [ - "lib/swift_required.php" + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7468,95 +7900,77 @@ "MIT" ], "authors": [ - { - "name": "Chris Corbyn" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", "keywords": [ - "email", - "mail", - "mailer" + "mime", + "mime-type" ], "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + "source": "https://github.com/symfony/mime/tree/v6.4.3" }, "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, { "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "abandoned": "symfony/mailer", - "time": "2021-10-18T15:26:12+00:00" + "time": "2024-01-30T08:32:12+00:00" }, { - "name": "symfony/console", - "version": "v5.4.9", + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/829d5d1bf60b2efeb0887b7436873becc71a45eb", - "reference": "829d5d1bf60b2efeb0887b7436873becc71a45eb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" - }, - "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "php": ">=7.1" }, "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "ext-ctype": "*" }, "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "ext-ctype": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7564,24 +7978,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", + "description": "Symfony polyfill for ctype functions", "homepage": "https://symfony.com", "keywords": [ - "cli", - "command line", - "console", - "terminal" + "compatibility", + "ctype", + "polyfill", + "portable" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.9" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -7597,33 +8011,42 @@ "type": "tidelift" } ], - "time": "2022-05-18T06:17:34+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/css-selector", - "version": "v6.0.3", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "1955d595c12c111629cc814d3f2a2ff13580508a" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1955d595c12c111629cc814d3f2a2ff13580508a", - "reference": "1955d595c12c111629cc814d3f2a2ff13580508a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7631,22 +8054,26 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Converts CSS selectors to XPath expressions", + "description": "Symfony polyfill for intl's grapheme_* functions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.0.3" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -7662,39 +8089,44 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/deprecation-contracts", - "version": "v3.0.1", + "name": "symfony/polyfill-intl-idn", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", - "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "files": [ - "function.php" - ] + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7702,18 +8134,30 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "A generic function and convention to trigger deprecation notices", + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -7729,42 +8173,44 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/error-handler", - "version": "v5.4.9", + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "c116cda1f51c678782768dce89a45f13c949455d" + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c116cda1f51c678782768dce89a45f13c949455d", - "reference": "c116cda1f51c678782768dce89a45f13c949455d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "php": ">=7.1" }, - "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "suggest": { + "ext-intl": "For best performance" }, - "bin": [ - "Resources/bin/patch-type-declarations" - ], "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7773,18 +8219,26 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to manage errors and ease debugging PHP code", + "description": "Symfony polyfill for intl's Normalizer class and related functions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.9" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -7800,55 +8254,45 @@ "type": "tidelift" } ], - "time": "2022-05-21T13:57:48+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v6.0.9", + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "5c85b58422865d42c6eb46f7693339056db098a8" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8", - "reference": "5c85b58422865d42c6eb46f7693339056db098a8", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/event-dispatcher-contracts": "^2|^3" - }, - "conflict": { - "symfony/dependency-injection": "<5.4" + "php": ">=7.1" }, "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/error-handler": "^5.4|^6.0", - "symfony/expression-language": "^5.4|^6.0", - "symfony/http-foundation": "^5.4|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^5.4|^6.0" + "ext-mbstring": "*" }, "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "ext-mbstring": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7856,18 +8300,25 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "description": "Symfony polyfill for the Mbstring extension", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.9" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -7883,42 +8334,38 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:52+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.0.1", + "name": "symfony/polyfill-php72", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", - "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { - "php": ">=8.0.2", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" + "php": ">=7.1" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" + "Symfony\\Polyfill\\Php72\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -7935,18 +8382,16 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to dispatching event", + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.1" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -7962,34 +8407,41 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/finder", - "version": "v5.4.8", + "name": "symfony/polyfill-php80", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", - "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=7.1" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\Finder\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7998,18 +8450,28 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.8" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -8025,44 +8487,42 @@ "type": "tidelift" } ], - "time": "2022-04-15T08:07:45+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/http-foundation", - "version": "v5.4.9", + "name": "symfony/polyfill-php83", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "6b0d0e4aca38d57605dcd11e2416994b38774522" + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6b0d0e4aca38d57605dcd11e2416994b38774522", - "reference": "6b0d0e4aca38d57605dcd11e2416994b38774522", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0" - }, - "suggest": { - "symfony/mime": "To use the file extension guesser" + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" + "Symfony\\Polyfill\\Php83\\": "" }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "Resources/stubs" ] }, "notification-url": "https://packagist.org/downloads/", @@ -8071,18 +8531,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Defines an object-oriented layer for the HTTP specification", + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.9" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -8098,84 +8564,45 @@ "type": "tidelift" } ], - "time": "2022-05-17T15:07:29+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/http-kernel", - "version": "v5.4.9", + "name": "symfony/polyfill-uuid", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "34b121ad3dc761f35fe1346d2f15618f8cbf77f8" + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/34b121ad3dc761f35fe1346d2f15618f8cbf77f8", - "reference": "34b121ad3dc761f35fe1346d2f15618f8cbf77f8", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", - "twig/twig": "<2.13" + "php": ">=7.1" }, "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", - "twig/twig": "^2.13|^3.0.4" + "ext-uuid": "*" }, "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" + "ext-uuid": "For best performance" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Symfony\\Polyfill\\Uuid\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8183,18 +8610,24 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a structured process for converting a Request into a Response", + "description": "Symfony polyfill for uuid functions", "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.9" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -8210,47 +8643,29 @@ "type": "tidelift" } ], - "time": "2022-05-27T07:09:08+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "symfony/mime", - "version": "v5.4.9", + "name": "symfony/process", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "2b3802a24e48d0cfccf885173d2aac91e73df92e" + "url": "https://github.com/symfony/process.git", + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/2b3802a24e48d0cfccf885173d2aac91e73df92e", - "reference": "2b3802a24e48d0cfccf885173d2aac91e73df92e", + "url": "https://api.github.com/repos/symfony/process/zipball/31642b0818bfcff85930344ef93193f8c607e0a3", + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "php": ">=8.1" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Mime\\": "" + "Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -8270,14 +8685,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows manipulating MIME messages", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.9" + "source": "https://github.com/symfony/process/tree/v6.4.3" }, "funding": [ { @@ -8293,48 +8704,49 @@ "type": "tidelift" } ], - "time": "2022-05-21T10:24:18+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "name": "symfony/routing", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "url": "https://github.com/symfony/routing.git", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, - "provide": { - "ext-ctype": "*" + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" }, - "suggest": { - "ext-ctype": "For best performance" + "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" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8342,24 +8754,24 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "router", + "routing", + "uri", + "url" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/routing/tree/v6.4.3" }, "funding": [ { @@ -8375,48 +8787,46 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-30T13:55:02+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.26.0", + "name": "symfony/service-contracts", + "version": "v3.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "143f1881e655bebca1312722af8068de235ae5dc" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", - "reference": "143f1881e655bebca1312722af8068de235ae5dc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" + "php": ">=8.1", + "psr/container": "^1.1|^2.0" }, - "suggest": { - "ext-iconv": "For best performance" + "conflict": { + "ext-psr": "<1.1|>=2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "3.4-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8432,17 +8842,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Iconv extension", + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -8458,45 +8869,50 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.26.0", + "name": "symfony/string", + "version": "v7.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "433d05519ce6990bf3530fba6957499d327395c2" + "url": "https://github.com/symfony/string.git", + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", - "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "url": "https://api.github.com/repos/symfony/string/zipball/524aac4a280b90a4420d8d6a040718d0586505ac", + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" }, + "require-dev": { + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8512,18 +8928,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's grapheme_* functions", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ - "compatibility", "grapheme", - "intl", - "polyfill", - "portable", - "shim" + "i18n", + "string", + "unicode", + "utf-8", + "utf8" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + "source": "https://github.com/symfony/string/tree/v7.0.3" }, "funding": [ { @@ -8539,47 +8955,67 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T15:41:16+00:00" }, { - "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "name": "symfony/translation", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "url": "https://github.com/symfony/translation.git", + "reference": "637c51191b6b184184bbf98937702bcf554f7d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04", + "reference": "637c51191b6b184184bbf98937702bcf554f7d04", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" }, - "suggest": { - "ext-intl": "For best performance" + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "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/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/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" }, + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8587,30 +9023,18 @@ ], "authors": [ { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + "source": "https://github.com/symfony/translation/tree/v6.4.3" }, "funding": [ { @@ -8626,47 +9050,41 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-29T13:11:52+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "name": "symfony/translation-contracts", + "version": "v3.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "3.4-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + "Symfony\\Contracts\\Translation\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Test/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -8683,18 +9101,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Generic abstractions related to translation", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -8710,54 +9128,47 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "name": "symfony/uid", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "url": "https://github.com/symfony/uid.git", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/polyfill-uuid": "^1.15" }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -8767,17 +9178,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for the Mbstring extension", + "description": "Provides an object-oriented API to generate and represent UIDs", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "UID", + "ulid", + "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -8793,42 +9202,53 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "name": "symfony/var-dumper", + "version": "v6.4.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "0435a08f69125535336177c29d56af3abc1f69da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0435a08f69125535336177c29d56af3abc1f69da", + "reference": "0435a08f69125535336177c29d56af3abc1f69da", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "symfony/console": "<5.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" }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions/dump.php" ], "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8844,16 +9264,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "debug", + "dump" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.3" }, "funding": [ { @@ -8869,207 +9287,156 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-01-23T14:53:30+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.26.0", + "name": "theseer/tokenizer", + "version": "1.2.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", "shasum": "" }, "require": { - "php": ">=7.1" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "classmap": [ - "Resources/stubs" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/theseer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-11-20T00:12:19+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.2.7", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", "shasum": "" }, - "require": { - "php": ">=7.1" + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "2.2.x-dev" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.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": "2022-05-10T07:21:04+00:00" + "time": "2023-12-08T13:03:43+00:00" }, { - "name": "symfony/polyfill-php81", - "version": "v1.26.0", + "name": "vinkla/hashids", + "version": "11.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + "url": "https://github.com/vinkla/laravel-hashids.git", + "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/5fbdbf21c432a877c281f396dc65da39a910aed2", + "reference": "5fbdbf21c432a877c281f396dc65da39a910aed2", "shasum": "" }, "require": { - "php": ">=7.1" + "graham-campbell/manager": "^5.0", + "hashids/hashids": "^5.0", + "illuminate/contracts": "^10.0", + "illuminate/support": "^10.0", + "php": "^8.1" + }, + "require-dev": { + "graham-campbell/analyzer": "^4.0", + "graham-campbell/testbench": "^6.0", + "mockery/mockery": "^1.5", + "phpunit/phpunit": "^10.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-master": "11.0-dev" }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "laravel": { + "aliases": { + "Hashids": "Vinkla\\Hashids\\Facades\\Hashids" + }, + "providers": [ + "Vinkla\\Hashids\\HashidsServiceProvider" + ] } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Vinkla\\Hashids\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9077,151 +9444,133 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Vincent Klaiber", + "email": "hello@doubledip.se" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "A Hashids bridge for Laravel", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "hashids", + "laravel" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + "issues": "https://github.com/vinkla/laravel-hashids/issues", + "source": "https://github.com/vinkla/laravel-hashids/tree/11.0.0" }, - "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": "2022-05-24T11:49:31+00:00" + "time": "2023-02-26T18:30:57+00:00" }, { - "name": "symfony/process", - "version": "v5.4.8", + "name": "vlucas/phpdotenv", + "version": "v5.6.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", - "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", + "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.2", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.2", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Dotenv\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" } ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], "support": { - "source": "https://github.com/symfony/process/tree/v5.4.8" + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/GrahamCampbell", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", "type": "tidelift" } ], - "time": "2022-04-08T05:07:18+00:00" + "time": "2023-11-12T22:43:29+00:00" }, { - "name": "symfony/routing", - "version": "v5.4.8", + "name": "voku/portable-ascii", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7" + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", - "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" + "php": ">=7.0.0" }, "require-dev": { - "doctrine/annotations": "^1.12", - "psr/log": "^1|^2|^3", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" }, "suggest": { - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" + "ext-intl": "Use Intl for transliterator_transliterate() support" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "voku\\": "src/voku/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9229,79 +9578,79 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" } ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", "keywords": [ - "router", - "routing", - "uri", - "url" + "ascii", + "clean", + "php" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.8" + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", + "url": "https://www.paypal.me/moelleken", "type": "custom" }, { - "url": "https://github.com/fabpot", + "url": "https://github.com/voku", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", "type": "tidelift" } ], - "time": "2022-04-18T21:45:37+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.5.1", + "name": "webmozart/assert", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", - "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { - "ext-psr": "<1.1|>=2" + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" }, - "suggest": { - "symfony/service-implementation": "" + "require-dev": { + "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "1.10-dev" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" + "Webmozart\\Assert\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -9310,84 +9659,79 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "assert", + "check", + "validate" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, - "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": "2022-03-13T20:07:29+00:00" - }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ { - "name": "symfony/string", - "version": "v6.0.9", + "name": "barryvdh/laravel-ide-helper", + "version": "v2.15.1", "source": { "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "df9f03d595aa2d446498ba92fe803a519b2c43cc" + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/df9f03d595aa2d446498ba92fe803a519b2c43cc", - "reference": "df9f03d595aa2d446498ba92fe803a519b2c43cc", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/77831852bb7bc54f287246d32eb91274eaf87f8b", + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.0" + "barryvdh/reflection-docblock": "^2.0.6", + "composer/class-map-generator": "^1.0", + "doctrine/dbal": "^2.6 || ^3.1.4", + "ext-json": "*", + "illuminate/console": "^9 || ^10", + "illuminate/filesystem": "^9 || ^10", + "illuminate/support": "^9 || ^10", + "nikic/php-parser": "^4.18 || ^5", + "php": "^8.0", + "phpdocumentor/type-resolver": "^1.1.0" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0", - "symfony/http-client": "^5.4|^6.0", - "symfony/translation-contracts": "^2.0|^3.0", - "symfony/var-exporter": "^5.4|^6.0" + "ext-pdo_sqlite": "*", + "friendsofphp/php-cs-fixer": "^3", + "illuminate/config": "^9 || ^10", + "illuminate/view": "^9 || ^10", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^7 || ^8", + "phpunit/phpunit": "^9", + "spatie/phpunit-snapshot-assertions": "^4", + "vimeo/psalm": "^5.4" + }, + "suggest": { + "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)." }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.15-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + } + }, "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Barryvdh\\LaravelIdeHelper\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9395,102 +9739,74 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" + "autocomplete", + "codeintel", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.9" + "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.15.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", + "url": "https://fruitcake.nl", "type": "custom" }, { - "url": "https://github.com/fabpot", + "url": "https://github.com/barryvdh", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2024-02-15T14:23:20+00:00" }, { - "name": "symfony/translation", - "version": "v6.0.9", + "name": "barryvdh/reflection-docblock", + "version": "v2.1.1", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "9ba011309943955a3807b8236c17cff3b88f67b6" + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "e6811e927f0ecc37cc4deaa6627033150343e597" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/9ba011309943955a3807b8236c17cff3b88f67b6", - "reference": "9ba011309943955a3807b8236c17cff3b88f67b6", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597", + "reference": "e6811e927f0ecc37cc4deaa6627033150343e597", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.3|^3.0" - }, - "conflict": { - "symfony/config": "<5.4", - "symfony/console": "<5.4", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/twig-bundle": "<5.4", - "symfony/yaml": "<5.4" - }, - "provide": { - "symfony/translation-implementation": "2.3|3.0" + "php": ">=5.3.3" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/finder": "^5.4|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/intl": "^5.4|^6.0", - "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2|^3", - "symfony/yaml": "^5.4|^6.0" + "phpunit/phpunit": "^8.5.14|^9" }, "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "psr-0": { + "Barryvdh": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9498,68 +9814,54 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" } ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.9" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1" }, - "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": "2022-05-06T14:27:17+00:00" + "time": "2023-06-14T05:06:27+00:00" }, { - "name": "symfony/translation-contracts", - "version": "v3.0.1", + "name": "beyondcode/laravel-dump-server", + "version": "1.9.0", "source": { "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9" + "url": "https://github.com/beyondcode/laravel-dump-server.git", + "reference": "1f2452617afc64e47b3cf49978beb7beeef084df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9", - "reference": "c4183fc3ef0f0510893cbeedc7718fb5cafc9ac9", + "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/1f2452617afc64e47b3cf49978beb7beeef084df", + "reference": "1f2452617afc64e47b3cf49978beb7beeef084df", "shasum": "" }, "require": { - "php": ">=8.0.2" + "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", + "php": ">=7.2.5", + "symfony/var-dumper": "^5.0|^6.0" }, - "suggest": { - "symfony/translation-implementation": "" + "require-dev": { + "larapack/dd": "^1.0", + "phpunit/phpunit": "^7.0|^9.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "laravel": { + "providers": [ + "BeyondCode\\DumpServer\\DumpServerServiceProvider" + ] } }, "autoload": { + "files": [ + "helpers.php" + ], "psr-4": { - "Symfony\\Contracts\\Translation\\": "" + "BeyondCode\\DumpServer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -9568,92 +9870,77 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Marcel Pociot", + "email": "marcel@beyondco.de", + "homepage": "https://beyondco.de", + "role": "Developer" } ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", + "description": "Symfony Var-Dump Server for Laravel", + "homepage": "https://github.com/beyondcode/laravel-dump-server", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "beyondcode", + "laravel-dump-server" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.0.1" + "issues": "https://github.com/beyondcode/laravel-dump-server/issues", + "source": "https://github.com/beyondcode/laravel-dump-server/tree/1.9.0" }, - "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": "2022-01-02T09:55:41+00:00" + "time": "2023-02-15T10:29:26+00:00" }, { - "name": "symfony/var-dumper", - "version": "v5.4.9", + "name": "brianium/paratest", + "version": "v7.4.1", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "af52239a330fafd192c773795520dc2dd62b5657" + "url": "https://github.com/paratestphp/paratest.git", + "reference": "b2830e330011d59a799c0002e118f5b4bbdb9604" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/af52239a330fafd192c773795520dc2dd62b5657", - "reference": "af52239a330fafd192c773795520dc2dd62b5657", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/b2830e330011d59a799c0002e118f5b4bbdb9604", + "reference": "b2830e330011d59a799c0002e118f5b4bbdb9604", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "twig/twig": "^2.13|^3.0.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-simplexml": "*", + "fidry/cpu-core-counter": "^1.0.0", + "jean85/pretty-package-versions": "^2.0.5", + "php": "~8.2.0 || ~8.3.0", + "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", + "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", + "phpunit/php-timer": "^6.0.0 || ^7.0.0", + "phpunit/phpunit": "^10.5.9 || ^11.0.2", + "sebastian/environment": "^6.0.1 || ^7.0.0", + "symfony/console": "^6.4.3 || ^7.0.3", + "symfony/process": "^6.4.3 || ^7.0.3" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0.0", + "ext-pcov": "*", + "ext-posix": "*", + "phpstan/phpstan": "^1.10.57", + "phpstan/phpstan-deprecation-rules": "^1.1.4", + "phpstan/phpstan-phpunit": "^1.3.15", + "phpstan/phpstan-strict-rules": "^1.5.2", + "squizlabs/php_codesniffer": "^3.8.1", + "symfony/filesystem": "^6.4.3 || ^7.0.3" }, "bin": [ - "Resources/bin/var-dump-server" + "bin/paratest", + "bin/paratest.bat", + "bin/paratest_for_phpstorm" ], "type": "library", "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "ParaTest\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -9661,187 +9948,216 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Brian Scaturro", + "email": "scaturrob@gmail.com", + "role": "Developer" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Filippo Tessarotto", + "email": "zoeslam@gmail.com", + "role": "Developer" } ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", + "description": "Parallel testing for PHP", + "homepage": "https://github.com/paratestphp/paratest", "keywords": [ - "debug", - "dump" + "concurrent", + "parallel", + "phpunit", + "testing" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.9" + "issues": "https://github.com/paratestphp/paratest/issues", + "source": "https://github.com/paratestphp/paratest/tree/v7.4.1" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/sponsors/Slamdunk", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" + "url": "https://paypal.me/filippotessarotto", + "type": "paypal" } ], - "time": "2022-05-21T10:24:18+00:00" + "time": "2024-02-06T13:50:28+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.2.1", + "name": "composer/class-map-generator", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "url": "https://github.com/composer/class-map-generator.git", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/filesystem": "^5.4 || ^6", + "symfony/phpunit-bridge": "^5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Composer\\ClassMapGenerator\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "description": "Utilities to scan PHP code and generate class maps.", + "keywords": [ + "classmap" + ], "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "issues": "https://github.com/composer/class-map-generator/issues", + "source": "https://github.com/composer/class-map-generator/tree/1.1.0" }, "funding": [ { - "url": "https://github.com/theseer", + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2023-06-30T13:58:57+00:00" }, { - "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.4", + "name": "composer/pcre", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c" + "url": "https://github.com/composer/pcre.git", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-libxml": "*", - "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { "psr-4": { - "TijsVerkoyen\\CssToInlineStyles\\": "src" + "Composer\\Pcre\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Tijs Verkoyen", - "email": "css_to_inline_styles@verkoyen.eu", - "role": "Developer" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" } ], - "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", - "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], "support": { - "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4" + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.1" }, - "time": "2021-12-08T09:12:39+00:00" + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-10-11T07:11:09+00:00" }, { - "name": "vinkla/hashids", - "version": "9.1.0", + "name": "doctrine/cache", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/vinkla/laravel-hashids.git", - "reference": "cb0086db96cdb49816465adc97e3a024c8ee9767" + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vinkla/laravel-hashids/zipball/cb0086db96cdb49816465adc97e3a024c8ee9767", - "reference": "cb0086db96cdb49816465adc97e3a024c8ee9767", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", "shasum": "" }, "require": { - "graham-campbell/manager": "^4.4", - "hashids/hashids": "^4.1", - "illuminate/contracts": "^8.0", - "illuminate/support": "^8.0", - "php": "^7.3 || ^8.0" + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "graham-campbell/analyzer": "^3.0", - "graham-campbell/testbench": "^5.4", - "mockery/mockery": "^1.3", - "phpunit/phpunit": "^9.3", - "squizlabs/php_codesniffer": "^3.5" + "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", - "extra": { - "branch-alias": { - "dev-master": "9.1-dev" - }, - "laravel": { - "providers": [ - "Vinkla\\Hashids\\HashidsServiceProvider" - ], - "aliases": { - "Hashids": "Vinkla\\Hashids\\Facades\\Hashids" - } - } - }, "autoload": { "psr-4": { - "Vinkla\\Hashids\\": "src/" + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" } }, "notification-url": "https://packagist.org/downloads/", @@ -9850,209 +10166,249 @@ ], "authors": [ { - "name": "Vincent Klaiber", - "email": "hello@doubledip.se" + "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": "A Hashids bridge for Laravel", + "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": [ - "hashids", - "laravel" + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" ], "support": { - "issues": "https://github.com/vinkla/laravel-hashids/issues", - "source": "https://github.com/vinkla/laravel-hashids/tree/9.1.0" + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.0" }, - "time": "2020-11-26T19:38:22+00:00" + "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" }, { - "name": "vlucas/phpdotenv", - "version": "v5.4.1", + "name": "doctrine/dbal", + "version": "3.8.2", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f" + "url": "https://github.com/doctrine/dbal.git", + "reference": "a19a1d05ca211f41089dffcc387733a6875196cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb", + "reference": "a19a1d05ca211f41089dffcc387733a6875196cb", "shasum": "" }, "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "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", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10" + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.1", + "phpstan/phpstan": "1.10.57", + "phpstan/phpstan-strict-rules": "^1.5", + "phpunit/phpunit": "9.6.16", + "psalm/plugin-phpunit": "0.18.4", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.8.1", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", + "vimeo/psalm": "4.30.0" }, "suggest": { - "ext-filter": "Required to use the boolean validator." + "symfony/console": "For helpful console commands such as SQL execution and import of files." }, + "bin": [ + "bin/doctrine-dbal" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, "autoload": { "psr-4": { - "Dotenv\\": "src/" + "Doctrine\\DBAL\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" }, { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" } ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", "keywords": [ - "dotenv", - "env", - "environment" + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" ], "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1" + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.8.2" }, "funding": [ { - "url": "https://github.com/GrahamCampbell", - "type": "github" + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" }, { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", "type": "tidelift" } ], - "time": "2021-12-12T23:22:04+00:00" + "time": "2024-02-12T18:36:36+00:00" }, { - "name": "voku/portable-ascii", - "version": "1.6.1", + "name": "doctrine/deprecations", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { - "php": ">=7.0.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { - "ext-intl": "Use Intl for transliterator_transliterate() support" + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, "type": "library", "autoload": { "psr-4": { - "voku\\": "src/voku/" + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" - } - ], - "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", - "homepage": "https://github.com/voku/portable-ascii", - "keywords": [ - "ascii", - "clean", - "php" - ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "funding": [ - { - "url": "https://www.paypal.me/moelleken", - "type": "custom" - }, - { - "url": "https://github.com/voku", - "type": "github" - }, - { - "url": "https://opencollective.com/portable-ascii", - "type": "open_collective" - }, - { - "url": "https://www.patreon.com/voku", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", - "type": "tidelift" - } - ], - "time": "2022-01-24T18:55:24+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { - "name": "webmozart/assert", - "version": "1.11.0", + "name": "doctrine/event-manager", + "version": "2.0.0", "source": { "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "url": "https://github.com/doctrine/event-manager.git", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", "shasum": "" }, "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" + "php": "^8.1" }, "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" + "doctrine/common": "<2.9" }, "require-dev": { - "phpunit/phpunit": "^8.5.13" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -10061,78 +10417,99 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "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": "Assertions to validate method input/output with nice error messages.", + "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": [ - "assert", - "check", - "validate" + "event", + "event dispatcher", + "event manager", + "event system", + "events" ], "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" }, - "time": "2022-06-03T18:03:27+00:00" - } - ], - "packages-dev": [ + "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": "2022-10-12T20:59:15+00:00" + }, { - "name": "barryvdh/laravel-ide-helper", - "version": "v2.12.3", + "name": "fakerphp/faker", + "version": "v1.23.1", "source": { "type": "git", - "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550" + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/3ba1e2573b38f72107b8aacc4ee177fcab30a550", - "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { - "barryvdh/reflection-docblock": "^2.0.6", - "composer/pcre": "^1 || ^2 || ^3", - "doctrine/dbal": "^2.6 || ^3", - "ext-json": "*", - "illuminate/console": "^8 || ^9", - "illuminate/filesystem": "^8 || ^9", - "illuminate/support": "^8 || ^9", - "nikic/php-parser": "^4.7", - "php": "^7.3 || ^8.0", - "phpdocumentor/type-resolver": "^1.1.0" + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" }, "require-dev": { - "ext-pdo_sqlite": "*", - "friendsofphp/php-cs-fixer": "^2", - "illuminate/config": "^8 || ^9", - "illuminate/view": "^8 || ^9", - "mockery/mockery": "^1.4", - "orchestra/testbench": "^6 || ^7", - "phpunit/phpunit": "^8.5 || ^9", - "spatie/phpunit-snapshot-assertions": "^3 || ^4", - "vimeo/psalm": "^3.12" + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { - "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9)." + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" - ] - } - }, "autoload": { "psr-4": { - "Barryvdh\\LaravelIdeHelper\\": "src" + "Faker\\": "src/Faker/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10141,73 +10518,53 @@ ], "authors": [ { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" + "name": "François Zaninotto" } ], - "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "description": "Faker is a PHP library that generates fake data for you.", "keywords": [ - "autocomplete", - "codeintel", - "helper", - "ide", - "laravel", - "netbeans", - "phpdoc", - "phpstorm", - "sublime" + "data", + "faker", + "fixtures" ], "support": { - "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.12.3" + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" }, - "funding": [ - { - "url": "https://fruitcake.nl", - "type": "custom" - }, - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2022-03-06T14:33:42+00:00" + "time": "2024-01-02T13:46:09+00:00" }, { - "name": "barryvdh/reflection-docblock", - "version": "v2.0.6", + "name": "fidry/cpu-core-counter", + "version": "1.1.0", "source": { "type": "git", - "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~4.0,<4.5" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" }, - "autoload": { - "psr-0": { - "Barryvdh": [ - "src/" - ] + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10216,54 +10573,63 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" }, - "time": "2018-12-13T10:34:14+00:00" + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2024-02-07T09:43:46+00:00" }, { - "name": "beyondcode/laravel-dump-server", - "version": "1.8.0", + "name": "filp/whoops", + "version": "2.15.4", "source": { "type": "git", - "url": "https://github.com/beyondcode/laravel-dump-server.git", - "reference": "33a19c632655c1d4f16c0bc67ce6ba0504116b8a" + "url": "https://github.com/filp/whoops.git", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/33a19c632655c1d4f16c0bc67ce6ba0504116b8a", - "reference": "33a19c632655c1d4f16c0bc67ce6ba0504116b8a", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", "shasum": "" }, "require": { - "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0", - "illuminate/http": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0", - "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0|^8.0|^9.0", - "php": ">=7.2.5", - "symfony/var-dumper": "^5.0|^6.0" + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "require-dev": { - "larapack/dd": "^1.0", - "phpunit/phpunit": "^7.0|^9.3" + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" }, "type": "library", "extra": { - "laravel": { - "providers": [ - "BeyondCode\\DumpServer\\DumpServerServiceProvider" - ] + "branch-alias": { + "dev-master": "2.7-dev" } }, "autoload": { - "files": [ - "helpers.php" - ], "psr-4": { - "BeyondCode\\DumpServer\\": "src" + "Whoops\\": "src/Whoops/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10272,70 +10638,67 @@ ], "authors": [ { - "name": "Marcel Pociot", - "email": "marcel@beyondco.de", - "homepage": "https://beyondco.de", + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", "role": "Developer" } ], - "description": "Symfony Var-Dump Server for Laravel", - "homepage": "https://github.com/beyondcode/laravel-dump-server", + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", "keywords": [ - "beyondcode", - "laravel-dump-server" + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" ], "support": { - "issues": "https://github.com/beyondcode/laravel-dump-server/issues", - "source": "https://github.com/beyondcode/laravel-dump-server/tree/1.8.0" + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.15.4" }, - "time": "2022-02-12T12:37:34+00:00" + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-11-03T12:00:00+00:00" }, { - "name": "brianium/paratest", - "version": "v6.4.4", + "name": "jean85/pretty-package-versions", + "version": "2.0.5", "source": { "type": "git", - "url": "https://github.com/paratestphp/paratest.git", - "reference": "589cdb23728b2a19872945580b95d8aa2c6619da" + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/589cdb23728b2a19872945580b95d8aa2c6619da", - "reference": "589cdb23728b2a19872945580b95d8aa2c6619da", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-simplexml": "*", - "php": "^7.3 || ^8.0", - "phpunit/php-code-coverage": "^9.2.11", - "phpunit/php-file-iterator": "^3.0.6", - "phpunit/php-timer": "^5.0.3", - "phpunit/phpunit": "^9.5.14", - "sebastian/environment": "^5.1.3", - "symfony/console": "^5.4.0 || ^6.0.0", - "symfony/process": "^5.4.0 || ^6.0.0" + "composer-runtime-api": "^2.0.0", + "php": "^7.1|^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0.0", - "ext-posix": "*", - "infection/infection": "^0.26.5", - "malukenho/mcbumpface": "^1.1.5", - "squizlabs/php_codesniffer": "^3.6.2", - "symfony/filesystem": "^v5.4.0 || ^6.0.0", - "vimeo/psalm": "^4.20.0" + "friendsofphp/php-cs-fixer": "^2.17", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^0.12.66", + "phpunit/phpunit": "^7.5|^8.5|^9.4", + "vimeo/psalm": "^4.3" }, - "bin": [ - "bin/paratest" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "autoload": { "psr-4": { - "ParaTest\\": [ - "src/" - ] + "Jean85\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10344,71 +10707,62 @@ ], "authors": [ { - "name": "Brian Scaturro", - "email": "scaturrob@gmail.com", - "role": "Developer" - }, - { - "name": "Filippo Tessarotto", - "email": "zoeslam@gmail.com", - "role": "Developer" + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" } ], - "description": "Parallel testing for PHP", - "homepage": "https://github.com/paratestphp/paratest", + "description": "A library to get pretty versions strings of installed dependencies", "keywords": [ - "concurrent", - "parallel", - "phpunit", - "testing" + "composer", + "package", + "release", + "versions" ], "support": { - "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v6.4.4" + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" }, - "funding": [ - { - "url": "https://github.com/sponsors/Slamdunk", - "type": "github" - }, - { - "url": "https://paypal.me/filippotessarotto", - "type": "paypal" - } - ], - "time": "2022-03-28T07:55:11+00:00" + "time": "2021-10-08T21:21:46+00:00" }, { - "name": "composer/pcre", - "version": "3.0.0", + "name": "laravel/pint", + "version": "v1.13.11", "source": { "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" + "url": "https://github.com/laravel/pint.git", + "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "url": "https://api.github.com/repos/laravel/pint/zipball/60a163c3e7e3346a1dec96d3e6f02e6465452552", + "reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } + "friendsofphp/php-cs-fixer": "^3.49.0", + "illuminate/view": "^10.43.0", + "larastan/larastan": "^2.8.1", + "laravel-zero/framework": "^10.3.0", + "mockery/mockery": "^1.6.7", + "nunomaduro/termwind": "^1.15.1", + "pestphp/pest": "^2.33.6" }, + "bin": [ + "builds/pint" + ], + "type": "project", "autoload": { "psr-4": { - "Composer\\Pcre\\": "src" + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10417,68 +10771,64 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" + "format", + "formatter", + "lint", + "linter", + "php" ], "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.0.0" + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-02-25T20:21:48+00:00" + "time": "2024-02-13T17:20:13+00:00" }, { - "name": "composer/semver", - "version": "3.3.2", + "name": "laravel/sail", + "version": "v1.27.4", "source": { "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "url": "https://github.com/laravel/sail.git", + "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/laravel/sail/zipball/3047e1a157fad968cc5f6e620d5cbe5c0867fffd", + "reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", + "php": "^8.0", + "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10" }, + "bin": [ + "bin/sail" + ], "type": "library", "extra": { - "branch-alias": { - "dev-main": "3.x-dev" + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] } }, "autoload": { "psr-4": { - "Composer\\Semver\\": "src" + "Laravel\\Sail\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10487,77 +10837,72 @@ ], "authors": [ { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", + "description": "Docker files for running a basic Laravel application.", "keywords": [ - "semantic", - "semver", - "validation", - "versioning" + "docker", + "laravel" ], "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2024-02-08T15:24:21+00:00" }, { - "name": "composer/xdebug-handler", - "version": "3.0.3", + "name": "nunomaduro/collision", + "version": "v7.10.0", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "url": "https://github.com/nunomaduro/collision.git", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2", + "reference": "49ec67fa7b002712da8526678abd651c09f375b2", "shasum": "" }, "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" + "filp/whoops": "^2.15.3", + "nunomaduro/termwind": "^1.15.1", + "php": "^8.1.0", + "symfony/console": "^6.3.4" + }, + "conflict": { + "laravel/framework": ">=11.0.0" }, "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "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" }, "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], "psr-4": { - "Composer\\XdebugHandler\\": "src" + "NunoMaduro\\Collision\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10566,67 +10911,114 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Restarts a process without Xdebug.", + "description": "Cli error handling for console/command-line PHP applications.", "keywords": [ - "Xdebug", - "performance" + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" ], "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://www.paypal.com/paypalme/enunomaduro", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/nunomaduro", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2023-10-11T15:45:01+00:00" }, { - "name": "doctrine/annotations", - "version": "1.13.2", + "name": "pestphp/pest", + "version": "v2.34.0", "source": { "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08" + "url": "https://github.com/pestphp/pest.git", + "reference": "602b696348efdf4da83c9719de3062462cc1d146" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08", + "url": "https://api.github.com/repos/pestphp/pest/zipball/602b696348efdf4da83c9719de3062462cc1d146", + "reference": "602b696348efdf4da83c9719de3062462cc1d146", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" + "brianium/paratest": "^7.3.1", + "nunomaduro/collision": "^7.10.0|^8.1.0", + "nunomaduro/termwind": "^1.15.1|^2.0.0", + "pestphp/pest-plugin": "^2.1.1", + "pestphp/pest-plugin-arch": "^2.7.0", + "php": "^8.1.0", + "phpunit/phpunit": "^10.5.10" + }, + "conflict": { + "phpunit/phpunit": ">10.5.10", + "sebastian/exporter": "<5.1.0", + "webmozart/assert": "<1.11.0" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2" + "pestphp/pest-dev-tools": "^2.16.0", + "pestphp/pest-plugin-type-coverage": "^2.8.0", + "symfony/process": "^6.4.0|^7.0.3" }, + "bin": [ + "bin/pest" + ], "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Plugins\\Bail", + "Pest\\Plugins\\Cache", + "Pest\\Plugins\\Coverage", + "Pest\\Plugins\\Init", + "Pest\\Plugins\\Environment", + "Pest\\Plugins\\Help", + "Pest\\Plugins\\Memory", + "Pest\\Plugins\\Only", + "Pest\\Plugins\\Printer", + "Pest\\Plugins\\ProcessIsolation", + "Pest\\Plugins\\Profile", + "Pest\\Plugins\\Retry", + "Pest\\Plugins\\Snapshot", + "Pest\\Plugins\\Verbose", + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Parallel" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, "autoload": { + "files": [ + "src/Functions.php", + "src/Pest.php" + ], "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + "Pest\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10635,380 +11027,341 @@ ], "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": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "description": "The elegant PHP Testing Framework.", "keywords": [ - "annotations", - "docblock", - "parser" + "framework", + "pest", + "php", + "test", + "testing", + "unit" ], "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.2" + "issues": "https://github.com/pestphp/pest/issues", + "source": "https://github.com/pestphp/pest/tree/v2.34.0" }, - "time": "2021-08-05T19:00:23+00:00" + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-02-17T10:06:53+00:00" }, { - "name": "facade/flare-client-php", - "version": "1.9.1", + "name": "pestphp/pest-plugin", + "version": "v2.1.1", "source": { "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed" + "url": "https://github.com/pestphp/pest-plugin.git", + "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e05d2859e08c2567ee38ce8b005d044e72648c0b", + "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b", "shasum": "" }, "require": { - "facade/ignition-contracts": "~1.0", - "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", - "php": "^7.1|^8.0", - "symfony/http-foundation": "^3.3|^4.1|^5.0", - "symfony/mime": "^3.4|^4.0|^5.1", - "symfony/var-dumper": "^3.4|^4.0|^5.0" + "composer-plugin-api": "^2.0.0", + "composer-runtime-api": "^2.2.2", + "php": "^8.1" + }, + "conflict": { + "pestphp/pest": "<2.2.3" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.5.16", - "spatie/phpunit-snapshot-assertions": "^2.0" + "composer/composer": "^2.5.8", + "pestphp/pest": "^2.16.0", + "pestphp/pest-dev-tools": "^2.16.0" }, - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "class": "Pest\\Plugin\\Manager" }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { - "Facade\\FlareClient\\": "src" + "Pest\\Plugin\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Send PHP errors to Flare", - "homepage": "https://github.com/facade/flare-client-php", + "description": "The Pest plugin manager", "keywords": [ - "exception", - "facade", - "flare", - "reporting" + "framework", + "manager", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" ], "support": { - "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.9.1" + "source": "https://github.com/pestphp/pest-plugin/tree/v2.1.1" }, "funding": [ { - "url": "https://github.com/spatie", + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "time": "2021-09-13T12:16:46+00:00" + "time": "2023-08-22T08:40:06+00:00" }, { - "name": "facade/ignition", - "version": "2.17.5", + "name": "pestphp/pest-plugin-arch", + "version": "v2.7.0", "source": { "type": "git", - "url": "https://github.com/facade/ignition.git", - "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c" + "url": "https://github.com/pestphp/pest-plugin-arch.git", + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/1d71996f83c9a5a7807331b8986ac890352b7a0c", - "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/d23b2d7498475354522c3818c42ef355dca3fcda", + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda", "shasum": "" }, "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "facade/flare-client-php": "^1.9.1", - "facade/ignition-contracts": "^1.0.2", - "illuminate/support": "^7.0|^8.0", - "monolog/monolog": "^2.0", - "php": "^7.2.5|^8.0", - "symfony/console": "^5.0", - "symfony/var-dumper": "^5.0" + "nunomaduro/collision": "^7.10.0|^8.1.0", + "pestphp/pest-plugin": "^2.1.1", + "php": "^8.1", + "ta-tikoma/phpunit-architecture-test": "^0.8.4" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "livewire/livewire": "^2.4", - "mockery/mockery": "^1.3", - "orchestra/testbench": "^5.0|^6.0", - "psalm/plugin-laravel": "^1.2" - }, - "suggest": { - "laravel/telescope": "^3.1" + "pestphp/pest": "^2.33.0", + "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Facade\\Ignition\\IgnitionServiceProvider" - ], - "aliases": { - "Flare": "Facade\\Ignition\\Facades\\Flare" - } + "pest": { + "plugins": [ + "Pest\\Arch\\Plugin" + ] } }, "autoload": { "files": [ - "src/helpers.php" + "src/Autoload.php" ], "psr-4": { - "Facade\\Ignition\\": "src" + "Pest\\Arch\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "A beautiful error page for Laravel applications.", - "homepage": "https://github.com/facade/ignition", + "description": "The Arch plugin for Pest PHP.", "keywords": [ - "error", - "flare", - "laravel", - "page" + "arch", + "architecture", + "framework", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" ], "support": { - "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", - "forum": "https://twitter.com/flareappio", - "issues": "https://github.com/facade/ignition/issues", - "source": "https://github.com/facade/ignition" + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.7.0" }, - "time": "2022-02-23T18:31:24+00:00" + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-01-26T09:46:42+00:00" }, { - "name": "fakerphp/faker", - "version": "v1.19.0", + "name": "pestphp/pest-plugin-faker", + "version": "v2.0.0", "source": { "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75" + "url": "https://github.com/pestphp/pest-plugin-faker.git", + "reference": "39fa2bd69d95024783ccf40ff48e3680aea1ba4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75", + "url": "https://api.github.com/repos/pestphp/pest-plugin-faker/zipball/39fa2bd69d95024783ccf40ff48e3680aea1ba4a", + "reference": "39fa2bd69d95024783ccf40ff48e3680aea1ba4a", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" - }, - "conflict": { - "fzaninotto/faker": "*" + "fakerphp/faker": "^1.21.0", + "pestphp/pest": "^2.0.0", + "php": "^8.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "doctrine/persistence": "^1.3 || ^2.0", - "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" - }, - "suggest": { - "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." + "pestphp/pest-dev-tools": "^2.5.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.19-dev" - } - }, "autoload": { + "files": [ + "src/Faker.php" + ], "psr-4": { - "Faker\\": "src/Faker/" + "Pest\\Faker\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", + "description": "The Pest Faker Plugin", "keywords": [ - "data", "faker", - "fixtures" + "framework", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" ], "support": { - "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.19.0" + "source": "https://github.com/pestphp/pest-plugin-faker/tree/v2.0.0" }, - "time": "2022-02-02T17:38:57+00:00" + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-03-20T10:06:05+00:00" }, { - "name": "filp/whoops", - "version": "2.14.5", + "name": "pestphp/pest-plugin-laravel", + "version": "v2.3.0", "source": { "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + "url": "https://github.com/pestphp/pest-plugin-laravel.git", + "reference": "2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", - "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e", + "reference": "2f6ea6233bb74ec65d969ecdea56bdbd3d1e2f0e", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "laravel/framework": "^10.44.0|^11.0", + "pestphp/pest": "^2.33.6", + "php": "^8.1.0" }, "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" + "laravel/dusk": "^7.12.3", + "orchestra/testbench": "^8.21.1|^9.0.0", + "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.7-dev" + "laravel": { + "providers": [ + "Pest\\Laravel\\PestServiceProvider" + ] + }, + "pest": { + "plugins": [ + "Pest\\Laravel\\Plugin" + ] } }, "autoload": { + "files": [ + "src/Autoload.php" + ], "psr-4": { - "Whoops\\": "src/Whoops/" + "Pest\\Laravel\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", + "description": "The Pest Laravel Plugin", "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" + "framework", + "laravel", + "pest", + "php", + "test", + "testing", + "unit" ], "support": { - "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.5" + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v2.3.0" }, "funding": [ { - "url": "https://github.com/denis-sokolov", + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", "type": "github" } ], - "time": "2022-01-07T12:00:00+00:00" + "time": "2024-02-17T10:04:08+00:00" }, { - "name": "friendsofphp/php-cs-fixer", - "version": "v3.8.0", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", - "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "composer/semver": "^3.2", - "composer/xdebug-handler": "^3.0.3", - "doctrine/annotations": "^1.13", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0", - "php-cs-fixer/diff": "^2.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/options-resolver": "^5.4 || ^6.0", - "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.25", - "symfony/polyfill-php81": "^1.25", - "symfony/process": "^5.4 || ^6.0", - "symfony/stopwatch": "^5.4 || ^6.0" - }, - "require-dev": { - "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.10", - "php-coveralls/php-coveralls": "^2.5.2", - "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.15", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^6.0", - "symfony/yaml": "^5.4 || ^6.0" + "php": "^7.2 || ^8.0" }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", "autoload": { "psr-4": { - "PhpCsFixer\\": "src/" + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -11017,69 +11370,59 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "A tool to automatically fix PHP code style", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], "support": { - "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.8.0" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "funding": [ - { - "url": "https://github.com/keradus", - "type": "github" - } - ], - "time": "2022-03-18T17:20:59+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "nunomaduro/collision", - "version": "v5.11.0", + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", "source": { "type": "git", - "url": "https://github.com/nunomaduro/collision.git", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.14.3", - "php": "^7.3 || ^8.0", - "symfony/console": "^5.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "brianium/paratest": "^6.1", - "fideloper/proxy": "^4.4.1", - "fruitcake/laravel-cors": "^2.0.3", - "laravel/framework": "8.x-dev", - "nunomaduro/larastan": "^0.6.2", - "nunomaduro/mock-final-classes": "^1.0", - "orchestra/testbench": "^6.0", - "phpstan/phpstan": "^0.12.64", - "phpunit/phpunit": "^9.5.0" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { - "laravel": { - "providers": [ - "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" - ] + "branch-alias": { + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "NunoMaduro\\Collision\\": "src/" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -11088,99 +11431,60 @@ ], "authors": [ { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Cli error handling for console/command-line PHP applications.", - "keywords": [ - "artisan", - "cli", - "command-line", - "console", - "error", - "handling", - "laravel", - "laravel-zero", - "php", - "symfony" - ], - "support": { - "issues": "https://github.com/nunomaduro/collision/issues", - "source": "https://github.com/nunomaduro/collision" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" }, { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], - "time": "2022-01-10T16:22:52+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" }, { - "name": "pestphp/pest", - "version": "v1.21.3", + "name": "phpdocumentor/type-resolver", + "version": "1.8.0", "source": { "type": "git", - "url": "https://github.com/pestphp/pest.git", - "reference": "66f69617f1e01032e009f783136f129de3476689" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/66f69617f1e01032e009f783136f129de3476689", - "reference": "66f69617f1e01032e009f783136f129de3476689", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", "shasum": "" }, "require": { - "nunomaduro/collision": "^5.10.0|^6.0", - "pestphp/pest-plugin": "^1.0.0", - "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^9.5.5" + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { - "illuminate/console": "^8.47.0", - "illuminate/support": "^8.47.0", - "laravel/dusk": "^6.15.0", - "pestphp/pest-dev-tools": "dev-master", - "pestphp/pest-plugin-parallel": "^1.0" + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, - "bin": [ - "bin/pest" - ], "type": "library", "extra": { "branch-alias": { "dev-1.x": "1.x-dev" - }, - "pest": { - "plugins": [ - "Pest\\Plugins\\Coverage", - "Pest\\Plugins\\Init", - "Pest\\Plugins\\Version", - "Pest\\Plugins\\Environment" - ] - }, - "laravel": { - "providers": [ - "Pest\\Laravel\\PestServiceProvider" - ] } }, "autoload": { - "files": [ - "src/Functions.php", - "src/Pest.php" - ], "psr-4": { - "Pest\\": "src/" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -11189,448 +11493,292 @@ ], "authors": [ { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "An elegant PHP Testing Framework.", - "keywords": [ - "framework", - "pest", - "php", - "test", - "testing", - "unit" - ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { - "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v1.21.3" + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/lukeraymonddowning", - "type": "github" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://github.com/octoper", - "type": "github" - }, - { - "url": "https://github.com/olivernybroe", - "type": "github" - }, - { - "url": "https://github.com/owenvoke", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2022-05-12T19:10:25+00:00" + "time": "2024-01-11T11:49:22+00:00" }, { - "name": "pestphp/pest-plugin", - "version": "v1.0.0", + "name": "phpstan/phpdoc-parser", + "version": "1.25.0", "source": { "type": "git", - "url": "https://github.com/pestphp/pest-plugin.git", - "reference": "fc8519de148699fe612d9c669be60554cd2db4fa" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/fc8519de148699fe612d9c669be60554cd2db4fa", - "reference": "fc8519de148699fe612d9c669be60554cd2db4fa", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1 || ^2.0", - "php": "^7.3 || ^8.0" - }, - "conflict": { - "pestphp/pest": "<1.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "composer/composer": "^1.10.19", - "pestphp/pest": "^1.0", - "pestphp/pest-dev-tools": "dev-master" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, - "class": "Pest\\Plugin\\Manager" + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" }, + "type": "library", "autoload": { "psr-4": { - "Pest\\Plugin\\": "src/" + "PHPStan\\PhpDocParser\\": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "The Pest plugin manager", - "keywords": [ - "framework", - "manager", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" - ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { - "source": "https://github.com/pestphp/pest-plugin/tree/v1.0.0" + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2021-01-03T15:53:42+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { - "name": "pestphp/pest-plugin-faker", - "version": "v1.0.0", + "name": "psr/cache", + "version": "3.0.0", "source": { "type": "git", - "url": "https://github.com/pestphp/pest-plugin-faker.git", - "reference": "9d93419f1f47ffd856ee544317b2f9144a129044" + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-faker/zipball/9d93419f1f47ffd856ee544317b2f9144a129044", - "reference": "9d93419f1f47ffd856ee544317b2f9144a129044", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", "shasum": "" }, "require": { - "fakerphp/faker": "^1.9.1", - "pestphp/pest": "^1.0", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "pestphp/pest-dev-tools": "dev-master" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "files": [ - "src/Faker.php" - ], "psr-4": { - "Pest\\Faker\\": "src/" + "Psr\\Cache\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "The Pest Faker Plugin", - "keywords": [ - "faker", - "framework", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" - ], - "support": { - "source": "https://github.com/pestphp/pest-plugin-faker/tree/v1.0.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, + "authors": [ { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" } ], - "time": "2021-01-03T15:42:35+00:00" + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" }, { - "name": "pestphp/pest-plugin-laravel", - "version": "v1.2.0", + "name": "spatie/backtrace", + "version": "1.5.3", "source": { "type": "git", - "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "64996218006570f6f58f3c7ebb6f0c7bfb3c60b9" + "url": "https://github.com/spatie/backtrace.git", + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/64996218006570f6f58f3c7ebb6f0c7bfb3c60b9", - "reference": "64996218006570f6f58f3c7ebb6f0c7bfb3c60b9", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab", + "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab", "shasum": "" }, "require": { - "laravel/framework": "^7.0 || ^8.0 || ^9.0", - "pestphp/pest": "^1.7", - "php": "^7.3 || ^8.0" + "php": "^7.3|^8.0" }, "require-dev": { - "orchestra/testbench": "^5.12.1 || ^6.7.2", - "pestphp/pest-dev-tools": "dev-master" + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "spatie/phpunit-snapshot-assertions": "^4.2", + "symfony/var-dumper": "^5.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "autoload": { - "files": [ - "src/Autoload.php" - ], "psr-4": { - "Pest\\Laravel\\": "src/" + "Spatie\\Backtrace\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "The Pest Laravel Plugin", + "authors": [ + { + "name": "Freek Van de Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A better backtrace", + "homepage": "https://github.com/spatie/backtrace", "keywords": [ - "framework", - "laravel", - "pest", - "php", - "test", - "testing", - "unit" + "Backtrace", + "spatie" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v1.2.0" + "source": "https://github.com/spatie/backtrace/tree/1.5.3" }, "funding": [ { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", + "url": "https://github.com/sponsors/spatie", "type": "github" }, { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" + "url": "https://spatie.be/open-source/support-us", + "type": "other" } ], - "time": "2022-01-13T17:09:04+00:00" + "time": "2023-06-28T12:59:17+00:00" }, { - "name": "pestphp/pest-plugin-parallel", - "version": "v0.2.1", + "name": "spatie/flare-client-php", + "version": "1.4.4", "source": { "type": "git", - "url": "https://github.com/pestphp/pest-plugin-parallel.git", - "reference": "6da63df8878cc279b0ff78aa78a1c5f04f054677" + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-parallel/zipball/6da63df8878cc279b0ff78aa78a1c5f04f054677", - "reference": "6da63df8878cc279b0ff78aa78a1c5f04f054677", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", "shasum": "" }, "require": { - "brianium/paratest": "^6.3", - "pestphp/pest-plugin": "^1.0", - "php": "^7.3 || ^8.0" - }, - "conflict": { - "laravel/framework": "<8.55", - "nunomaduro/collision": "<5.8", - "pestphp/pest": "<1.16" + "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", + "php": "^8.0", + "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", + "symfony/var-dumper": "^5.2|^6.0|^7.0" }, "require-dev": { - "pestphp/pest": "dev-master", - "pestphp/pest-dev-tools": "dev-master" + "dms/phpunit-arraysubset-asserts": "^0.5.0", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0|^5.0" }, "type": "library", "extra": { - "pest": { - "plugins": [ - "Pest\\Parallel\\Plugin" - ] - }, "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.3.x-dev" } }, "autoload": { "files": [ - "src/Autoload.php", - "build/RunnerWorker.php", - "build/BaseRunner.php" + "src/helpers.php" ], "psr-4": { - "Pest\\Parallel\\": "src/" - }, - "exclude-from-classmap": [ - "ParaTest\\Runners\\PHPUnit\\Worker\\RunnerWorker", - "ParaTest\\Runners\\PHPUnit\\BaseRunner" - ] + "Spatie\\FlareClient\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "The Pest Parallel Plugin", + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", "keywords": [ - "framework", - "parallel", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" + "exception", + "flare", + "reporting", + "spatie" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-parallel/tree/v0.2.1" + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" }, "funding": [ { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/lukeraymonddowning", - "type": "github" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://github.com/octoper", - "type": "github" - }, - { - "url": "https://github.com/olivernybroe", - "type": "github" - }, - { - "url": "https://github.com/owenvoke", + "url": "https://github.com/spatie", "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" } ], - "time": "2021-08-25T11:03:56+00:00" + "time": "2024-01-31T14:18:45+00:00" }, { - "name": "php-cs-fixer/diff", - "version": "v2.0.2", + "name": "spatie/ignition", + "version": "1.12.0", "source": { "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3" + "url": "https://github.com/spatie/ignition.git", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0 || ^8.0" + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.0", + "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" }, "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", - "symfony/process": "^3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "sebastian/diff v3 backport support for PHP 5.6+", - "homepage": "https://github.com/PHP-CS-Fixer", - "keywords": [ - "diff" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/diff/issues", - "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2" - }, - "time": "2020-10-14T08:32:19+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" + "illuminate/cache": "^9.52|^10.0|^11.0", + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20|^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "psr/simple-cache-implementation": "*", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "vlucas/phpdotenv": "^5.5" }, - "require": { - "php": ">=8.0.0" + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "simple-cache-implementation": "To cache solutions from OpenAI" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-main": "1.5.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Cache\\": "src/" + "Spatie\\Ignition\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -11639,48 +11787,91 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" } ], - "description": "Common interface for caching libraries", + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", "keywords": [ - "cache", - "psr", - "psr-6" + "error", + "flare", + "laravel", + "page" ], "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/ignition/issues", + "source": "https://github.com/spatie/ignition" }, - "time": "2021-02-03T23:26:27+00:00" + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-03T15:49:39+00:00" }, { - "name": "symfony/filesystem", - "version": "v6.0.9", + "name": "spatie/laravel-ignition", + "version": "2.4.2", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c" + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/bf7b9d2ee692b6df2a41017d6023a2fe732d240c", - "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^10.0|^11.0", + "php": "^8.1", + "spatie/flare-client-php": "^1.3.5", + "spatie/ignition": "^1.9", + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" + }, + "require-dev": { + "livewire/livewire": "^2.11|^3.3.5", + "mockery/mockery": "^1.5.1", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan-deprecation-rules": "^1.1.1", + "phpstan/phpstan-phpunit": "^1.3.3", + "vlucas/phpdotenv": "^5.5" + }, + "suggest": { + "openai-php/client": "Require get solutions from OpenAI", + "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI" }, "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, "autoload": { + "files": [ + "src/helpers.php" + ], "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Spatie\\LaravelIgnition\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -11688,57 +11879,64 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" } ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.9" + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/spatie/laravel-ignition/issues", + "source": "https://github.com/spatie/laravel-ignition" }, "funding": [ { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", + "url": "https://github.com/spatie", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" } ], - "time": "2022-05-21T13:33:31+00:00" + "time": "2024-02-09T16:08:40+00:00" }, { - "name": "symfony/options-resolver", - "version": "v6.0.3", + "name": "symfony/yaml", + "version": "v7.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" + "url": "https://github.com/symfony/yaml.git", + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", - "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.2", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" + "Symfony\\Component\\Yaml\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -11758,15 +11956,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an improved replacement for the array_replace PHP function", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" + "source": "https://github.com/symfony/yaml/tree/v7.0.3" }, "funding": [ { @@ -11782,34 +11975,38 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { - "name": "symfony/stopwatch", - "version": "v6.0.5", + "name": "ta-tikoma/phpunit-architecture-test", + "version": "0.8.4", "source": { "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" + "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", - "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", "shasum": "" }, "require": { - "php": ">=8.0.2", - "symfony/service-contracts": "^1|^2|^3" + "nikic/php-parser": "^4.18.0 || ^5.0.0", + "php": "^8.1.0", + "phpdocumentor/reflection-docblock": "^5.3.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0" + }, + "require-dev": { + "laravel/pint": "^1.13.7", + "phpstan/phpstan": "^1.10.52" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "PHPUnit\\Architecture\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -11817,44 +12014,38 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Ni Shi", + "email": "futik0ma011@gmail.com" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Provides a way to profile code", - "homepage": "https://symfony.com", + "description": "Methods for testing application architecture", + "keywords": [ + "architecture", + "phpunit", + "stucture", + "test", + "testing" + ], "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" + "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" }, - "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": "2022-02-21T17:15:17+00:00" + "time": "2024-01-05T14:10:56+00:00" } ], "aliases": [], - "minimum-stability": "dev", + "minimum-stability": "stable", "stability-flags": [], "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.4 || ^8.0" + "php": "^8.1", + "ext-json": "*" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.6.0" } diff --git a/config/abilities.php b/config/abilities.php index 278050ad9..f7558581e 100644 --- a/config/abilities.php +++ b/config/abilities.php @@ -1,420 +1,420 @@ [ // Customer [ - "name" => "view customer", - "ability" => "view-customer", - "model" => Customer::class, + 'name' => 'view customer', + 'ability' => 'view-customer', + 'model' => Customer::class, ], [ - "name" => "create customer", - "ability" => "create-customer", - "model" => Customer::class, - "depends_on" => [ + 'name' => 'create customer', + 'ability' => 'create-customer', + 'model' => Customer::class, + 'depends_on' => [ 'view-customer', 'view-custom-field', - ] + ], ], [ - "name" => "edit customer", - "ability" => "edit-customer", - "model" => Customer::class, - "depends_on" => [ + 'name' => 'edit customer', + 'ability' => 'edit-customer', + 'model' => Customer::class, + 'depends_on' => [ 'view-customer', 'view-custom-field', - ] + ], ], [ - "name" => "delete customer", - "ability" => "delete-customer", - "model" => Customer::class, - "depends_on" => [ + 'name' => 'delete customer', + 'ability' => 'delete-customer', + 'model' => Customer::class, + 'depends_on' => [ 'view-customer', - ] + ], ], // Item [ - "name" => "view item", - "ability" => "view-item", - "model" => Item::class, + 'name' => 'view item', + 'ability' => 'view-item', + 'model' => Item::class, ], [ - "name" => "create item", - "ability" => "create-item", - "model" => Item::class, - "depends_on" => [ + 'name' => 'create item', + 'ability' => 'create-item', + 'model' => Item::class, + 'depends_on' => [ 'view-item', - 'view-tax-type' - ] + 'view-tax-type', + ], ], [ - "name" => "edit item", - "ability" => "edit-item", - "model" => Item::class, - "depends_on" => [ + 'name' => 'edit item', + 'ability' => 'edit-item', + 'model' => Item::class, + 'depends_on' => [ 'view-item', - ] + ], ], [ - "name" => "delete item", - "ability" => "delete-item", - "model" => Item::class, - "depends_on" => [ + 'name' => 'delete item', + 'ability' => 'delete-item', + 'model' => Item::class, + 'depends_on' => [ 'view-item', - ] + ], ], // Tax Type [ - "name" => "view tax type", - "ability" => "view-tax-type", - "model" => TaxType::class, + 'name' => 'view tax type', + 'ability' => 'view-tax-type', + 'model' => TaxType::class, ], [ - "name" => "create tax type", - "ability" => "create-tax-type", - "model" => TaxType::class, - "depends_on" => [ + 'name' => 'create tax type', + 'ability' => 'create-tax-type', + 'model' => TaxType::class, + 'depends_on' => [ 'view-tax-type', - ] + ], ], [ - "name" => "edit tax type", - "ability" => "edit-tax-type", - "model" => TaxType::class, - "depends_on" => [ + 'name' => 'edit tax type', + 'ability' => 'edit-tax-type', + 'model' => TaxType::class, + 'depends_on' => [ 'view-tax-type', - ] + ], ], [ - "name" => "delete tax type", - "ability" => "delete-tax-type", - "model" => TaxType::class, - "depends_on" => [ + 'name' => 'delete tax type', + 'ability' => 'delete-tax-type', + 'model' => TaxType::class, + 'depends_on' => [ 'view-tax-type', - ] + ], ], // Estimate [ - "name" => "view estimate", - "ability" => "view-estimate", - "model" => Estimate::class, + 'name' => 'view estimate', + 'ability' => 'view-estimate', + 'model' => Estimate::class, ], [ - "name" => "create estimate", - "ability" => "create-estimate", - "model" => Estimate::class, - "depends_on" => [ + 'name' => 'create estimate', + 'ability' => 'create-estimate', + 'model' => Estimate::class, + 'depends_on' => [ 'view-estimate', 'view-item', 'view-tax-type', 'view-customer', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "edit estimate", - "ability" => "edit-estimate", - "model" => Estimate::class, - "depends_on" => [ + 'name' => 'edit estimate', + 'ability' => 'edit-estimate', + 'model' => Estimate::class, + 'depends_on' => [ 'view-item', 'view-estimate', 'view-tax-type', 'view-customer', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "delete estimate", - "ability" => "delete-estimate", - "model" => Estimate::class, - "depends_on" => [ + 'name' => 'delete estimate', + 'ability' => 'delete-estimate', + 'model' => Estimate::class, + 'depends_on' => [ 'view-estimate', - ] + ], ], [ - "name" => "send estimate", - "ability" => "send-estimate", - "model" => Estimate::class, + 'name' => 'send estimate', + 'ability' => 'send-estimate', + 'model' => Estimate::class, ], // Invoice [ - "name" => "view invoice", - "ability" => "view-invoice", - "model" => Invoice::class, + 'name' => 'view invoice', + 'ability' => 'view-invoice', + 'model' => Invoice::class, ], [ - "name" => "create invoice", - "ability" => "create-invoice", - "model" => Invoice::class, + 'name' => 'create invoice', + 'ability' => 'create-invoice', + 'model' => Invoice::class, 'owner_only' => false, - "depends_on" => [ + 'depends_on' => [ 'view-item', 'view-invoice', 'view-tax-type', 'view-customer', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "edit invoice", - "ability" => "edit-invoice", - "model" => Invoice::class, - "depends_on" => [ + 'name' => 'edit invoice', + 'ability' => 'edit-invoice', + 'model' => Invoice::class, + 'depends_on' => [ 'view-item', 'view-invoice', 'view-tax-type', 'view-customer', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "delete invoice", - "ability" => "delete-invoice", - "model" => Invoice::class, - "depends_on" => [ - 'view-invoice' - ] + 'name' => 'delete invoice', + 'ability' => 'delete-invoice', + 'model' => Invoice::class, + 'depends_on' => [ + 'view-invoice', + ], ], [ - "name" => "send invoice", - "ability" => "send-invoice", - "model" => Invoice::class, + 'name' => 'send invoice', + 'ability' => 'send-invoice', + 'model' => Invoice::class, ], // Recurring Invoice [ - "name" => "view recurring invoice", - "ability" => "view-recurring-invoice", - "model" => RecurringInvoice::class, + 'name' => 'view recurring invoice', + 'ability' => 'view-recurring-invoice', + 'model' => RecurringInvoice::class, ], [ - "name" => "create recurring invoice", - "ability" => "create-recurring-invoice", - "model" => RecurringInvoice::class, - "depends_on" => [ + 'name' => 'create recurring invoice', + 'ability' => 'create-recurring-invoice', + 'model' => RecurringInvoice::class, + 'depends_on' => [ 'view-item', 'view-recurring-invoice', 'view-tax-type', 'view-customer', 'view-all-notes', - 'send-invoice' - ] + 'send-invoice', + ], ], [ - "name" => "edit recurring invoice", - "ability" => "edit-recurring-invoice", - "model" => RecurringInvoice::class, - "depends_on" => [ + 'name' => 'edit recurring invoice', + 'ability' => 'edit-recurring-invoice', + 'model' => RecurringInvoice::class, + 'depends_on' => [ 'view-item', 'view-recurring-invoice', 'view-tax-type', 'view-customer', 'view-all-notes', - 'send-invoice' - ] + 'send-invoice', + ], ], [ - "name" => "delete recurring invoice", - "ability" => "delete-recurring-invoice", - "model" => RecurringInvoice::class, - "depends_on" => [ + 'name' => 'delete recurring invoice', + 'ability' => 'delete-recurring-invoice', + 'model' => RecurringInvoice::class, + 'depends_on' => [ 'view-recurring-invoice', - ] + ], ], // Payment [ - "name" => "view payment", - "ability" => "view-payment", - "model" => Payment::class, + 'name' => 'view payment', + 'ability' => 'view-payment', + 'model' => Payment::class, ], [ - "name" => "create payment", - "ability" => "create-payment", - "model" => Payment::class, - "depends_on" => [ + 'name' => 'create payment', + 'ability' => 'create-payment', + 'model' => Payment::class, + 'depends_on' => [ 'view-customer', 'view-payment', 'view-invoice', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "edit payment", - "ability" => "edit-payment", - "model" => Payment::class, - "depends_on" => [ + 'name' => 'edit payment', + 'ability' => 'edit-payment', + 'model' => Payment::class, + 'depends_on' => [ 'view-customer', 'view-payment', 'view-invoice', 'view-custom-field', - 'view-all-notes' - ] + 'view-all-notes', + ], ], [ - "name" => "delete payment", - "ability" => "delete-payment", - "model" => Payment::class, - "depends_on" => [ + 'name' => 'delete payment', + 'ability' => 'delete-payment', + 'model' => Payment::class, + 'depends_on' => [ 'view-payment', - ] + ], ], [ - "name" => "send payment", - "ability" => "send-payment", - "model" => Payment::class, + 'name' => 'send payment', + 'ability' => 'send-payment', + 'model' => Payment::class, ], // Expense [ - "name" => "view expense", - "ability" => "view-expense", - "model" => Expense::class, + 'name' => 'view expense', + 'ability' => 'view-expense', + 'model' => Expense::class, ], [ - "name" => "create expense", - "ability" => "create-expense", - "model" => Expense::class, - "depends_on" => [ + 'name' => 'create expense', + 'ability' => 'create-expense', + 'model' => Expense::class, + 'depends_on' => [ 'view-customer', 'view-expense', 'view-custom-field', - ] + ], ], [ - "name" => "edit expense", - "ability" => "edit-expense", - "model" => Expense::class, - "depends_on" => [ + 'name' => 'edit expense', + 'ability' => 'edit-expense', + 'model' => Expense::class, + 'depends_on' => [ 'view-customer', 'view-expense', 'view-custom-field', - ] + ], ], [ - "name" => "delete expense", - "ability" => "delete-expense", - "model" => Expense::class, - "depends_on" => [ + 'name' => 'delete expense', + 'ability' => 'delete-expense', + 'model' => Expense::class, + 'depends_on' => [ 'view-expense', - ] + ], ], // Custom Field [ - "name" => "view custom field", - "ability" => "view-custom-field", - "model" => CustomField::class, + 'name' => 'view custom field', + 'ability' => 'view-custom-field', + 'model' => CustomField::class, ], [ - "name" => "create custom field", - "ability" => "create-custom-field", - "model" => CustomField::class, - "depends_on" => [ + 'name' => 'create custom field', + 'ability' => 'create-custom-field', + 'model' => CustomField::class, + 'depends_on' => [ 'view-custom-field', - ] + ], ], [ - "name" => "edit custom field", - "ability" => "edit-custom-field", - "model" => CustomField::class, - "depends_on" => [ + 'name' => 'edit custom field', + 'ability' => 'edit-custom-field', + 'model' => CustomField::class, + 'depends_on' => [ 'view-custom-field', - ] + ], ], [ - "name" => "delete custom field", - "ability" => "delete-custom-field", - "model" => CustomField::class, - "depends_on" => [ + 'name' => 'delete custom field', + 'ability' => 'delete-custom-field', + 'model' => CustomField::class, + 'depends_on' => [ 'view-custom-field', - ] + ], ], // Financial Reports [ - "name" => "view financial reports", - "ability" => "view-financial-reports", - "model" => null, + 'name' => 'view financial reports', + 'ability' => 'view-financial-reports', + 'model' => null, ], // Exchange Rate Provider [ - "name" => "view exchange rate provider", - "ability" => "view-exchange-rate-provider", - "model" => ExchangeRateProvider::class, + 'name' => 'view exchange rate provider', + 'ability' => 'view-exchange-rate-provider', + 'model' => ExchangeRateProvider::class, 'owner_only' => false, ], [ - "name" => "create exchange rate provider", - "ability" => "create-exchange-rate-provider", - "model" => ExchangeRateProvider::class, + 'name' => 'create exchange rate provider', + 'ability' => 'create-exchange-rate-provider', + 'model' => ExchangeRateProvider::class, 'owner_only' => false, - "depends_on" => [ + 'depends_on' => [ 'view-exchange-rate-provider', - ] + ], ], [ - "name" => "edit exchange rate provider", - "ability" => "edit-exchange-rate-provider", - "model" => ExchangeRateProvider::class, + 'name' => 'edit exchange rate provider', + 'ability' => 'edit-exchange-rate-provider', + 'model' => ExchangeRateProvider::class, 'owner_only' => false, - "depends_on" => [ + 'depends_on' => [ 'view-exchange-rate-provider', - ] + ], ], [ - "name" => "delete exchange rate provider", - "ability" => "delete-exchange-rate-provider", - "model" => ExchangeRateProvider::class, + 'name' => 'delete exchange rate provider', + 'ability' => 'delete-exchange-rate-provider', + 'model' => ExchangeRateProvider::class, 'owner_only' => false, - "depends_on" => [ + 'depends_on' => [ 'view-exchange-rate-provider', - ] + ], ], // Settings [ - "name" => "view company dashboard", - "ability" => "dashboard", - "model" => null, + 'name' => 'view company dashboard', + 'ability' => 'dashboard', + 'model' => null, ], [ - "name" => "view all notes", - "ability" => "view-all-notes", - "model" => Note::class, + 'name' => 'view all notes', + 'ability' => 'view-all-notes', + 'model' => Note::class, ], [ - "name" => "manage notes", - "ability" => "manage-all-notes", - "model" => Note::class, - "depends_on" => [ - 'view-all-notes' - ] - ] - ] + 'name' => 'manage notes', + 'ability' => 'manage-all-notes', + 'model' => Note::class, + 'depends_on' => [ + 'view-all-notes', + ], + ], + ], ]; diff --git a/config/app.php b/config/app.php index 473638bca..06989d8de 100644 --- a/config/app.php +++ b/config/app.php @@ -12,7 +12,7 @@ | any other location as required by the application or its packages. */ - 'name' => 'Crater', + 'name' => 'InvoiceShelf', /* |-------------------------------------------------------------------------- @@ -162,14 +162,13 @@ /* * Application Service Providers... */ - Crater\Providers\AppServiceProvider::class, - Crater\Providers\AuthServiceProvider::class, - Crater\Providers\BroadcastServiceProvider::class, - Crater\Providers\EventServiceProvider::class, - Crater\Providers\RouteServiceProvider::class, - Crater\Providers\DropboxServiceProvider::class, - Crater\Providers\ViewServiceProvider::class, - Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, + 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, ], /* @@ -221,6 +220,6 @@ 'Flash' => Laracasts\Flash\Flash::class, // 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, 'Pusher' => Pusher\Pusher::class, - 'Menu' => Lavary\Menu\Facade::class + 'Menu' => Lavary\Menu\Facade::class, ], ]; diff --git a/config/auth.php b/config/auth.php index 289cca1d1..ae543eb2f 100644 --- a/config/auth.php +++ b/config/auth.php @@ -74,12 +74,12 @@ 'providers' => [ 'users' => [ 'driver' => 'eloquent', - 'model' => \Crater\Models\User::class, + 'model' => \InvoiceShelf\Models\User::class, ], 'customers' => [ 'driver' => 'eloquent', - 'model' => \Crater\Models\Customer::class, + 'model' => \InvoiceShelf\Models\Customer::class, ], ], diff --git a/config/dompdf.php b/config/dompdf.php index 2203d1439..5a9b83900 100644 --- a/config/dompdf.php +++ b/config/dompdf.php @@ -38,7 +38,7 @@ * Times-Roman, Times-Bold, Times-BoldItalic, Times-Italic, * Symbol, ZapfDingbats. */ - "font_dir" => storage_path('fonts/'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782) + 'font_dir' => storage_path('fonts/'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782) /** * The location of the DOMPDF font cache directory @@ -48,7 +48,7 @@ * * Note: This directory must exist and be writable by the webserver process. */ - "font_cache" => storage_path('fonts/'), + 'font_cache' => storage_path('fonts/'), /** * The location of a temporary directory. @@ -57,7 +57,7 @@ * The temporary directory is required to download remote images and when * using the PFDLib back end. */ - "temp_dir" => sys_get_temp_dir(), + 'temp_dir' => sys_get_temp_dir(), /** * ==== IMPORTANT ==== @@ -71,20 +71,19 @@ * direct class use like: * $dompdf = new DOMPDF(); $dompdf->load_html($htmldata); $dompdf->render(); $pdfdata = $dompdf->output(); */ - "chroot" => realpath(base_path()), + 'chroot' => realpath(base_path()), /** * Whether to enable font subsetting or not. */ - "enable_font_subsetting" => false, + 'enable_font_subsetting' => false, /** * The PDF rendering backend to use * * Valid settings are 'PDFLib', 'CPDF' (the bundled R&OS PDF class), 'GD' and * 'auto'. 'auto' will look for PDFLib and use it if found, or if not it will - * fall back on CPDF. 'GD' renders PDFs to graphic files. {@link - * Canvas_Factory} ultimately determines which rendering class to instantiate + * fall back on CPDF. 'GD' renders PDFs to graphic files. {@link * Canvas_Factory} ultimately determines which rendering class to instantiate * based on this setting. * * Both PDFLib & CPDF rendering backends provide sufficient rendering @@ -106,7 +105,7 @@ * @link http://www.ros.co.nz/pdf * @link http://www.php.net/image */ - "pdf_backend" => "CPDF", + 'pdf_backend' => 'CPDF', /** * PDFlib license key @@ -132,7 +131,7 @@ * the desired content might be different (e.g. screen or projection view of html file). * Therefore allow specification of content here. */ - "default_media_type" => "screen", + 'default_media_type' => 'screen', /** * The default paper size. @@ -141,15 +140,16 @@ * * @see CPDF_Adapter::PAPER_SIZES for valid sizes ('letter', 'legal', 'A4', etc.) */ - "default_paper_size" => "a4", + 'default_paper_size' => 'a4', /** * The default font family * * Used if no suitable fonts can be found. This must exist in the font folder. + * * @var string */ - "default_font" => "DejaVu Sans", + 'default_font' => 'DejaVu Sans', /** * Image DPI setting @@ -184,7 +184,7 @@ * * @var int */ - "dpi" => 96, + 'dpi' => 96, /** * Enable inline PHP @@ -198,7 +198,7 @@ * * @var bool */ - "enable_php" => false, + 'enable_php' => false, /** * Enable inline Javascript @@ -208,7 +208,7 @@ * * @var bool */ - "enable_javascript" => true, + 'enable_javascript' => true, /** * Enable remote file access @@ -227,18 +227,17 @@ * * @var bool */ - "enable_remote" => true, + 'enable_remote' => true, /** * A ratio applied to the fonts height to be more like browsers' line height */ - "font_height_ratio" => 1.1, + 'font_height_ratio' => 1.1, /** * Use the more-than-experimental HTML5 Lib parser */ - "enable_html5_parser" => true, + 'enable_html5_parser' => true, ], - ]; diff --git a/config/filesystems.php b/config/filesystems.php index f265b6fbe..ededf290e 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -64,6 +64,16 @@ 'root' => env('AWS_ROOT'), ], + 's3compat' => [ + 'driver' => 's3', + 'endpoint' => env('S3_COMPAT_ENDPOINT'), + 'use_path_style_endpoint' => true, + 'key' => env('S3_COMPAT_KEY'), + 'secret' => env('S3_COMPAT_SECRET'), + 'region' => env('S3_COMPAT_REGION'), + 'bucket' => env('S3_COMPAT_BUCKET'), + ], + 'media' => [ 'driver' => 'local', 'root' => public_path('media'), diff --git a/config/hashids.php b/config/hashids.php index cd1b64b0f..4942314cc 100644 --- a/config/hashids.php +++ b/config/hashids.php @@ -9,12 +9,12 @@ * @see https://github.com/vinkla/laravel-hashids */ -use Crater\Models\Company; -use Crater\Models\EmailLog; -use Crater\Models\Estimate; -use Crater\Models\Invoice; -use Crater\Models\Payment; -use Crater\Models\Transaction; +use InvoiceShelf\Models\Company; +use InvoiceShelf\Models\EmailLog; +use InvoiceShelf\Models\Estimate; +use InvoiceShelf\Models\Invoice; +use InvoiceShelf\Models\Payment; +use InvoiceShelf\Models\Transaction; return [ @@ -45,33 +45,33 @@ 'connections' => [ Invoice::class => [ 'salt' => Invoice::class.config('app.key'), - 'length' => '20', - 'alphabet' => 'XKyIAR7mgt8jD2vbqPrOSVenNGpiYLx4M61T', + 'length' => 20, + 'alphabet' => 'XKAR7m8jD2bqP9OSVeNGiYL465T10zhfWuc3', ], Estimate::class => [ 'salt' => Estimate::class.config('app.key'), - 'length' => '20', - 'alphabet' => 'yLJWP79M8rYVqbn1NXjulO6IUDdvekRQGo40', + 'length' => 20, + 'alphabet' => 'yJW2P79M8rCHsVq5zbn1fXl6IUt3dAekGo40', ], Payment::class => [ 'salt' => Payment::class.config('app.key'), - 'length' => '20', - 'alphabet' => 'asqtW3eDRIxB65GYl7UVLS1dybn9XrKTZ4zO', + 'length' => 20, + 'alphabet' => 'aqW3eR2Icf0jp65Gl7UVS1dhyb8Mn9XKTZ4O', ], Company::class => [ 'salt' => Company::class.config('app.key'), - 'length' => '20', - 'alphabet' => 's0DxOFtEYEnuKPmP08Ch6A1iHlLmBTBVWms5', + 'length' => 20, + 'alphabet' => 's0D7xOFYEqn2uKJm3Pr9g8Cz46A1iHLBTVW5', ], EmailLog::class => [ 'salt' => EmailLog::class.config('app.key'), - 'length' => '20', - 'alphabet' => 'BRAMEz5str5UVe9oCqzoYY2oKgUi8wQQSmrR', + 'length' => 20, + 'alphabet' => 'BA5tJUVNPe93fCq6DHlY2x4ZO1Kg7i8wSm0R', ], Transaction::class => [ 'salt' => Transaction::class.config('app.key'), - 'length' => '20', - 'alphabet' => 'ADyQWE8mgt7jF2vbnPrKLJenHVpiUIq4M12T', + 'length' => 20, + 'alphabet' => 'ADyWE86Cg7jF23vS0bonXrZ5KLH9puIQ4M1T', ], ], ]; diff --git a/config/installer.php b/config/installer.php index 012d3fa94..2f8b8adda 100755 --- a/config/installer.php +++ b/config/installer.php @@ -13,7 +13,7 @@ | */ 'core' => [ - 'minPhpVersion' => '7.4.0', + 'minPhpVersion' => '8.1.0', ], 'final' => [ 'key' => true, @@ -21,13 +21,16 @@ ], 'requirements' => [ 'php' => [ - 'openssl', + 'exif', 'pdo', + 'bcmath', + 'openssl', 'mbstring', - 'tokenizer', - 'JSON', - 'cURL', + 'json', + 'xml', + 'fileinfo', 'zip', + 'curl', ], 'apache' => [ 'mod_rewrite', diff --git a/config/crater.php b/config/invoiceshelf.php similarity index 80% rename from config/crater.php rename to config/invoiceshelf.php index 4de981054..0de993c12 100644 --- a/config/crater.php +++ b/config/invoiceshelf.php @@ -1,23 +1,23 @@ '7.4.0', + 'min_php_version' => '8.1.0', /* * Minimum mysql version. @@ -46,49 +46,49 @@ /* * Marketplace url. */ - 'base_url' => 'https://craterapp.com', + 'base_url' => 'https://invoiceshelf.com', /* - * List of languages supported by Crater. + * List of languages supported by InvoiceShelf. */ 'languages' => [ - ["code" => "ar", "name" => "Arabic"], - ["code" => "nl", "name" => "Dutch"], - ["code" => "en", "name" => "English"], - ["code" => "fr", "name" => "French"], - ["code" => "de", "name" => "German"], - ["code" => "ja", "name" => "Japanese"], - ["code" => "it", "name" => "Italian"], - ["code" => "lv", "name" => "Latvian"], - ["code" => "pl", "name" => "Polish"], - ["code" => "pt_BR", "name" => "Portuguese (Brazilian)"], - ["code" => "sr", "name" => "Serbian Latin"], - ["code" => "ko", "name" => "Korean"], - ["code" => "es", "name" => "Spanish"], - ["code" => "sv", "name" => "Svenska"], - ["code" => "sk", "name" => "Slovak"], - ["code" => "vi", "name" => "Tiếng Việt"], - ["code" => "cs", "name" => "Czech"], - ["code" => "el", "name" => "Greek"], - ["code" => "hr", "name" => "Crotian"], - ["code" => "th", "name" => "ไทย"], + ['code' => 'ar', 'name' => 'Arabic'], + ['code' => 'nl', 'name' => 'Dutch'], + ['code' => 'en', 'name' => 'English'], + ['code' => 'fr', 'name' => 'French'], + ['code' => 'de', 'name' => 'German'], + ['code' => 'ja', 'name' => 'Japanese'], + ['code' => 'it', 'name' => 'Italian'], + ['code' => 'lv', 'name' => 'Latvian'], + ['code' => 'pl', 'name' => 'Polish'], + ['code' => 'pt_BR', 'name' => 'Portuguese (Brazilian)'], + ['code' => 'sr', 'name' => 'Serbian Latin'], + ['code' => 'ko', 'name' => 'Korean'], + ['code' => 'es', 'name' => 'Spanish'], + ['code' => 'sv', 'name' => 'Svenska'], + ['code' => 'sk', 'name' => 'Slovak'], + ['code' => 'vi', 'name' => 'Tiếng Việt'], + ['code' => 'cs', 'name' => 'Czech'], + ['code' => 'el', 'name' => 'Greek'], + ['code' => 'hr', 'name' => 'Crotian'], + ['code' => 'th', 'name' => 'ไทย'], ], /* * 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' => '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' => 'november-october', 'value' => '11-10'], ['key' => 'december-november', 'value' => '12-11'], ], @@ -123,7 +123,7 @@ 'icon' => 'UserIcon', 'owner_only' => false, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.company_information', @@ -133,7 +133,7 @@ 'icon' => 'OfficeBuildingIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.preferences', @@ -143,7 +143,7 @@ 'icon' => 'CogIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.customization', @@ -153,7 +153,7 @@ 'icon' => 'PencilAltIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.roles.title', @@ -163,7 +163,7 @@ 'icon' => 'UserGroupIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.exchange_rate', @@ -173,7 +173,7 @@ 'icon' => 'CashIcon', 'owner_only' => false, 'ability' => 'view-exchange-rate-provider', - 'model' => ExchangeRateProvider::class + 'model' => ExchangeRateProvider::class, ], [ 'title' => 'settings.menu_title.notifications', @@ -183,7 +183,7 @@ 'icon' => 'BellIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.tax_types', @@ -193,7 +193,7 @@ 'icon' => 'CheckCircleIcon', 'owner_only' => false, 'ability' => 'view-tax-type', - 'model' => TaxType::class + 'model' => TaxType::class, ], [ 'title' => 'settings.menu_title.payment_modes', @@ -203,7 +203,7 @@ 'icon' => 'CreditCardIcon', 'owner_only' => false, 'ability' => 'view-payment', - 'model' => Payment::class + 'model' => Payment::class, ], [ 'title' => 'settings.menu_title.custom_fields', @@ -213,7 +213,7 @@ 'icon' => 'CubeIcon', 'owner_only' => false, 'ability' => 'view-custom-field', - 'model' => CustomField::class + 'model' => CustomField::class, ], [ 'title' => 'settings.menu_title.notes', @@ -223,7 +223,7 @@ 'icon' => 'ClipboardCheckIcon', 'owner_only' => false, 'ability' => 'view-all-notes', - 'model' => Note::class + 'model' => Note::class, ], [ 'title' => 'settings.menu_title.expense_category', @@ -233,7 +233,7 @@ 'icon' => 'ClipboardListIcon', 'owner_only' => false, 'ability' => 'view-expense', - 'model' => Expense::class + 'model' => Expense::class, ], [ 'title' => 'settings.mail.mail_config', @@ -243,7 +243,7 @@ 'icon' => 'MailIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.file_disk', @@ -253,7 +253,7 @@ 'icon' => 'FolderIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.backup', @@ -263,7 +263,7 @@ 'icon' => 'DatabaseIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'settings.menu_title.update_app', @@ -273,7 +273,7 @@ 'icon' => 'RefreshIcon', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], ], @@ -289,7 +289,7 @@ 'name' => 'Dashboard', 'owner_only' => false, 'ability' => 'dashboard', - 'model' => '' + 'model' => '', ], [ 'title' => 'navigation.customers', @@ -299,7 +299,7 @@ 'name' => 'Customers', 'owner_only' => false, 'ability' => 'view-customer', - 'model' => Customer::class + 'model' => Customer::class, ], [ 'title' => 'navigation.items', @@ -309,7 +309,7 @@ 'name' => 'Items', 'owner_only' => false, 'ability' => 'view-item', - 'model' => Item::class + 'model' => Item::class, ], [ 'title' => 'navigation.estimates', @@ -319,7 +319,7 @@ 'name' => 'Estimates', 'owner_only' => false, 'ability' => 'view-estimate', - 'model' => Estimate::class + 'model' => Estimate::class, ], [ 'title' => 'navigation.invoices', @@ -329,7 +329,7 @@ 'name' => 'Invoices', 'owner_only' => false, 'ability' => 'view-invoice', - 'model' => Invoice::class + 'model' => Invoice::class, ], [ 'title' => 'navigation.recurring-invoices', @@ -339,7 +339,7 @@ 'name' => 'Recurring Invoices', 'owner_only' => false, 'ability' => 'view-recurring-invoice', - 'model' => RecurringInvoice::class + 'model' => RecurringInvoice::class, ], [ 'title' => 'navigation.payments', @@ -349,7 +349,7 @@ 'name' => 'Payments', 'owner_only' => false, 'ability' => 'view-payment', - 'model' => Payment::class + 'model' => Payment::class, ], [ 'title' => 'navigation.expenses', @@ -359,7 +359,7 @@ 'name' => 'Expenses', 'owner_only' => false, 'ability' => 'view-expense', - 'model' => Expense::class + 'model' => Expense::class, ], [ 'title' => 'navigation.modules', @@ -369,7 +369,7 @@ 'name' => 'Modules', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'navigation.users', @@ -379,7 +379,7 @@ 'name' => 'Users', 'owner_only' => true, 'ability' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'navigation.reports', @@ -389,7 +389,7 @@ 'name' => 'Reports', 'owner_only' => false, 'ability' => 'view-financial-reports', - 'model' => '' + 'model' => '', ], [ 'title' => 'navigation.settings', @@ -399,7 +399,7 @@ 'name' => 'Settings', 'owner_only' => false, 'ability' => '', - 'model' => '' + 'model' => '', ], ], @@ -415,7 +415,7 @@ 'ability' => '', 'owner_only' => false, 'group' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'Invoices', @@ -425,7 +425,7 @@ 'ability' => '', 'owner_only' => false, 'group' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'Estimates', @@ -435,7 +435,7 @@ 'owner_only' => false, 'ability' => '', 'group' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'Payments', @@ -445,7 +445,7 @@ 'owner_only' => false, 'ability' => '', 'group' => '', - 'model' => '' + 'model' => '', ], [ 'title' => 'Settings', @@ -455,7 +455,7 @@ 'owner_only' => false, 'ability' => '', 'group' => '', - 'model' => '' + 'model' => '', ], ], @@ -463,15 +463,15 @@ * List of recurring invoice status */ 'recurring_invoice_status' => [ - 'create_status' => [ + 'create_status' => [ ['key' => 'settings.preferences.active', 'value' => 'ACTIVE'], - ['key' => 'settings.preferences.on_hold', 'value' => 'ON_HOLD'] - ], - 'update_status' => [ + ['key' => 'settings.preferences.on_hold', 'value' => 'ON_HOLD'], + ], + 'update_status' => [ ['key' => 'settings.preferences.active', 'value' => 'ACTIVE'], ['key' => 'settings.preferences.on_hold', 'value' => 'ON_HOLD'], ['key' => 'settings.preferences.completed', 'value' => 'COMPLETED'], - ] + ], ], /* @@ -503,5 +503,5 @@ 'Invoice', 'Payment', 'Expense', - ] + ], ]; diff --git a/config/mail.php b/config/mail.php index 9f1ff07e1..624797980 100644 --- a/config/mail.php +++ b/config/mail.php @@ -56,8 +56,8 @@ */ 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'admin@crater.in'), - 'name' => env('MAIL_FROM_NAME', 'Crater'), + 'address' => env('MAIL_FROM_ADDRESS', 'admin@invoiceshelf.com'), + 'name' => env('MAIL_FROM_NAME', 'InvoiceShelf'), ], /* diff --git a/config/media-library.php b/config/media-library.php index 0391faa09..093b431d3 100644 --- a/config/media-library.php +++ b/config/media-library.php @@ -12,7 +12,13 @@ * The maximum file size of an item in bytes. * Adding a larger file will result in an exception. */ - 'max_file_size' => 1024 * 1024 * 10, + 'max_file_size' => 1024 * 1024 * 10, // 10MB + + /* + * This queue connection will be used to generate derived and responsive images. + * Leave empty to use the default queue connection. + */ + 'queue_connection_name' => env('QUEUE_CONNECTION', 'sync'), /* * This queue will be used to generate derived and responsive images. @@ -20,70 +26,66 @@ */ 'queue_name' => '', + /* + * By default all conversions will be performed on a queue. + */ + 'queue_conversions_by_default' => env('QUEUE_CONVERSIONS_BY_DEFAULT', true), + /* * The fully qualified class name of the media model. */ 'media_model' => Spatie\MediaLibrary\MediaCollections\Models\Media::class, - 'remote' => [ - /* - * Any extra headers that should be included when uploading media to - * a remote disk. Even though supported headers may vary between - * different drivers, a sensible default has been provided. - * - * Supported by S3: CacheControl, Expires, StorageClass, - * ServerSideEncryption, Metadata, ACL, ContentEncoding - */ - 'extra_headers' => [ - 'CacheControl' => 'max-age=604800', - ], - ], + /* + * When enabled, media collections will be serialised using the default + * laravel model serialization behaviour. + * + * Keep this option disabled if using Media Library Pro components (https://medialibrary.pro) + */ + 'use_default_collection_serialization' => false, - 'responsive_images' => [ + /* + * The fully qualified class name of the model used for temporary uploads. + * + * This model is only used in Media Library Pro (https://medialibrary.pro) + */ + 'temporary_upload_model' => Spatie\MediaLibraryPro\Models\TemporaryUpload::class, - /* - * This class is responsible for calculating the target widths of the responsive - * images. By default we optimize for filesize and create variations that each are 20% - * smaller than the previous one. More info in the documentation. - * - * https://docs.spatie.be/laravel-medialibrary/v8/advanced-usage/generating-responsive-images - */ - 'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class, + /* + * When enabled, Media Library Pro will only process temporary uploads that were uploaded + * in the same session. You can opt to disable this for stateless usage of + * the pro components. + */ + 'enable_temporary_uploads_session_affinity' => true, - /* - * By default rendering media to a responsive image will add some javascript and a tiny placeholder. - * This ensures that the browser can already determine the correct layout. - */ - 'use_tiny_placeholders' => true, + /* + * When enabled, Media Library pro will generate thumbnails for uploaded file. + */ + 'generate_thumbnails_for_temporary_uploads' => true, - /* - * This class will generate the tiny placeholder used for progressive image loading. By default - * the medialibrary will use a tiny blurred jpg image. - */ - 'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class, - ], + /* + * This is the class that is responsible for naming generated files. + */ + 'file_namer' => Spatie\MediaLibrary\Support\FileNamer\DefaultFileNamer::class, /* - * When converting Media instances to response the medialibrary will add - * a `loading` attribute to the `img` tag. Here you can set the default - * value of that attribute. - * - * Possible values: 'auto', 'lazy' and 'eager, - * - * More info: https://css-tricks.com/native-lazy-loading/ + * The class that contains the strategy for determining a media file's path. */ - 'default_loading_attribute_value' => 'auto', + 'path_generator' => \InvoiceShelf\Generators\CustomPathGenerator::class, /* - * This is the class that is responsible for naming conversion files. By default, - * it will use the filename of the original and concatenate the conversion name to it. + * The class that contains the strategy for determining how to remove files. */ - 'conversion_file_namer' => \Spatie\MediaLibrary\Conversions\DefaultConversionFileNamer::class, + 'file_remover_class' => Spatie\MediaLibrary\Support\FileRemover\DefaultFileRemover::class, /* - * The class that contains the strategy for determining a media file's path. + * Here you can specify which path generator should be used for the given class. */ - 'path_generator' => \Crater\Generators\CustomPathGenerator::class, + 'custom_path_generators' => [ + // Model::class => PathGenerator::class + // or + // 'model_morph_alias' => PathGenerator::class + ], /* * When urls to files get generated, this class will be called. Use the default @@ -91,6 +93,12 @@ */ 'url_generator' => Spatie\MediaLibrary\Support\UrlGenerator\DefaultUrlGenerator::class, + /* + * Moves media on updating to keep path consistent. Enable it only with a custom + * PathGenerator that uses, for example, the media UUID. + */ + 'moves_media_on_update' => false, + /* * Whether to activate versioning when urls to files get generated. * When activated, this attaches a ?v=xx query string to the URL. @@ -104,6 +112,8 @@ */ 'image_optimizers' => [ Spatie\ImageOptimizer\Optimizers\Jpegoptim::class => [ + '-m85', // set maximum quality to 85% + '--force', // ensure that progressive generation is always done also if a little bigger '--strip-all', // this strips out all text information such as comments and EXIF data '--all-progressive', // this will make sure the resulting image is a progressive one ], @@ -122,6 +132,22 @@ '-b', // required parameter for this package '-O3', // this produces the slowest but best results ], + Spatie\ImageOptimizer\Optimizers\Cwebp::class => [ + '-m 6', // for the slowest compression method in order to get the best compression. + '-pass 10', // for maximizing the amount of analysis pass. + '-mt', // multithreading for some speed improvements. + '-q 90', //quality factor that brings the least noticeable changes. + ], + Spatie\ImageOptimizer\Optimizers\Avifenc::class => [ + '-a cq-level=23', // constant quality level, lower values mean better quality and greater file size (0-63). + '-j all', // number of jobs (worker threads, "all" uses all available cores). + '--min 0', // min quantizer for color (0-63). + '--max 63', // max quantizer for color (0-63). + '--minalpha 0', // min quantizer for alpha (0-63). + '--maxalpha 63', // max quantizer for alpha (0-63). + '-a end-usage=q', // rate control mode set to Constant Quality mode. + '-a tune=ssim', // SSIM as tune the encoder for distortion metric. + ], ], /* @@ -130,11 +156,18 @@ 'image_generators' => [ Spatie\MediaLibrary\Conversions\ImageGenerators\Image::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Webp::class, + Spatie\MediaLibrary\Conversions\ImageGenerators\Avif::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Pdf::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Svg::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Video::class, ], + /* + * The path where to store temporary files while performing image conversions. + * If set to null, storage_path('media-library/temp') will be used. + */ + 'temporary_directory_path' => null, + /* * The engine that should perform the image conversions. * Should be either `gd` or `imagick`. @@ -149,18 +182,80 @@ 'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'), 'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'), - /* - * The path where to store temporary files while performing image conversions. - * If set to null, storage_path('media-library/temp') will be used. - */ - 'temporary_directory_path' => null, - /* * Here you can override the class names of the jobs used by this package. Make sure * your custom jobs extend the ones provided by the package. */ 'jobs' => [ - 'perform_conversions' => \Spatie\MediaLibrary\Conversions\Jobs\PerformConversionsJob::class, - 'generate_responsive_images' => \Spatie\MediaLibrary\ResponsiveImages\Jobs\GenerateResponsiveImagesJob::class, + 'perform_conversions' => Spatie\MediaLibrary\Conversions\Jobs\PerformConversionsJob::class, + 'generate_responsive_images' => Spatie\MediaLibrary\ResponsiveImages\Jobs\GenerateResponsiveImagesJob::class, + ], + + /* + * When using the addMediaFromUrl method you may want to replace the default downloader. + * This is particularly useful when the url of the image is behind a firewall and + * need to add additional flags, possibly using curl. + */ + 'media_downloader' => Spatie\MediaLibrary\Downloaders\DefaultDownloader::class, + + 'remote' => [ + /* + * Any extra headers that should be included when uploading media to + * a remote disk. Even though supported headers may vary between + * different drivers, a sensible default has been provided. + * + * Supported by S3: CacheControl, Expires, StorageClass, + * ServerSideEncryption, Metadata, ACL, ContentEncoding + */ + 'extra_headers' => [ + 'CacheControl' => 'max-age=604800', + ], + ], + + 'responsive_images' => [ + /* + * This class is responsible for calculating the target widths of the responsive + * images. By default we optimize for filesize and create variations that each are 30% + * smaller than the previous one. More info in the documentation. + * + * https://docs.spatie.be/laravel-medialibrary/v9/advanced-usage/generating-responsive-images + */ + 'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class, + + /* + * By default rendering media to a responsive image will add some javascript and a tiny placeholder. + * This ensures that the browser can already determine the correct layout. + */ + 'use_tiny_placeholders' => true, + + /* + * This class will generate the tiny placeholder used for progressive image loading. By default + * the media library will use a tiny blurred jpg image. + */ + 'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class, ], + + /* + * When enabling this option, a route will be registered that will enable + * the Media Library Pro Vue and React components to move uploaded files + * in a S3 bucket to their right place. + */ + 'enable_vapor_uploads' => env('ENABLE_MEDIA_LIBRARY_VAPOR_UPLOADS', false), + + /* + * When converting Media instances to response the media library will add + * a `loading` attribute to the `img` tag. Here you can set the default + * value of that attribute. + * + * Possible values: 'lazy', 'eager', 'auto' or null if you don't want to set any loading instruction. + * + * More info: https://css-tricks.com/native-lazy-loading/ + */ + 'default_loading_attribute_value' => null, + + /* + * You can specify a prefix for that is used for storing all media. + * If you set this to `/my-subdir`, all your media will be stored in a `/my-subdir` directory. + */ + 'prefix' => env('MEDIA_PREFIX', ''), ]; diff --git a/config/modules.php b/config/modules.php index f756f6087..9e81b9e08 100644 --- a/config/modules.php +++ b/config/modules.php @@ -39,8 +39,8 @@ 'resources/sass/module' => 'Resources/sass/module.scss', 'resources/scripts/stores/sample-store' => 'Resources/scripts/stores/sample-store.js', 'resources/scripts/views/SamplePage' => 'Resources/scripts/views/SamplePage.vue', - 'resources/locales/en' => 'Resources/locales/en.json', - 'resources/locales/locales' => 'Resources/locales/locales.js', + 'lang/en' => 'Lang/en.json', + 'lang/locales' => 'Lang/locales.js', 'package' => 'package.json', 'postcss.config' => 'postcss.config.js', 'tailwind.config' => 'tailwind.config.js', diff --git a/config/sanctum.php b/config/sanctum.php index 51d060f73..b2375c518 100644 --- a/config/sanctum.php +++ b/config/sanctum.php @@ -40,8 +40,8 @@ */ 'middleware' => [ - 'verify_csrf_token' => Crater\Http\Middleware\VerifyCsrfToken::class, - 'encrypt_cookies' => Crater\Http\Middleware\EncryptCookies::class, + 'verify_csrf_token' => InvoiceShelf\Http\Middleware\VerifyCsrfToken::class, + 'encrypt_cookies' => InvoiceShelf\Http\Middleware\EncryptCookies::class, ], ]; diff --git a/config/services.php b/config/services.php index c9254a8b4..9823d9c6d 100644 --- a/config/services.php +++ b/config/services.php @@ -35,7 +35,7 @@ ], 'stripe' => [ - 'model' => \Crater\Models\User::class, + 'model' => \InvoiceShelf\Models\User::class, 'key' => env('STRIPE_KEY'), 'secret' => env('STRIPE_SECRET'), 'webhook' => [ @@ -63,6 +63,6 @@ ], 'cron_job' => [ - 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0) + 'auth_token' => env('CRON_JOB_AUTH_TOKEN', 0), ], ]; diff --git a/config/trustedproxy.php b/config/trustedproxy.php deleted file mode 100644 index 5d9d0fc65..000000000 --- a/config/trustedproxy.php +++ /dev/null @@ -1,50 +0,0 @@ - null, // [,], '*', ',' - - /* - * To trust one or more specific proxies that connect - * directly to your server, use an array or a string separated by comma of IP addresses: - */ - // 'proxies' => ['192.168.1.1'], - // 'proxies' => '192.168.1.1, 192.168.1.2', - - /* - * Or, to trust all proxies that connect - * directly to your server, use a "*" - */ - 'proxies' => env('TRUSTED_PROXIES', '*'), - - /* - * Which headers to use to detect proxy related data (For, Host, Proto, Port) - * - * Options include: - * - * - Illuminate\Http\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust) - * - Illuminate\Http\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust) - * - Illuminate\Http\Request::HEADER_X_FORWARDED_AWS_ELB (If you are using AWS Elastic Load Balancer) - * - * - 'HEADER_X_FORWARDED_ALL' (use all x-forwarded-* headers to establish trust) - * - 'HEADER_FORWARDED' (use the FORWARDED header to establish trust) - * - 'HEADER_X_FORWARDED_AWS_ELB' (If you are using AWS Elastic Load Balancer) - * - * @link https://symfony.com/doc/current/deployment/proxies.html - */ - 'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL, - -]; diff --git a/config/vite.php b/config/vite.php deleted file mode 100644 index 18e90ba66..000000000 --- a/config/vite.php +++ /dev/null @@ -1,67 +0,0 @@ - [ - 'resources/scripts/main.js', - ], - 'ignore_patterns' => ["/\.d\.ts$/"], - - /* - |-------------------------------------------------------------------------- - | Aliases - |-------------------------------------------------------------------------- - | These aliases will be added to the Vite configuration and used - | to generate a proper tsconfig.json file. - */ - 'aliases' => [ - '@' => 'resources', - ], - - /* - |-------------------------------------------------------------------------- - | Static assets path - |-------------------------------------------------------------------------- - | This option defines the directory that Vite considers as the - | public directory. Its content will be copied to the build directory - | at build-time. - | https://vitejs.dev/config/#publicdir - */ - 'public_directory' => resource_path('static'), - - /* - |-------------------------------------------------------------------------- - | Ping timeout - |-------------------------------------------------------------------------- - | The maximum duration, in seconds, that the ping to the development - | server should take while trying to determine whether to use the - | manifest or the server in a local environment. - */ - 'ping_timeout' => .1, - - /* - |-------------------------------------------------------------------------- - | Build path - |-------------------------------------------------------------------------- - | The directory, relative to /public, in which Vite will build - | the production files. This should match "build.outDir" in the Vite - | configuration file. - */ - 'build_path' => 'build', - - /* - |-------------------------------------------------------------------------- - | Development URL - |-------------------------------------------------------------------------- - | The URL at which the Vite development server runs. - | This is used to generate the script tags when developing. - */ - 'dev_url' => 'http://localhost:3000', -]; diff --git a/crowdin.yml b/crowdin.yml index da4a46a6c..71d778912 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,3 @@ files: - - source: /resources/scripts/locales/en.json - translation: /resources/scripts/locales/%two_letters_code%.json + - source: /lang/en.json + translation: /lang/%two_letters_code%.json diff --git a/database/factories/AddressFactory.php b/database/factories/AddressFactory.php index 992674c78..328027334 100644 --- a/database/factories/AddressFactory.php +++ b/database/factories/AddressFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; -use Crater\Models\Address; -use Crater\Models\Customer; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Address; +use InvoiceShelf\Models\Customer; +use InvoiceShelf\Models\User; class AddressFactory extends Factory { @@ -36,7 +36,7 @@ public function definition() 'fax' => $this->faker->phoneNumber, 'type' => $this->faker->randomElement([Address::BILLING_TYPE, Address::SHIPPING_TYPE]), 'user_id' => User::factory(), - 'customer_id' => Customer::factory() + 'customer_id' => Customer::factory(), ]; } } diff --git a/database/factories/CompanyFactory.php b/database/factories/CompanyFactory.php index 763ad4aaf..b3e413b38 100644 --- a/database/factories/CompanyFactory.php +++ b/database/factories/CompanyFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\Company; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Company; +use InvoiceShelf\Models\User; class CompanyFactory extends Factory { @@ -26,7 +26,7 @@ public function definition() '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 bec7a80e0..554bbcb02 100644 --- a/database/factories/CompanySettingFactory.php +++ b/database/factories/CompanySettingFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\CompanySetting; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\CompanySetting; +use InvoiceShelf\Models\User; class CompanySettingFactory extends Factory { diff --git a/database/factories/CustomFieldFactory.php b/database/factories/CustomFieldFactory.php index 8eb906ce5..03b52ec03 100644 --- a/database/factories/CustomFieldFactory.php +++ b/database/factories/CustomFieldFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\CustomField; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\CustomField; +use InvoiceShelf\Models\User; class CustomFieldFactory extends Factory { @@ -31,7 +31,7 @@ public function definition() 'slug' => function (array $item) { return clean_slug($item['model_type'], $item['label']); }, - 'type' => $this->faker->randomElement(['Text', 'Textarea', 'Phone', 'URL', 'Number','Dropdown' , 'Switch', 'Date', 'DateTime', 'Time']), + 'type' => $this->faker->randomElement(['Text', 'Textarea', 'Phone', 'URL', 'Number', 'Dropdown', 'Switch', 'Date', 'DateTime', 'Time']), 'company_id' => User::find(1)->companies()->first()->id, ]; } diff --git a/database/factories/CustomFieldValueFactory.php b/database/factories/CustomFieldValueFactory.php index 7891970bc..b50fed121 100644 --- a/database/factories/CustomFieldValueFactory.php +++ b/database/factories/CustomFieldValueFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; -use Crater\Models\CustomField; -use Crater\Models\CustomFieldValue; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\CustomField; +use InvoiceShelf\Models\CustomFieldValue; +use InvoiceShelf\Models\User; class CustomFieldValueFactory extends Factory { @@ -24,7 +24,7 @@ class CustomFieldValueFactory extends Factory public function definition() { return [ - 'custom_field_valuable_type' => $this->faker->name , + 'custom_field_valuable_type' => $this->faker->name, 'custom_field_valuable_id' => 1, 'type' => $this->faker->name, 'custom_field_id' => CustomField::factory(), diff --git a/database/factories/CustomerFactory.php b/database/factories/CustomerFactory.php index f8f3d400d..4823691d4 100644 --- a/database/factories/CustomerFactory.php +++ b/database/factories/CustomerFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Customer; -use Crater\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 { diff --git a/database/factories/EmailLogFactory.php b/database/factories/EmailLogFactory.php index d4e86a494..1efe9eeeb 100644 --- a/database/factories/EmailLogFactory.php +++ b/database/factories/EmailLogFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\EmailLog; -use Crater\Models\Estimate; -use Crater\Models\Invoice; -use Crater\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 { diff --git a/database/factories/EstimateFactory.php b/database/factories/EstimateFactory.php index e7e711162..e41f7cf65 100644 --- a/database/factories/EstimateFactory.php +++ b/database/factories/EstimateFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Customer; -use Crater\Models\Estimate; -use Crater\Models\User; -use Crater\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 { diff --git a/database/factories/EstimateItemFactory.php b/database/factories/EstimateItemFactory.php index 2b78a4977..62cd5054d 100644 --- a/database/factories/EstimateItemFactory.php +++ b/database/factories/EstimateItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\Estimate; -use Crater\Models\EstimateItem; -use Crater\Models\Item; -use Crater\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 { @@ -40,7 +40,7 @@ public function definition() 'company_id' => User::find(1)->companies()->first()->id, 'tax' => $this->faker->randomDigitNotNull, 'total' => function (array $item) { - return ($item['price'] * $item['quantity']); + return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $estimate) { diff --git a/database/factories/ExchangeRateLogFactory.php b/database/factories/ExchangeRateLogFactory.php index 14bf2006e..6eaa360c3 100644 --- a/database/factories/ExchangeRateLogFactory.php +++ b/database/factories/ExchangeRateLogFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\ExchangeRateLog; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Currency; +use InvoiceShelf\Models\ExchangeRateLog; +use InvoiceShelf\Models\User; class ExchangeRateLogFactory extends Factory { @@ -27,7 +27,7 @@ public function definition() '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 c71bf5777..566f8289b 100644 --- a/database/factories/ExchangeRateProviderFactory.php +++ b/database/factories/ExchangeRateProviderFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; -use Crater\Models\ExchangeRateProvider; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\ExchangeRateProvider; class ExchangeRateProviderFactory extends Factory { diff --git a/database/factories/ExpenseCategoryFactory.php b/database/factories/ExpenseCategoryFactory.php index 93800fcac..78fe6db68 100644 --- a/database/factories/ExpenseCategoryFactory.php +++ b/database/factories/ExpenseCategoryFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\ExpenseCategory; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\ExpenseCategory; +use InvoiceShelf\Models\User; class ExpenseCategoryFactory extends Factory { diff --git a/database/factories/ExpenseFactory.php b/database/factories/ExpenseFactory.php index 4ad254238..c18491217 100644 --- a/database/factories/ExpenseFactory.php +++ b/database/factories/ExpenseFactory.php @@ -2,12 +2,12 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Customer; -use Crater\Models\Expense; -use Crater\Models\ExpenseCategory; -use Crater\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 { diff --git a/database/factories/FileDiskFactory.php b/database/factories/FileDiskFactory.php index d52278128..a83a54d62 100644 --- a/database/factories/FileDiskFactory.php +++ b/database/factories/FileDiskFactory.php @@ -2,8 +2,8 @@ namespace Database\Factories; -use Crater\Models\FileDisk; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\FileDisk; class FileDiskFactory extends Factory { diff --git a/database/factories/InvoiceFactory.php b/database/factories/InvoiceFactory.php index 04c4af118..7ecbb799e 100644 --- a/database/factories/InvoiceFactory.php +++ b/database/factories/InvoiceFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Customer; -use Crater\Models\Invoice; -use Crater\Models\RecurringInvoice; -use Crater\Models\User; -use Crater\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 { diff --git a/database/factories/InvoiceItemFactory.php b/database/factories/InvoiceItemFactory.php index 7d3ce52f0..671635a97 100644 --- a/database/factories/InvoiceItemFactory.php +++ b/database/factories/InvoiceItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\InvoiceItem; -use Crater\Models\Item; -use Crater\Models\RecurringInvoice; -use Crater\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 { @@ -38,7 +38,7 @@ public function definition() 'company_id' => User::find(1)->companies()->first()->id, 'quantity' => $this->faker->randomDigitNotNull, 'total' => function (array $item) { - return ($item['price'] * $item['quantity']); + return $item['price'] * $item['quantity']; }, 'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), 'discount_val' => function (array $invoice) { diff --git a/database/factories/ItemFactory.php b/database/factories/ItemFactory.php index bc476e941..ba7153167 100644 --- a/database/factories/ItemFactory.php +++ b/database/factories/ItemFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Item; -use Crater\Models\Unit; -use Crater\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 { @@ -32,7 +32,7 @@ public function definition() 'unit_id' => Unit::factory(), 'creator_id' => User::where('role', 'super admin')->first()->company_id, 'currency_id' => Currency::find(1)->id, - 'tax_per_item' => $this->faker->randomElement([true, false]) + 'tax_per_item' => $this->faker->randomElement([true, false]), ]; } } diff --git a/database/factories/NoteFactory.php b/database/factories/NoteFactory.php index 7e436efe8..b3fcc3e33 100644 --- a/database/factories/NoteFactory.php +++ b/database/factories/NoteFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\Note; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Note; +use InvoiceShelf\Models\User; class NoteFactory extends Factory { diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php index 9fb91c657..eec4a0296 100644 --- a/database/factories/PaymentFactory.php +++ b/database/factories/PaymentFactory.php @@ -2,13 +2,13 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Customer; -use Crater\Models\Payment; -use Crater\Models\PaymentMethod; -use Crater\Models\User; -use Crater\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 { diff --git a/database/factories/PaymentMethodFactory.php b/database/factories/PaymentMethodFactory.php index c2e35767c..f63f4753e 100644 --- a/database/factories/PaymentMethodFactory.php +++ b/database/factories/PaymentMethodFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\PaymentMethod; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\PaymentMethod; +use InvoiceShelf\Models\User; class PaymentMethodFactory extends Factory { diff --git a/database/factories/RecurringInvoiceFactory.php b/database/factories/RecurringInvoiceFactory.php index 90756ba84..9f977e326 100644 --- a/database/factories/RecurringInvoiceFactory.php +++ b/database/factories/RecurringInvoiceFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; -use Crater\Models\Customer; -use Crater\Models\RecurringInvoice; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Customer; +use InvoiceShelf\Models\RecurringInvoice; +use InvoiceShelf\Models\User; class RecurringInvoiceFactory extends Factory { @@ -41,7 +41,7 @@ public function definition() 'limit_by' => $this->faker->randomElement(['NONE', 'COUNT', 'DATE']), '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 0ca3f7fd2..6706779c9 100644 --- a/database/factories/TaxFactory.php +++ b/database/factories/TaxFactory.php @@ -2,11 +2,11 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\Models\Tax; -use Crater\Models\TaxType; -use Crater\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 { diff --git a/database/factories/TaxTypeFactory.php b/database/factories/TaxTypeFactory.php index 2306d0505..1ad8f074a 100644 --- a/database/factories/TaxTypeFactory.php +++ b/database/factories/TaxTypeFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\TaxType; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\TaxType; +use InvoiceShelf\Models\User; class TaxTypeFactory extends Factory { diff --git a/database/factories/UnitFactory.php b/database/factories/UnitFactory.php index 8b244450b..05fac5a77 100644 --- a/database/factories/UnitFactory.php +++ b/database/factories/UnitFactory.php @@ -2,9 +2,9 @@ namespace Database\Factories; -use Crater\Models\Unit; -use Crater\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; +use InvoiceShelf\Models\Unit; +use InvoiceShelf\Models\User; class UnitFactory extends Factory { diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 2f67269ef..7a7cca4ed 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,10 +2,10 @@ namespace Database\Factories; -use Crater\Models\Currency; -use Crater\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 { 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 2d695a2b4..480506a4c 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 @@ -43,6 +43,11 @@ public function up() */ public function down() { + Schema::table('custom_fields', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['company_id']); + } + }); 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 7701013d3..c8fc4c1e1 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 @@ -39,6 +39,12 @@ public function up() */ public function down() { - Schema::dropIfExists('answers'); + Schema::table('custom_field_values', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['custom_field_id']); + $table->dropForeign(['company_id']); + } + }); + 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 130994c12..ddb4c8e02 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 @@ -26,8 +26,6 @@ public function up() */ public function down() { - Schema::table('expenses', function (Blueprint $table) { - $table->dropColumn('paid'); - }); + } } 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 570fe9191..e9ce5a437 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 @@ -28,7 +28,9 @@ public function up() public function down() { Schema::table('addresses', function (Blueprint $table) { - $table->dropForeign(['company_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['company_id']); + } }); } } 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 81fd59066..e39625fa0 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('invoices', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 59263bb29..8287f50f9 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('estimates', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 e16cc469d..9f243340c 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('payments', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 02e0fd5a8..822c72d5c 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('expenses', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 5d1a8b81b..9287a482b 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('items', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 15797a105..a4925369f 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 @@ -27,7 +27,9 @@ public function up() public function down() { Schema::table('users', function (Blueprint $table) { - $table->dropForeign(['creator_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['creator_id']); + } }); } } 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 54a901f74..8cbe22bff 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,7 +1,7 @@ id)->update([ 'company_id' => $user->company_id, - 'user_id' => null + 'user_id' => null, ]); // Update company settings 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 d39a91f9f..bd5286bb0 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,7 +1,7 @@ foreign('role_id') - ->references('id')->on(Models::table('roles')) - ->onUpdate('cascade')->onDelete('cascade'); + ->references('id')->on(Models::table('roles')) + ->onUpdate('cascade')->onDelete('cascade'); }); Schema::create(Models::table('permissions'), function (Blueprint $table) { @@ -94,8 +93,8 @@ public function up() ); $table->foreign('ability_id') - ->references('id')->on(Models::table('abilities')) - ->onUpdate('cascade')->onDelete('cascade'); + ->references('id')->on(Models::table('abilities')) + ->onUpdate('cascade')->onDelete('cascade'); }); } 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 eabbe753d..6e8977ca3 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,18 +1,18 @@ id)->update([ 'customer_id' => $newCustomer->id, - 'user_id' => null + 'user_id' => null, ]); Expense::where('user_id', $user->id)->update([ 'customer_id' => $newCustomer->id, - 'user_id' => null + 'user_id' => null, ]); Estimate::where('user_id', $user->id)->update([ 'customer_id' => $newCustomer->id, - 'user_id' => null + 'user_id' => null, ]); Invoice::where('user_id', $user->id)->update([ 'customer_id' => $newCustomer->id, - 'user_id' => null + 'user_id' => null, ]); Payment::where('user_id', $user->id)->update([ 'customer_id' => $newCustomer->id, - 'user_id' => null + 'user_id' => null, ]); CustomFieldValue::where('custom_field_valuable_id', $user->id) - ->where('custom_field_valuable_type', 'Crater\Models\User') + ->where('custom_field_valuable_type', 'InvoiceShelf\Models\User') ->update([ - 'custom_field_valuable_type' => 'Crater\Models\Customer', - 'custom_field_valuable_id' => $newCustomer->id + 'custom_field_valuable_type' => 'InvoiceShelf\Models\Customer', + 'custom_field_valuable_id' => $newCustomer->id, ]); } @@ -69,7 +69,7 @@ public function up() if ($customFields) { foreach ($customFields as $customField) { - $customField->model_type = "Customer"; + $customField->model_type = 'Customer'; $customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_')); $customField->save(); } 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 e98ca2709..8f0e05fad 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,9 +1,9 @@ dropColumn('slug'); - $table->dropForeign(['owner_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['owner_id']); + } }); } } 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 939d883bf..354a1bfb2 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,10 +1,10 @@ dropForeign(['company_id']); + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['company_id']); + } }); } } 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 bacec8d0d..450097462 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('invoices', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['recurring_invoice_id']); + } $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 063c6d347..094443e69 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 @@ -28,6 +28,9 @@ public function up() public function down() { Schema::table('invoice_items', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['recurring_invoice_id']); + } $table->dropColumn('recurring_invoice_id'); }); } 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 7d45570d0..8554ab610 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 @@ -37,7 +37,7 @@ public function down() 'base_sub_total', 'base_total', 'base_tax', - 'base_due_amount' + 'base_due_amount', ]); }); } 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 dff9811b0..32b6837ac 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 @@ -35,7 +35,7 @@ public function down() 'exchange_rate', 'base_discount_val', 'base_tax', - 'base_total' + 'base_total', ]); }); } 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 4be5f60a0..ea6c3172a 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 @@ -35,7 +35,7 @@ public function down() 'base_discount_val', 'base_price', 'base_tax', - 'base_total' + 'base_total', ]); }); } 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 ad754f0db..ab49fd0be 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('invoices', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['currency_id']); + } $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 ae49674c0..b68ef26d8 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('payments', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['currency_id']); + } $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 370fcf9d1..f2a27429d 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('items', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['currency_id']); + } $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 d1745bb37..f21c0ad1c 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('taxes', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['currency_id']); + } $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 724ff379c..17d6f1151 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('estimates', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['currency_id']); + } $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 11dda3d60..c3dc9cf56 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 @@ -33,6 +33,6 @@ public function up() */ public function down() { - Schema::dropIfExists('exchange_rates'); + 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 f8889a20c..34a259bef 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,9 +1,9 @@ map(function ($invoice) use ($customerSequence) { - $invoiceNumber = explode("-", $invoice->invoice_number); + $invoiceNumber = explode('-', $invoice->invoice_number); $invoice->sequence_number = intval(end($invoiceNumber)); $invoice->customer_sequence_number = $customerSequence; $invoice->save(); @@ -55,7 +55,7 @@ public function up() if ($estimates) { $customerSequence = 1; $estimates->map(function ($estimate) use ($customerSequence) { - $estimateNumber = explode("-", $estimate->estimate_number); + $estimateNumber = explode('-', $estimate->estimate_number); $estimate->sequence_number = intval(end($estimateNumber)); $estimate->customer_sequence_number = $customerSequence; $estimate->save(); @@ -67,7 +67,7 @@ public function up() if ($estimates) { $customerSequence = 1; $payments->map(function ($payment) use ($customerSequence) { - $paymentNumber = explode("-", $payment->payment_number); + $paymentNumber = explode('-', $payment->payment_number); $payment->sequence_number = intval(end($paymentNumber)); $payment->customer_sequence_number = $customerSequence; $payment->save(); 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 90da41a7e..413f3fd64 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('taxes', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['recurring_invoice_id']); + } $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 c1fbabdb1..4208af906 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 @@ -27,6 +27,9 @@ public function up() public function down() { Schema::table('expenses', function (Blueprint $table) { + if (config('database.default') !== 'sqlite') { + $table->dropForeign(['payment_method_id']); + } $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 cba5cd56b..441ee8c24 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,10 +1,10 @@ $invoice->sub_total, 'base_total' => $invoice->total, 'base_tax' => $invoice->tax, - 'base_due_amount' => $invoice->due_amount + 'base_due_amount' => $invoice->due_amount, ]); } else { $invoice->update([ @@ -72,7 +72,7 @@ public function up() 'base_discount_val' => $estimate->sub_total, 'base_sub_total' => $estimate->sub_total, 'base_total' => $estimate->total, - 'base_tax' => $estimate->tax + 'base_tax' => $estimate->tax, ]); } else { $estimate->update([ @@ -89,7 +89,7 @@ public function up() $payment->update([ 'currency_id' => $currency_id, 'base_amount' => $payment->amount, - 'exchange_rate' => 1 + 'exchange_rate' => 1, ]); } else { $payment->update([ @@ -110,7 +110,7 @@ public function items($model) 'base_discount_val' => $item->discount_val * $model->exchange_rate, 'base_price' => $item->price * $model->exchange_rate, 'base_tax' => $item->tax * $model->exchange_rate, - 'base_total' => $item->total * $model->exchange_rate + 'base_total' => $item->total * $model->exchange_rate, ]); $this->taxes($item, $model->currency_id); 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 3056381b9..cc5df0abf 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,8 +1,8 @@ 'YES', 'estimate_expiry_date_days' => 7, 'estimate_convert_action' => 'no_action', - 'bulk_exchange_rate_configured' => "NO", + 'bulk_exchange_rate_configured' => 'NO', 'invoice_number_format' => "{{SERIES:{$oldSettings['invoice_prefix']}}}{{DELIMITER:-}}{{SEQUENCE:{$oldSettings['invoice_number_length']}}}", 'estimate_number_format' => "{{SERIES:{$oldSettings['estimate_prefix']}}}{{DELIMITER:-}}{{SEQUENCE:{$oldSettings['estimate_number_length']}}}", 'payment_number_format' => "{{SERIES:{$oldSettings['payment_prefix']}}}{{DELIMITER:-}}{{SEQUENCE:{$oldSettings['payment_number_length']}}}", diff --git a/database/migrations/2021_11_23_093811_update_crater_version_500.php b/database/migrations/2021_11_23_093811_update_crater_version_500.php index 3c205d6dc..03ca0fbe8 100644 --- a/database/migrations/2021_11_23_093811_update_crater_version_500.php +++ b/database/migrations/2021_11_23_093811_update_crater_version_500.php @@ -1,7 +1,7 @@ dropForeign(['transaction_id']); + } $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 18cb3d2f9..cb374abee 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,9 +1,9 @@ 'Yes', - 'link_expiry_days' => 7 + 'link_expiry_days' => 7, ]; $companies = Company::all(); 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 35d3b333f..4492d57d8 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,9 +1,9 @@ dropForeign(['overdue']); + $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 0ab61d0df..d408f1ae7 100644 --- a/database/migrations/2022_03_03_060121_crater_version_605.php +++ b/database/migrations/2022_03_03_060121_crater_version_605.php @@ -1,7 +1,7 @@ json('generated_conversions')->nullable(); + }); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('media', function (Blueprint $table) { + $table->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 new file mode 100644 index 000000000..fbdbbbeab --- /dev/null +++ b/database/migrations/2024_02_04_005632_update_version_100.php @@ -0,0 +1,23 @@ +bigInteger('amount')->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + 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 new file mode 100644 index 000000000..69227518b --- /dev/null +++ b/database/migrations/2024_02_11_075831_update_version_110.php @@ -0,0 +1,39 @@ +dateTime('expires_at')->nullable()->after('last_used_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('personal_access_tokens', function (Blueprint $table) { + $table->dropColumn('expires_at'); + }); + } +}; diff --git a/database/migrations/2024_04_12_162703_add_tax_ids_to_companies.php b/database/migrations/2024_04_12_162703_add_tax_ids_to_companies.php new file mode 100644 index 000000000..90d620e76 --- /dev/null +++ b/database/migrations/2024_04_12_162703_add_tax_ids_to_companies.php @@ -0,0 +1,32 @@ +after('unique_hash', function (Blueprint $table) { + $table->string('vat_id')->nullable(); + $table->string('tax_id')->nullable(); + }); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('companies', function (Blueprint $table) { + $table->dropColumn('vat_id'); + $table->dropColumn('tax_id'); + }); + } +}; diff --git a/database/migrations/2024_04_14_173940_replace_crater_type.php b/database/migrations/2024_04_14_173940_replace_crater_type.php new file mode 100644 index 000000000..7e6588611 --- /dev/null +++ b/database/migrations/2024_04_14_173940_replace_crater_type.php @@ -0,0 +1,37 @@ +delete(); $countries = [ - ['id' => 1,'code' => 'AF' ,'name' => "Afghanistan",'phonecode' => 93], - ['id' => 2,'code' => 'AL' ,'name' => "Albania",'phonecode' => 355], - ['id' => 3,'code' => 'DZ' ,'name' => "Algeria",'phonecode' => 213], - ['id' => 4,'code' => 'AS' ,'name' => "American Samoa",'phonecode' => 1684], - ['id' => 5,'code' => 'AD' ,'name' => "Andorra",'phonecode' => 376], - ['id' => 6,'code' => 'AO' ,'name' => "Angola",'phonecode' => 244], - ['id' => 7,'code' => 'AI' ,'name' => "Anguilla",'phonecode' => 1264], - ['id' => 8,'code' => 'AQ' ,'name' => "Antarctica",'phonecode' => 0], - ['id' => 9,'code' => 'AG' ,'name' => "Antigua And Barbuda",'phonecode' => 1268], - ['id' => 10,'code' => 'AR','name' => "Argentina",'phonecode' => 54], - ['id' => 11,'code' => 'AM','name' => "Armenia",'phonecode' => 374], - ['id' => 12,'code' => 'AW','name' => "Aruba",'phonecode' => 297], - ['id' => 13,'code' => 'AU','name' => "Australia",'phonecode' => 61], - ['id' => 14,'code' => 'AT','name' => "Austria",'phonecode' => 43], - ['id' => 15,'code' => 'AZ','name' => "Azerbaijan",'phonecode' => 994], - ['id' => 16,'code' => 'BS','name' => "Bahamas The",'phonecode' => 1242], - ['id' => 17,'code' => 'BH','name' => "Bahrain",'phonecode' => 973], - ['id' => 18,'code' => 'BD','name' => "Bangladesh",'phonecode' => 880], - ['id' => 19,'code' => 'BB','name' => "Barbados",'phonecode' => 1246], - ['id' => 20,'code' => 'BY','name' => "Belarus",'phonecode' => 375], - ['id' => 21,'code' => 'BE','name' => "Belgium",'phonecode' => 32], - ['id' => 22,'code' => 'BZ','name' => "Belize",'phonecode' => 501], - ['id' => 23,'code' => 'BJ','name' => "Benin",'phonecode' => 229], - ['id' => 24,'code' => 'BM','name' => "Bermuda",'phonecode' => 1441], - ['id' => 25,'code' => 'BT','name' => "Bhutan",'phonecode' => 975], - ['id' => 26,'code' => 'BO','name' => "Bolivia",'phonecode' => 591], - ['id' => 27,'code' => 'BA','name' => "Bosnia and Herzegovina",'phonecode' => 387], - ['id' => 28,'code' => 'BW','name' => "Botswana",'phonecode' => 267], - ['id' => 29,'code' => 'BV','name' => "Bouvet Island",'phonecode' => 0], - ['id' => 30,'code' => 'BR','name' => "Brazil",'phonecode' => 55], - ['id' => 31,'code' => 'IO','name' => "British Indian Ocean Territory",'phonecode' => 246], - ['id' => 32,'code' => 'BN','name' => "Brunei",'phonecode' => 673], - ['id' => 33,'code' => 'BG','name' => "Bulgaria",'phonecode' => 359], - ['id' => 34,'code' => 'BF','name' => "Burkina Faso",'phonecode' => 226], - ['id' => 35,'code' => 'BI','name' => "Burundi",'phonecode' => 257], - ['id' => 36,'code' => 'KH','name' => "Cambodia",'phonecode' => 855], - ['id' => 37,'code' => 'CM','name' => "Cameroon",'phonecode' => 237], - ['id' => 38,'code' => 'CA','name' => "Canada",'phonecode' => 1], - ['id' => 39,'code' => 'CV','name' => "Cape Verde",'phonecode' => 238], - ['id' => 40,'code' => 'KY','name' => "Cayman Islands",'phonecode' => 1345], - ['id' => 41,'code' => 'CF','name' => "Central African Republic",'phonecode' => 236], - ['id' => 42,'code' => 'TD','name' => "Chad",'phonecode' => 235], - ['id' => 43,'code' => 'CL','name' => "Chile",'phonecode' => 56], - ['id' => 44,'code' => 'CN','name' => "China",'phonecode' => 86], - ['id' => 45,'code' => 'CX','name' => "Christmas Island",'phonecode' => 61], - ['id' => 46,'code' => 'CC','name' => "Cocos (Keeling) Islands",'phonecode' => 672], - ['id' => 47,'code' => 'CO','name' => "Colombia",'phonecode' => 57], - ['id' => 48,'code' => 'KM','name' => "Comoros",'phonecode' => 269], - ['id' => 49,'code' => 'CG','name' => "Congo",'phonecode' => 242], - ['id' => 50,'code' => 'CD','name' => "Congo The Democratic Republic Of The",'phonecode' => 242], - ['id' => 51,'code' => 'CK','name' => "Cook Islands",'phonecode' => 682], - ['id' => 52,'code' => 'CR','name' => "Costa Rica",'phonecode' => 506], - ['id' => 53,'code' => 'CI','name' => "Cote D Ivoire (Ivory Coast)",'phonecode' => 225], - ['id' => 54,'code' => 'HR','name' => "Croatia (Hrvatska)",'phonecode' => 385], - ['id' => 55,'code' => 'CU','name' => "Cuba",'phonecode' => 53], - ['id' => 56,'code' => 'CY','name' => "Cyprus",'phonecode' => 357], - ['id' => 57,'code' => 'CZ','name' => "Czech Republic",'phonecode' => 420], - ['id' => 58,'code' => 'DK','name' => "Denmark",'phonecode' => 45], - ['id' => 59,'code' => 'DJ','name' => "Djibouti",'phonecode' => 253], - ['id' => 60,'code' => 'DM','name' => "Dominica",'phonecode' => 1767], - ['id' => 61,'code' => 'DO','name' => "Dominican Republic",'phonecode' => 1809], - ['id' => 62,'code' => 'TP','name' => "East Timor",'phonecode' => 670], - ['id' => 63,'code' => 'EC','name' => "Ecuador",'phonecode' => 593], - ['id' => 64,'code' => 'EG','name' => "Egypt",'phonecode' => 20], - ['id' => 65,'code' => 'SV','name' => "El Salvador",'phonecode' => 503], - ['id' => 66,'code' => 'GQ','name' => "Equatorial Guinea",'phonecode' => 240], - ['id' => 67,'code' => 'ER','name' => "Eritrea",'phonecode' => 291], - ['id' => 68,'code' => 'EE','name' => "Estonia",'phonecode' => 372], - ['id' => 69,'code' => 'ET','name' => "Ethiopia",'phonecode' => 251], - ['id' => 70,'code' => 'XA','name' => "External Territories of Australia",'phonecode' => 61], - ['id' => 71,'code' => 'FK','name' => "Falkland Islands",'phonecode' => 500], - ['id' => 72,'code' => 'FO','name' => "Faroe Islands",'phonecode' => 298], - ['id' => 73,'code' => 'FJ','name' => "Fiji Islands",'phonecode' => 679], - ['id' => 74,'code' => 'FI','name' => "Finland",'phonecode' => 358], - ['id' => 75,'code' => 'FR','name' => "France",'phonecode' => 33], - ['id' => 76,'code' => 'GF','name' => "French Guiana",'phonecode' => 594], - ['id' => 77,'code' => 'PF','name' => "French Polynesia",'phonecode' => 689], - ['id' => 78,'code' => 'TF','name' => "French Southern Territories",'phonecode' => 0], - ['id' => 79,'code' => 'GA','name' => "Gabon",'phonecode' => 241], - ['id' => 80,'code' => 'GM','name' => "Gambia The",'phonecode' => 220], - ['id' => 81,'code' => 'GE','name' => "Georgia",'phonecode' => 995], - ['id' => 82,'code' => 'DE','name' => "Germany",'phonecode' => 49], - ['id' => 83,'code' => 'GH','name' => "Ghana",'phonecode' => 233], - ['id' => 84,'code' => 'GI','name' => "Gibraltar",'phonecode' => 350], - ['id' => 85,'code' => 'GR','name' => "Greece",'phonecode' => 30], - ['id' => 86,'code' => 'GL','name' => "Greenland",'phonecode' => 299], - ['id' => 87,'code' => 'GD','name' => "Grenada",'phonecode' => 1473], - ['id' => 88,'code' => 'GP','name' => "Guadeloupe",'phonecode' => 590], - ['id' => 89,'code' => 'GU','name' => "Guam",'phonecode' => 1671], - ['id' => 90,'code' => 'GT','name' => "Guatemala",'phonecode' => 502], - ['id' => 91,'code' => 'XU','name' => "Guernsey and Alderney",'phonecode' => 44], - ['id' => 92,'code' => 'GN','name' => "Guinea",'phonecode' => 224], - ['id' => 93,'code' => 'GW','name' => "Guinea-Bissau",'phonecode' => 245], - ['id' => 94,'code' => 'GY','name' => "Guyana",'phonecode' => 592], - ['id' => 95,'code' => 'HT','name' => "Haiti",'phonecode' => 509], - ['id' => 96,'code' => 'HM','name' => "Heard and McDonald Islands",'phonecode' => 0], - ['id' => 97,'code' => 'HN','name' => "Honduras",'phonecode' => 504], - ['id' => 98,'code' => 'HK','name' => "Hong Kong S.A.R.",'phonecode' => 852], - ['id' => 99,'code' => 'HU','name' => "Hungary",'phonecode' => 36], - ['id' => 100,'code' => 'IS','name' => "Iceland",'phonecode' => 354], - ['id' => 101,'code' => 'IN','name' => "India",'phonecode' => 91], - ['id' => 102,'code' => 'ID','name' => "Indonesia",'phonecode' => 62], - ['id' => 103,'code' => 'IR','name' => "Iran",'phonecode' => 98], - ['id' => 104,'code' => 'IQ','name' => "Iraq",'phonecode' => 964], - ['id' => 105,'code' => 'IE','name' => "Ireland",'phonecode' => 353], - ['id' => 106,'code' => 'IL','name' => "Israel",'phonecode' => 972], - ['id' => 107,'code' => 'IT','name' => "Italy",'phonecode' => 39], - ['id' => 108,'code' => 'JM','name' => "Jamaica",'phonecode' => 1876], - ['id' => 109,'code' => 'JP','name' => "Japan",'phonecode' => 81], - ['id' => 110,'code' => 'XJ','name' => "Jersey",'phonecode' => 44], - ['id' => 111,'code' => 'JO','name' => "Jordan",'phonecode' => 962], - ['id' => 112,'code' => 'KZ','name' => "Kazakhstan",'phonecode' => 7], - ['id' => 113,'code' => 'KE','name' => "Kenya",'phonecode' => 254], - ['id' => 114,'code' => 'KI','name' => "Kiribati",'phonecode' => 686], - ['id' => 115,'code' => 'KP','name' => "Korea North",'phonecode' => 850], - ['id' => 116,'code' => 'KR','name' => "Korea South",'phonecode' => 82], - ['id' => 117,'code' => 'KW','name' => "Kuwait",'phonecode' => 965], - ['id' => 118,'code' => 'KG','name' => "Kyrgyzstan",'phonecode' => 996], - ['id' => 119,'code' => 'LA','name' => "Laos",'phonecode' => 856], - ['id' => 120,'code' => 'LV','name' => "Latvia",'phonecode' => 371], - ['id' => 121,'code' => 'LB','name' => "Lebanon",'phonecode' => 961], - ['id' => 122,'code' => 'LS','name' => "Lesotho",'phonecode' => 266], - ['id' => 123,'code' => 'LR','name' => "Liberia",'phonecode' => 231], - ['id' => 124,'code' => 'LY','name' => "Libya",'phonecode' => 218], - ['id' => 125,'code' => 'LI','name' => "Liechtenstein",'phonecode' => 423], - ['id' => 126,'code' => 'LT','name' => "Lithuania",'phonecode' => 370], - ['id' => 127,'code' => 'LU','name' => "Luxembourg",'phonecode' => 352], - ['id' => 128,'code' => 'MO','name' => "Macau S.A.R.",'phonecode' => 853], - ['id' => 129,'code' => 'MK','name' => "Macedonia",'phonecode' => 389], - ['id' => 130,'code' => 'MG','name' => "Madagascar",'phonecode' => 261], - ['id' => 131,'code' => 'MW','name' => "Malawi",'phonecode' => 265], - ['id' => 132,'code' => 'MY','name' => "Malaysia",'phonecode' => 60], - ['id' => 133,'code' => 'MV','name' => "Maldives",'phonecode' => 960], - ['id' => 134,'code' => 'ML','name' => "Mali",'phonecode' => 223], - ['id' => 135,'code' => 'MT','name' => "Malta",'phonecode' => 356], - ['id' => 136,'code' => 'XM','name' => "Man (Isle of)",'phonecode' => 44], - ['id' => 137,'code' => 'MH','name' => "Marshall Islands",'phonecode' => 692], - ['id' => 138,'code' => 'MQ','name' => "Martinique",'phonecode' => 596], - ['id' => 139,'code' => 'MR','name' => "Mauritania",'phonecode' => 222], - ['id' => 140,'code' => 'MU','name' => "Mauritius",'phonecode' => 230], - ['id' => 141,'code' => 'YT','name' => "Mayotte",'phonecode' => 269], - ['id' => 142,'code' => 'MX','name' => "Mexico",'phonecode' => 52], - ['id' => 143,'code' => 'FM','name' => "Micronesia",'phonecode' => 691], - ['id' => 144,'code' => 'MD','name' => "Moldova",'phonecode' => 373], - ['id' => 145,'code' => 'MC','name' => "Monaco",'phonecode' => 377], - ['id' => 146,'code' => 'MN','name' => "Mongolia",'phonecode' => 976], - ['id' => 147,'code' => 'MS','name' => "Montserrat",'phonecode' => 1664], - ['id' => 148,'code' => 'MA','name' => "Morocco",'phonecode' => 212], - ['id' => 149,'code' => 'MZ','name' => "Mozambique",'phonecode' => 258], - ['id' => 150,'code' => 'MM','name' => "Myanmar",'phonecode' => 95], - ['id' => 151,'code' => 'NA','name' => "Namibia",'phonecode' => 264], - ['id' => 152,'code' => 'NR','name' => "Nauru",'phonecode' => 674], - ['id' => 153,'code' => 'NP','name' => "Nepal",'phonecode' => 977], - ['id' => 154,'code' => 'AN','name' => "Netherlands Antilles",'phonecode' => 599], - ['id' => 155,'code' => 'NL','name' => "Netherlands",'phonecode' => 31], - ['id' => 156,'code' => 'NC','name' => "New Caledonia",'phonecode' => 687], - ['id' => 157,'code' => 'NZ','name' => "New Zealand",'phonecode' => 64], - ['id' => 158,'code' => 'NI','name' => "Nicaragua",'phonecode' => 505], - ['id' => 159,'code' => 'NE','name' => "Niger",'phonecode' => 227], - ['id' => 160,'code' => 'NG','name' => "Nigeria",'phonecode' => 234], - ['id' => 161,'code' => 'NU','name' => "Niue",'phonecode' => 683], - ['id' => 162,'code' => 'NF','name' => "Norfolk Island",'phonecode' => 672], - ['id' => 163,'code' => 'MP','name' => "Northern Mariana Islands",'phonecode' => 1670], - ['id' => 164,'code' => 'NO','name' => "Norway",'phonecode' => 47], - ['id' => 165,'code' => 'OM','name' => "Oman",'phonecode' => 968], - ['id' => 166,'code' => 'PK','name' => "Pakistan",'phonecode' => 92], - ['id' => 167,'code' => 'PW','name' => "Palau",'phonecode' => 680], - ['id' => 168,'code' => 'PS','name' => "Palestinian Territory Occupied",'phonecode' => 970], - ['id' => 169,'code' => 'PA','name' => "Panama",'phonecode' => 507], - ['id' => 170,'code' => 'PG','name' => "Papua new Guinea",'phonecode' => 675], - ['id' => 171,'code' => 'PY','name' => "Paraguay",'phonecode' => 595], - ['id' => 172,'code' => 'PE','name' => "Peru",'phonecode' => 51], - ['id' => 173,'code' => 'PH','name' => "Philippines",'phonecode' => 63], - ['id' => 174,'code' => 'PN','name' => "Pitcairn Island",'phonecode' => 0], - ['id' => 175,'code' => 'PL','name' => "Poland",'phonecode' => 48], - ['id' => 176,'code' => 'PT','name' => "Portugal",'phonecode' => 351], - ['id' => 177,'code' => 'PR','name' => "Puerto Rico",'phonecode' => 1787], - ['id' => 178,'code' => 'QA','name' => "Qatar",'phonecode' => 974], - ['id' => 179,'code' => 'RE','name' => "Reunion",'phonecode' => 262], - ['id' => 180,'code' => 'RO','name' => "Romania",'phonecode' => 40], - ['id' => 181,'code' => 'RU','name' => "Russia",'phonecode' => 70], - ['id' => 182,'code' => 'RW','name' => "Rwanda",'phonecode' => 250], - ['id' => 183,'code' => 'SH','name' => "Saint Helena",'phonecode' => 290], - ['id' => 184,'code' => 'KN','name' => "Saint Kitts And Nevis",'phonecode' => 1869], - ['id' => 185,'code' => 'LC','name' => "Saint Lucia",'phonecode' => 1758], - ['id' => 186,'code' => 'PM','name' => "Saint Pierre and Miquelon",'phonecode' => 508], - ['id' => 187,'code' => 'VC','name' => "Saint Vincent And The Grenadines",'phonecode' => 1784], - ['id' => 188,'code' => 'WS','name' => "Samoa",'phonecode' => 684], - ['id' => 189,'code' => 'SM','name' => "San Marino",'phonecode' => 378], - ['id' => 190,'code' => 'ST','name' => "Sao Tome and Principe",'phonecode' => 239], - ['id' => 191,'code' => 'SA','name' => "Saudi Arabia",'phonecode' => 966], - ['id' => 192,'code' => 'SN','name' => "Senegal",'phonecode' => 221], - ['id' => 193,'code' => 'RS','name' => "Serbia",'phonecode' => 381], - ['id' => 194,'code' => 'SC','name' => "Seychelles",'phonecode' => 248], - ['id' => 195,'code' => 'SL','name' => "Sierra Leone",'phonecode' => 232], - ['id' => 196,'code' => 'SG','name' => "Singapore",'phonecode' => 65], - ['id' => 197,'code' => 'SK','name' => "Slovakia",'phonecode' => 421], - ['id' => 198,'code' => 'SI','name' => "Slovenia",'phonecode' => 386], - ['id' => 199,'code' => 'XG','name' => "Smaller Territories of the UK",'phonecode' => 44], - ['id' => 200,'code' => 'SB','name' => "Solomon Islands",'phonecode' => 677], - ['id' => 201,'code' => 'SO','name' => "Somalia",'phonecode' => 252], - ['id' => 202,'code' => 'ZA','name' => "South Africa",'phonecode' => 27], - ['id' => 203,'code' => 'GS','name' => "South Georgia",'phonecode' => 0], - ['id' => 204,'code' => 'SS','name' => "South Sudan",'phonecode' => 211], - ['id' => 205,'code' => 'ES','name' => "Spain",'phonecode' => 34], - ['id' => 206,'code' => 'LK','name' => "Sri Lanka",'phonecode' => 94], - ['id' => 207,'code' => 'SD','name' => "Sudan",'phonecode' => 249], - ['id' => 208,'code' => 'SR','name' => "Suriname",'phonecode' => 597], - ['id' => 209,'code' => 'SJ','name' => "Svalbard And Jan Mayen Islands",'phonecode' => 47], - ['id' => 210,'code' => 'SZ','name' => "Swaziland",'phonecode' => 268], - ['id' => 211,'code' => 'SE','name' => "Sweden",'phonecode' => 46], - ['id' => 212,'code' => 'CH','name' => "Switzerland",'phonecode' => 41], - ['id' => 213,'code' => 'SY','name' => "Syria",'phonecode' => 963], - ['id' => 214,'code' => 'TW','name' => "Taiwan",'phonecode' => 886], - ['id' => 215,'code' => 'TJ','name' => "Tajikistan",'phonecode' => 992], - ['id' => 216,'code' => 'TZ','name' => "Tanzania",'phonecode' => 255], - ['id' => 217,'code' => 'TH','name' => "Thailand",'phonecode' => 66], - ['id' => 218,'code' => 'TG','name' => "Togo",'phonecode' => 228], - ['id' => 219,'code' => 'TK','name' => "Tokelau",'phonecode' => 690], - ['id' => 220,'code' => 'TO','name' => "Tonga",'phonecode' => 676], - ['id' => 221,'code' => 'TT','name' => "Trinidad And Tobago",'phonecode' => 1868], - ['id' => 222,'code' => 'TN','name' => "Tunisia",'phonecode' => 216], - ['id' => 223,'code' => 'TR','name' => "Turkey",'phonecode' => 90], - ['id' => 224,'code' => 'TM','name' => "Turkmenistan",'phonecode' => 7370], - ['id' => 225,'code' => 'TC','name' => "Turks And Caicos Islands",'phonecode' => 1649], - ['id' => 226,'code' => 'TV','name' => "Tuvalu",'phonecode' => 688], - ['id' => 227,'code' => 'UG','name' => "Uganda",'phonecode' => 256], - ['id' => 228,'code' => 'UA','name' => "Ukraine",'phonecode' => 380], - ['id' => 229,'code' => 'AE','name' => "United Arab Emirates",'phonecode' => 971], - ['id' => 230,'code' => 'GB','name' => "United Kingdom",'phonecode' => 44], - ['id' => 231,'code' => 'US','name' => "United States",'phonecode' => 1], - ['id' => 232,'code' => 'UM','name' => "United States Minor Outlying Islands",'phonecode' => 1], - ['id' => 233,'code' => 'UY','name' => "Uruguay",'phonecode' => 598], - ['id' => 234,'code' => 'UZ','name' => "Uzbekistan",'phonecode' => 998], - ['id' => 235,'code' => 'VU','name' => "Vanuatu",'phonecode' => 678], - ['id' => 236,'code' => 'VA','name' => "Vatican City State (Holy See)",'phonecode' => 39], - ['id' => 237,'code' => 'VE','name' => "Venezuela",'phonecode' => 58], - ['id' => 238,'code' => 'VN','name' => "Vietnam",'phonecode' => 84], - ['id' => 239,'code' => 'VG','name' => "Virgin Islands (British)",'phonecode' => 1284], - ['id' => 240,'code' => 'VI','name' => "Virgin Islands (US)",'phonecode' => 1340], - ['id' => 241,'code' => 'WF','name' => "Wallis And Futuna Islands",'phonecode' => 681], - ['id' => 242,'code' => 'EH','name' => "Western Sahara",'phonecode' => 212], - ['id' => 243,'code' => 'YE','name' => "Yemen",'phonecode' => 967], - ['id' => 244,'code' => 'YU','name' => "Yugoslavia",'phonecode' => 38], - ['id' => 245,'code' => 'ZM','name' => "Zambia",'phonecode' => 260], - ['id' => 246,'code' => 'ZW','name' => "Zimbabwe",'phonecode' => 263], + ['id' => 1, 'code' => 'AF', 'name' => 'Afghanistan', 'phonecode' => 93], + ['id' => 2, 'code' => 'AL', 'name' => 'Albania', 'phonecode' => 355], + ['id' => 3, 'code' => 'DZ', 'name' => 'Algeria', 'phonecode' => 213], + ['id' => 4, 'code' => 'AS', 'name' => 'American Samoa', 'phonecode' => 1684], + ['id' => 5, 'code' => 'AD', 'name' => 'Andorra', 'phonecode' => 376], + ['id' => 6, 'code' => 'AO', 'name' => 'Angola', 'phonecode' => 244], + ['id' => 7, 'code' => 'AI', 'name' => 'Anguilla', 'phonecode' => 1264], + ['id' => 8, 'code' => 'AQ', 'name' => 'Antarctica', 'phonecode' => 0], + ['id' => 9, 'code' => 'AG', 'name' => 'Antigua And Barbuda', 'phonecode' => 1268], + ['id' => 10, 'code' => 'AR', 'name' => 'Argentina', 'phonecode' => 54], + ['id' => 11, 'code' => 'AM', 'name' => 'Armenia', 'phonecode' => 374], + ['id' => 12, 'code' => 'AW', 'name' => 'Aruba', 'phonecode' => 297], + ['id' => 13, 'code' => 'AU', 'name' => 'Australia', 'phonecode' => 61], + ['id' => 14, 'code' => 'AT', 'name' => 'Austria', 'phonecode' => 43], + ['id' => 15, 'code' => 'AZ', 'name' => 'Azerbaijan', 'phonecode' => 994], + ['id' => 16, 'code' => 'BS', 'name' => 'Bahamas The', 'phonecode' => 1242], + ['id' => 17, 'code' => 'BH', 'name' => 'Bahrain', 'phonecode' => 973], + ['id' => 18, 'code' => 'BD', 'name' => 'Bangladesh', 'phonecode' => 880], + ['id' => 19, 'code' => 'BB', 'name' => 'Barbados', 'phonecode' => 1246], + ['id' => 20, 'code' => 'BY', 'name' => 'Belarus', 'phonecode' => 375], + ['id' => 21, 'code' => 'BE', 'name' => 'Belgium', 'phonecode' => 32], + ['id' => 22, 'code' => 'BZ', 'name' => 'Belize', 'phonecode' => 501], + ['id' => 23, 'code' => 'BJ', 'name' => 'Benin', 'phonecode' => 229], + ['id' => 24, 'code' => 'BM', 'name' => 'Bermuda', 'phonecode' => 1441], + ['id' => 25, 'code' => 'BT', 'name' => 'Bhutan', 'phonecode' => 975], + ['id' => 26, 'code' => 'BO', 'name' => 'Bolivia', 'phonecode' => 591], + ['id' => 27, 'code' => 'BA', 'name' => 'Bosnia and Herzegovina', 'phonecode' => 387], + ['id' => 28, 'code' => 'BW', 'name' => 'Botswana', 'phonecode' => 267], + ['id' => 29, 'code' => 'BV', 'name' => 'Bouvet Island', 'phonecode' => 0], + ['id' => 30, 'code' => 'BR', 'name' => 'Brazil', 'phonecode' => 55], + ['id' => 31, 'code' => 'IO', 'name' => 'British Indian Ocean Territory', 'phonecode' => 246], + ['id' => 32, 'code' => 'BN', 'name' => 'Brunei', 'phonecode' => 673], + ['id' => 33, 'code' => 'BG', 'name' => 'Bulgaria', 'phonecode' => 359], + ['id' => 34, 'code' => 'BF', 'name' => 'Burkina Faso', 'phonecode' => 226], + ['id' => 35, 'code' => 'BI', 'name' => 'Burundi', 'phonecode' => 257], + ['id' => 36, 'code' => 'KH', 'name' => 'Cambodia', 'phonecode' => 855], + ['id' => 37, 'code' => 'CM', 'name' => 'Cameroon', 'phonecode' => 237], + ['id' => 38, 'code' => 'CA', 'name' => 'Canada', 'phonecode' => 1], + ['id' => 39, 'code' => 'CV', 'name' => 'Cape Verde', 'phonecode' => 238], + ['id' => 40, 'code' => 'KY', 'name' => 'Cayman Islands', 'phonecode' => 1345], + ['id' => 41, 'code' => 'CF', 'name' => 'Central African Republic', 'phonecode' => 236], + ['id' => 42, 'code' => 'TD', 'name' => 'Chad', 'phonecode' => 235], + ['id' => 43, 'code' => 'CL', 'name' => 'Chile', 'phonecode' => 56], + ['id' => 44, 'code' => 'CN', 'name' => 'China', 'phonecode' => 86], + ['id' => 45, 'code' => 'CX', 'name' => 'Christmas Island', 'phonecode' => 61], + ['id' => 46, 'code' => 'CC', 'name' => 'Cocos (Keeling) Islands', 'phonecode' => 672], + ['id' => 47, 'code' => 'CO', 'name' => 'Colombia', 'phonecode' => 57], + ['id' => 48, 'code' => 'KM', 'name' => 'Comoros', 'phonecode' => 269], + ['id' => 49, 'code' => 'CG', 'name' => 'Congo', 'phonecode' => 242], + ['id' => 50, 'code' => 'CD', 'name' => 'Congo The Democratic Republic Of The', 'phonecode' => 242], + ['id' => 51, 'code' => 'CK', 'name' => 'Cook Islands', 'phonecode' => 682], + ['id' => 52, 'code' => 'CR', 'name' => 'Costa Rica', 'phonecode' => 506], + ['id' => 53, 'code' => 'CI', 'name' => 'Cote D Ivoire (Ivory Coast)', 'phonecode' => 225], + ['id' => 54, 'code' => 'HR', 'name' => 'Croatia (Hrvatska)', 'phonecode' => 385], + ['id' => 55, 'code' => 'CU', 'name' => 'Cuba', 'phonecode' => 53], + ['id' => 56, 'code' => 'CY', 'name' => 'Cyprus', 'phonecode' => 357], + ['id' => 57, 'code' => 'CZ', 'name' => 'Czech Republic', 'phonecode' => 420], + ['id' => 58, 'code' => 'DK', 'name' => 'Denmark', 'phonecode' => 45], + ['id' => 59, 'code' => 'DJ', 'name' => 'Djibouti', 'phonecode' => 253], + ['id' => 60, 'code' => 'DM', 'name' => 'Dominica', 'phonecode' => 1767], + ['id' => 61, 'code' => 'DO', 'name' => 'Dominican Republic', 'phonecode' => 1809], + ['id' => 62, 'code' => 'TP', 'name' => 'East Timor', 'phonecode' => 670], + ['id' => 63, 'code' => 'EC', 'name' => 'Ecuador', 'phonecode' => 593], + ['id' => 64, 'code' => 'EG', 'name' => 'Egypt', 'phonecode' => 20], + ['id' => 65, 'code' => 'SV', 'name' => 'El Salvador', 'phonecode' => 503], + ['id' => 66, 'code' => 'GQ', 'name' => 'Equatorial Guinea', 'phonecode' => 240], + ['id' => 67, 'code' => 'ER', 'name' => 'Eritrea', 'phonecode' => 291], + ['id' => 68, 'code' => 'EE', 'name' => 'Estonia', 'phonecode' => 372], + ['id' => 69, 'code' => 'ET', 'name' => 'Ethiopia', 'phonecode' => 251], + ['id' => 70, 'code' => 'XA', 'name' => 'External Territories of Australia', 'phonecode' => 61], + ['id' => 71, 'code' => 'FK', 'name' => 'Falkland Islands', 'phonecode' => 500], + ['id' => 72, 'code' => 'FO', 'name' => 'Faroe Islands', 'phonecode' => 298], + ['id' => 73, 'code' => 'FJ', 'name' => 'Fiji Islands', 'phonecode' => 679], + ['id' => 74, 'code' => 'FI', 'name' => 'Finland', 'phonecode' => 358], + ['id' => 75, 'code' => 'FR', 'name' => 'France', 'phonecode' => 33], + ['id' => 76, 'code' => 'GF', 'name' => 'French Guiana', 'phonecode' => 594], + ['id' => 77, 'code' => 'PF', 'name' => 'French Polynesia', 'phonecode' => 689], + ['id' => 78, 'code' => 'TF', 'name' => 'French Southern Territories', 'phonecode' => 0], + ['id' => 79, 'code' => 'GA', 'name' => 'Gabon', 'phonecode' => 241], + ['id' => 80, 'code' => 'GM', 'name' => 'Gambia The', 'phonecode' => 220], + ['id' => 81, 'code' => 'GE', 'name' => 'Georgia', 'phonecode' => 995], + ['id' => 82, 'code' => 'DE', 'name' => 'Germany', 'phonecode' => 49], + ['id' => 83, 'code' => 'GH', 'name' => 'Ghana', 'phonecode' => 233], + ['id' => 84, 'code' => 'GI', 'name' => 'Gibraltar', 'phonecode' => 350], + ['id' => 85, 'code' => 'GR', 'name' => 'Greece', 'phonecode' => 30], + ['id' => 86, 'code' => 'GL', 'name' => 'Greenland', 'phonecode' => 299], + ['id' => 87, 'code' => 'GD', 'name' => 'Grenada', 'phonecode' => 1473], + ['id' => 88, 'code' => 'GP', 'name' => 'Guadeloupe', 'phonecode' => 590], + ['id' => 89, 'code' => 'GU', 'name' => 'Guam', 'phonecode' => 1671], + ['id' => 90, 'code' => 'GT', 'name' => 'Guatemala', 'phonecode' => 502], + ['id' => 91, 'code' => 'XU', 'name' => 'Guernsey and Alderney', 'phonecode' => 44], + ['id' => 92, 'code' => 'GN', 'name' => 'Guinea', 'phonecode' => 224], + ['id' => 93, 'code' => 'GW', 'name' => 'Guinea-Bissau', 'phonecode' => 245], + ['id' => 94, 'code' => 'GY', 'name' => 'Guyana', 'phonecode' => 592], + ['id' => 95, 'code' => 'HT', 'name' => 'Haiti', 'phonecode' => 509], + ['id' => 96, 'code' => 'HM', 'name' => 'Heard and McDonald Islands', 'phonecode' => 0], + ['id' => 97, 'code' => 'HN', 'name' => 'Honduras', 'phonecode' => 504], + ['id' => 98, 'code' => 'HK', 'name' => 'Hong Kong S.A.R.', 'phonecode' => 852], + ['id' => 99, 'code' => 'HU', 'name' => 'Hungary', 'phonecode' => 36], + ['id' => 100, 'code' => 'IS', 'name' => 'Iceland', 'phonecode' => 354], + ['id' => 101, 'code' => 'IN', 'name' => 'India', 'phonecode' => 91], + ['id' => 102, 'code' => 'ID', 'name' => 'Indonesia', 'phonecode' => 62], + ['id' => 103, 'code' => 'IR', 'name' => 'Iran', 'phonecode' => 98], + ['id' => 104, 'code' => 'IQ', 'name' => 'Iraq', 'phonecode' => 964], + ['id' => 105, 'code' => 'IE', 'name' => 'Ireland', 'phonecode' => 353], + ['id' => 106, 'code' => 'IL', 'name' => 'Israel', 'phonecode' => 972], + ['id' => 107, 'code' => 'IT', 'name' => 'Italy', 'phonecode' => 39], + ['id' => 108, 'code' => 'JM', 'name' => 'Jamaica', 'phonecode' => 1876], + ['id' => 109, 'code' => 'JP', 'name' => 'Japan', 'phonecode' => 81], + ['id' => 110, 'code' => 'XJ', 'name' => 'Jersey', 'phonecode' => 44], + ['id' => 111, 'code' => 'JO', 'name' => 'Jordan', 'phonecode' => 962], + ['id' => 112, 'code' => 'KZ', 'name' => 'Kazakhstan', 'phonecode' => 7], + ['id' => 113, 'code' => 'KE', 'name' => 'Kenya', 'phonecode' => 254], + ['id' => 114, 'code' => 'KI', 'name' => 'Kiribati', 'phonecode' => 686], + ['id' => 115, 'code' => 'KP', 'name' => 'Korea North', 'phonecode' => 850], + ['id' => 116, 'code' => 'KR', 'name' => 'Korea South', 'phonecode' => 82], + ['id' => 117, 'code' => 'KW', 'name' => 'Kuwait', 'phonecode' => 965], + ['id' => 118, 'code' => 'KG', 'name' => 'Kyrgyzstan', 'phonecode' => 996], + ['id' => 119, 'code' => 'LA', 'name' => 'Laos', 'phonecode' => 856], + ['id' => 120, 'code' => 'LV', 'name' => 'Latvia', 'phonecode' => 371], + ['id' => 121, 'code' => 'LB', 'name' => 'Lebanon', 'phonecode' => 961], + ['id' => 122, 'code' => 'LS', 'name' => 'Lesotho', 'phonecode' => 266], + ['id' => 123, 'code' => 'LR', 'name' => 'Liberia', 'phonecode' => 231], + ['id' => 124, 'code' => 'LY', 'name' => 'Libya', 'phonecode' => 218], + ['id' => 125, 'code' => 'LI', 'name' => 'Liechtenstein', 'phonecode' => 423], + ['id' => 126, 'code' => 'LT', 'name' => 'Lithuania', 'phonecode' => 370], + ['id' => 127, 'code' => 'LU', 'name' => 'Luxembourg', 'phonecode' => 352], + ['id' => 128, 'code' => 'MO', 'name' => 'Macau S.A.R.', 'phonecode' => 853], + ['id' => 129, 'code' => 'MK', 'name' => 'Macedonia', 'phonecode' => 389], + ['id' => 130, 'code' => 'MG', 'name' => 'Madagascar', 'phonecode' => 261], + ['id' => 131, 'code' => 'MW', 'name' => 'Malawi', 'phonecode' => 265], + ['id' => 132, 'code' => 'MY', 'name' => 'Malaysia', 'phonecode' => 60], + ['id' => 133, 'code' => 'MV', 'name' => 'Maldives', 'phonecode' => 960], + ['id' => 134, 'code' => 'ML', 'name' => 'Mali', 'phonecode' => 223], + ['id' => 135, 'code' => 'MT', 'name' => 'Malta', 'phonecode' => 356], + ['id' => 136, 'code' => 'XM', 'name' => 'Man (Isle of)', 'phonecode' => 44], + ['id' => 137, 'code' => 'MH', 'name' => 'Marshall Islands', 'phonecode' => 692], + ['id' => 138, 'code' => 'MQ', 'name' => 'Martinique', 'phonecode' => 596], + ['id' => 139, 'code' => 'MR', 'name' => 'Mauritania', 'phonecode' => 222], + ['id' => 140, 'code' => 'MU', 'name' => 'Mauritius', 'phonecode' => 230], + ['id' => 141, 'code' => 'YT', 'name' => 'Mayotte', 'phonecode' => 269], + ['id' => 142, 'code' => 'MX', 'name' => 'Mexico', 'phonecode' => 52], + ['id' => 143, 'code' => 'FM', 'name' => 'Micronesia', 'phonecode' => 691], + ['id' => 144, 'code' => 'MD', 'name' => 'Moldova', 'phonecode' => 373], + ['id' => 145, 'code' => 'MC', 'name' => 'Monaco', 'phonecode' => 377], + ['id' => 146, 'code' => 'MN', 'name' => 'Mongolia', 'phonecode' => 976], + ['id' => 147, 'code' => 'MS', 'name' => 'Montserrat', 'phonecode' => 1664], + ['id' => 148, 'code' => 'MA', 'name' => 'Morocco', 'phonecode' => 212], + ['id' => 149, 'code' => 'MZ', 'name' => 'Mozambique', 'phonecode' => 258], + ['id' => 150, 'code' => 'MM', 'name' => 'Myanmar', 'phonecode' => 95], + ['id' => 151, 'code' => 'NA', 'name' => 'Namibia', 'phonecode' => 264], + ['id' => 152, 'code' => 'NR', 'name' => 'Nauru', 'phonecode' => 674], + ['id' => 153, 'code' => 'NP', 'name' => 'Nepal', 'phonecode' => 977], + ['id' => 154, 'code' => 'AN', 'name' => 'Netherlands Antilles', 'phonecode' => 599], + ['id' => 155, 'code' => 'NL', 'name' => 'Netherlands', 'phonecode' => 31], + ['id' => 156, 'code' => 'NC', 'name' => 'New Caledonia', 'phonecode' => 687], + ['id' => 157, 'code' => 'NZ', 'name' => 'New Zealand', 'phonecode' => 64], + ['id' => 158, 'code' => 'NI', 'name' => 'Nicaragua', 'phonecode' => 505], + ['id' => 159, 'code' => 'NE', 'name' => 'Niger', 'phonecode' => 227], + ['id' => 160, 'code' => 'NG', 'name' => 'Nigeria', 'phonecode' => 234], + ['id' => 161, 'code' => 'NU', 'name' => 'Niue', 'phonecode' => 683], + ['id' => 162, 'code' => 'NF', 'name' => 'Norfolk Island', 'phonecode' => 672], + ['id' => 163, 'code' => 'MP', 'name' => 'Northern Mariana Islands', 'phonecode' => 1670], + ['id' => 164, 'code' => 'NO', 'name' => 'Norway', 'phonecode' => 47], + ['id' => 165, 'code' => 'OM', 'name' => 'Oman', 'phonecode' => 968], + ['id' => 166, 'code' => 'PK', 'name' => 'Pakistan', 'phonecode' => 92], + ['id' => 167, 'code' => 'PW', 'name' => 'Palau', 'phonecode' => 680], + ['id' => 168, 'code' => 'PS', 'name' => 'Palestinian Territory Occupied', 'phonecode' => 970], + ['id' => 169, 'code' => 'PA', 'name' => 'Panama', 'phonecode' => 507], + ['id' => 170, 'code' => 'PG', 'name' => 'Papua new Guinea', 'phonecode' => 675], + ['id' => 171, 'code' => 'PY', 'name' => 'Paraguay', 'phonecode' => 595], + ['id' => 172, 'code' => 'PE', 'name' => 'Peru', 'phonecode' => 51], + ['id' => 173, 'code' => 'PH', 'name' => 'Philippines', 'phonecode' => 63], + ['id' => 174, 'code' => 'PN', 'name' => 'Pitcairn Island', 'phonecode' => 0], + ['id' => 175, 'code' => 'PL', 'name' => 'Poland', 'phonecode' => 48], + ['id' => 176, 'code' => 'PT', 'name' => 'Portugal', 'phonecode' => 351], + ['id' => 177, 'code' => 'PR', 'name' => 'Puerto Rico', 'phonecode' => 1787], + ['id' => 178, 'code' => 'QA', 'name' => 'Qatar', 'phonecode' => 974], + ['id' => 179, 'code' => 'RE', 'name' => 'Reunion', 'phonecode' => 262], + ['id' => 180, 'code' => 'RO', 'name' => 'Romania', 'phonecode' => 40], + ['id' => 181, 'code' => 'RU', 'name' => 'Russia', 'phonecode' => 70], + ['id' => 182, 'code' => 'RW', 'name' => 'Rwanda', 'phonecode' => 250], + ['id' => 183, 'code' => 'SH', 'name' => 'Saint Helena', 'phonecode' => 290], + ['id' => 184, 'code' => 'KN', 'name' => 'Saint Kitts And Nevis', 'phonecode' => 1869], + ['id' => 185, 'code' => 'LC', 'name' => 'Saint Lucia', 'phonecode' => 1758], + ['id' => 186, 'code' => 'PM', 'name' => 'Saint Pierre and Miquelon', 'phonecode' => 508], + ['id' => 187, 'code' => 'VC', 'name' => 'Saint Vincent And The Grenadines', 'phonecode' => 1784], + ['id' => 188, 'code' => 'WS', 'name' => 'Samoa', 'phonecode' => 684], + ['id' => 189, 'code' => 'SM', 'name' => 'San Marino', 'phonecode' => 378], + ['id' => 190, 'code' => 'ST', 'name' => 'Sao Tome and Principe', 'phonecode' => 239], + ['id' => 191, 'code' => 'SA', 'name' => 'Saudi Arabia', 'phonecode' => 966], + ['id' => 192, 'code' => 'SN', 'name' => 'Senegal', 'phonecode' => 221], + ['id' => 193, 'code' => 'RS', 'name' => 'Serbia', 'phonecode' => 381], + ['id' => 194, 'code' => 'SC', 'name' => 'Seychelles', 'phonecode' => 248], + ['id' => 195, 'code' => 'SL', 'name' => 'Sierra Leone', 'phonecode' => 232], + ['id' => 196, 'code' => 'SG', 'name' => 'Singapore', 'phonecode' => 65], + ['id' => 197, 'code' => 'SK', 'name' => 'Slovakia', 'phonecode' => 421], + ['id' => 198, 'code' => 'SI', 'name' => 'Slovenia', 'phonecode' => 386], + ['id' => 199, 'code' => 'XG', 'name' => 'Smaller Territories of the UK', 'phonecode' => 44], + ['id' => 200, 'code' => 'SB', 'name' => 'Solomon Islands', 'phonecode' => 677], + ['id' => 201, 'code' => 'SO', 'name' => 'Somalia', 'phonecode' => 252], + ['id' => 202, 'code' => 'ZA', 'name' => 'South Africa', 'phonecode' => 27], + ['id' => 203, 'code' => 'GS', 'name' => 'South Georgia', 'phonecode' => 0], + ['id' => 204, 'code' => 'SS', 'name' => 'South Sudan', 'phonecode' => 211], + ['id' => 205, 'code' => 'ES', 'name' => 'Spain', 'phonecode' => 34], + ['id' => 206, 'code' => 'LK', 'name' => 'Sri Lanka', 'phonecode' => 94], + ['id' => 207, 'code' => 'SD', 'name' => 'Sudan', 'phonecode' => 249], + ['id' => 208, 'code' => 'SR', 'name' => 'Suriname', 'phonecode' => 597], + ['id' => 209, 'code' => 'SJ', 'name' => 'Svalbard And Jan Mayen Islands', 'phonecode' => 47], + ['id' => 210, 'code' => 'SZ', 'name' => 'Swaziland', 'phonecode' => 268], + ['id' => 211, 'code' => 'SE', 'name' => 'Sweden', 'phonecode' => 46], + ['id' => 212, 'code' => 'CH', 'name' => 'Switzerland', 'phonecode' => 41], + ['id' => 213, 'code' => 'SY', 'name' => 'Syria', 'phonecode' => 963], + ['id' => 214, 'code' => 'TW', 'name' => 'Taiwan', 'phonecode' => 886], + ['id' => 215, 'code' => 'TJ', 'name' => 'Tajikistan', 'phonecode' => 992], + ['id' => 216, 'code' => 'TZ', 'name' => 'Tanzania', 'phonecode' => 255], + ['id' => 217, 'code' => 'TH', 'name' => 'Thailand', 'phonecode' => 66], + ['id' => 218, 'code' => 'TG', 'name' => 'Togo', 'phonecode' => 228], + ['id' => 219, 'code' => 'TK', 'name' => 'Tokelau', 'phonecode' => 690], + ['id' => 220, 'code' => 'TO', 'name' => 'Tonga', 'phonecode' => 676], + ['id' => 221, 'code' => 'TT', 'name' => 'Trinidad And Tobago', 'phonecode' => 1868], + ['id' => 222, 'code' => 'TN', 'name' => 'Tunisia', 'phonecode' => 216], + ['id' => 223, 'code' => 'TR', 'name' => 'Turkey', 'phonecode' => 90], + ['id' => 224, 'code' => 'TM', 'name' => 'Turkmenistan', 'phonecode' => 7370], + ['id' => 225, 'code' => 'TC', 'name' => 'Turks And Caicos Islands', 'phonecode' => 1649], + ['id' => 226, 'code' => 'TV', 'name' => 'Tuvalu', 'phonecode' => 688], + ['id' => 227, 'code' => 'UG', 'name' => 'Uganda', 'phonecode' => 256], + ['id' => 228, 'code' => 'UA', 'name' => 'Ukraine', 'phonecode' => 380], + ['id' => 229, 'code' => 'AE', 'name' => 'United Arab Emirates', 'phonecode' => 971], + ['id' => 230, 'code' => 'GB', 'name' => 'United Kingdom', 'phonecode' => 44], + ['id' => 231, 'code' => 'US', 'name' => 'United States', 'phonecode' => 1], + ['id' => 232, 'code' => 'UM', 'name' => 'United States Minor Outlying Islands', 'phonecode' => 1], + ['id' => 233, 'code' => 'UY', 'name' => 'Uruguay', 'phonecode' => 598], + ['id' => 234, 'code' => 'UZ', 'name' => 'Uzbekistan', 'phonecode' => 998], + ['id' => 235, 'code' => 'VU', 'name' => 'Vanuatu', 'phonecode' => 678], + ['id' => 236, 'code' => 'VA', 'name' => 'Vatican City State (Holy See)', 'phonecode' => 39], + ['id' => 237, 'code' => 'VE', 'name' => 'Venezuela', 'phonecode' => 58], + ['id' => 238, 'code' => 'VN', 'name' => 'Vietnam', 'phonecode' => 84], + ['id' => 239, 'code' => 'VG', 'name' => 'Virgin Islands (British)', 'phonecode' => 1284], + ['id' => 240, 'code' => 'VI', 'name' => 'Virgin Islands (US)', 'phonecode' => 1340], + ['id' => 241, 'code' => 'WF', 'name' => 'Wallis And Futuna Islands', 'phonecode' => 681], + ['id' => 242, 'code' => 'EH', 'name' => 'Western Sahara', 'phonecode' => 212], + ['id' => 243, 'code' => 'YE', 'name' => 'Yemen', 'phonecode' => 967], + ['id' => 244, 'code' => 'YU', 'name' => 'Yugoslavia', 'phonecode' => 38], + ['id' => 245, 'code' => 'ZM', 'name' => 'Zambia', 'phonecode' => 260], + ['id' => 246, 'code' => 'ZW', 'name' => 'Zimbabwe', 'phonecode' => 263], ]; DB::table('countries')->insert($countries); } diff --git a/database/seeders/CurrenciesTableSeeder.php b/database/seeders/CurrenciesTableSeeder.php index 149d568e9..b6cc6d980 100644 --- a/database/seeders/CurrenciesTableSeeder.php +++ b/database/seeders/CurrenciesTableSeeder.php @@ -2,8 +2,8 @@ namespace Database\Seeders; -use Crater\Models\Currency; use Illuminate\Database\Seeder; +use InvoiceShelf\Models\Currency; class CurrenciesTableSeeder extends Seeder { @@ -40,6 +40,14 @@ public function run() 'decimal_separator' => ',', 'swap_currency_symbol' => true, ], + [ + 'name' => 'Bosnia and Herzegovina Convertible Mark', + 'code' => 'BAM', + 'symbol' => 'KM', + 'precision' => '2', + 'thousand_separator' => ',', + 'decimal_separator' => '.', + ], [ 'name' => 'South African Rand', 'code' => 'ZAR', @@ -371,6 +379,14 @@ public function run() 'thousand_separator' => '.', 'decimal_separator' => ',', ], + [ + 'name' => 'Turkmenistani manat', + 'code' => 'TMT', + 'symbol' => 'M ', + 'precision' => '2', + 'thousand_separator' => '.', + 'decimal_separator' => ',', + ], [ 'name' => 'Romanian New Leu', 'code' => 'RON', @@ -600,9 +616,16 @@ public function run() 'decimal_separator' => ',', 'swap_currency_symbol' => true, ], + [ + 'name' => 'Libyan Dinar', + 'code' => 'LYD', + 'symbol' => 'LD', + 'precision' => '3', + 'thousand_separator' => ',', + 'decimal_separator' => '.', + ], ]; - foreach ($currencies as $currency) { Currency::create($currency); } diff --git a/database/seeders/DemoSeeder.php b/database/seeders/DemoSeeder.php index ece3b59a1..8da0d714d 100644 --- a/database/seeders/DemoSeeder.php +++ b/database/seeders/DemoSeeder.php @@ -2,10 +2,11 @@ namespace Database\Seeders; -use Crater\Models\Address; -use Crater\Models\Setting; -use Crater\Models\User; use Illuminate\Database\Seeder; +use InvoiceShelf\Models\Address; +use InvoiceShelf\Models\Setting; +use InvoiceShelf\Models\User; +use InvoiceShelf\Space\InstallUtils; class DemoSeeder extends Seeder { @@ -24,6 +25,6 @@ public function run() Setting::setSetting('profile_complete', 'COMPLETED'); - \Storage::disk('local')->put('database_created', 'database_created'); + InstallUtils::createDbMarker(); } } diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php index 8076ba352..d5d602fe2 100644 --- a/database/seeders/UsersTableSeeder.php +++ b/database/seeders/UsersTableSeeder.php @@ -2,10 +2,10 @@ namespace Database\Seeders; -use Crater\Models\Company; -use Crater\Models\Setting; -use Crater\Models\User; 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; @@ -19,16 +19,16 @@ class UsersTableSeeder extends Seeder public function run() { $user = User::create([ - 'email' => 'admin@craterapp.com', + 'email' => 'admin@invoiceshelf.com', 'name' => 'Jane Doe', 'role' => 'super admin', - 'password' => 'crater@123', + 'password' => 'invoiceshelf@123', ]); $company = Company::create([ 'name' => 'xyz', 'owner_id' => $user->id, - 'slug' => 'xyz' + 'slug' => 'xyz', ]); $company->unique_hash = Hashids::connection(Company::class)->encode($company->id); diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0c7cdc205..000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,63 +0,0 @@ -version: '3' - -services: - app: - build: - args: - user: crater-user - uid: 1000 - context: ./ - dockerfile: Dockerfile - image: crater-php - restart: unless-stopped - working_dir: /var/www/ - volumes: - - ./:/var/www - - ./docker-compose/php/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:rw,delegated - networks: - - crater - - db: - image: mariadb - restart: always - volumes: - - db:/var/lib/mysql - # If you want to persist data on the host, comment the line above this one... - # and uncomment the line under this one. - #- ./docker-compose/db/data:/var/lib/mysql:rw,delegated - environment: - MYSQL_USER: crater - MYSQL_PASSWORD: crater - MYSQL_DATABASE: crater - MYSQL_ROOT_PASSWORD: crater - ports: - - '33006:3306' - networks: - - crater - - nginx: - image: nginx:1.17-alpine - restart: unless-stopped - ports: - - 80:80 - volumes: - - ./:/var/www - - ./docker-compose/nginx:/etc/nginx/conf.d/ - networks: - - crater - - cron: - build: - context: ./ - dockerfile: ./docker-compose/cron.dockerfile - volumes: - - ./:/var/www - networks: - - crater - -volumes: - db: - -networks: - crater: - driver: bridge diff --git a/docker-compose/cron.dockerfile b/docker-compose/cron.dockerfile deleted file mode 100644 index 38598c00e..000000000 --- a/docker-compose/cron.dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM php:8.0-fpm-alpine - -RUN apk add --no-cache \ - php8-bcmath - -RUN docker-php-ext-install pdo pdo_mysql bcmath - -COPY docker-compose/crontab /etc/crontabs/root - -CMD ["crond", "-f"] diff --git a/docker-compose/crontab b/docker-compose/crontab deleted file mode 100644 index 777a48eb5..000000000 --- a/docker-compose/crontab +++ /dev/null @@ -1 +0,0 @@ -* * * * * cd /var/www && php artisan schedule:run >> /dev/stdout 2>&1 diff --git a/docker-compose/nginx/nginx.conf b/docker-compose/nginx/nginx.conf deleted file mode 100644 index ba2aa53ba..000000000 --- a/docker-compose/nginx/nginx.conf +++ /dev/null @@ -1,22 +0,0 @@ -server { - client_max_body_size 64M; - listen 80; - index index.php index.html; - error_log /var/log/nginx/error.log; - access_log /var/log/nginx/access.log; - root /var/www/public; - location ~ \.php$ { - try_files $uri =404; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass app:9000; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_read_timeout 300; - } - location / { - try_files $uri $uri/ /index.php?$query_string; - gzip_static on; - } -} diff --git a/docker-compose/php/uploads.ini b/docker-compose/php/uploads.ini deleted file mode 100644 index 293cde9e9..000000000 --- a/docker-compose/php/uploads.ini +++ /dev/null @@ -1,4 +0,0 @@ -file_uploads = On -upload_max_filesize = 64M -post_max_size = 64M -max_execution_time = 300 diff --git a/docker-compose/setup.sh b/docker-compose/setup.sh deleted file mode 100755 index a7ce31373..000000000 --- a/docker-compose/setup.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -docker-compose exec app composer install --no-interaction --prefer-dist --optimize-autoloader - -docker-compose exec app php artisan storage:link || true -docker-compose exec app php artisan key:generate diff --git a/crater.code-workspace b/invoiceshelf.code-workspace similarity index 100% rename from crater.code-workspace rename to invoiceshelf.code-workspace diff --git a/resources/scripts/locales/ar.json b/lang/ar.json similarity index 99% rename from resources/scripts/locales/ar.json rename to lang/ar.json index d8eb75894..9c9749ff3 100644 --- a/resources/scripts/locales/ar.json +++ b/lang/ar.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "قرص الملفات | أقراص الملفات", - "description": "بشكل افتراضي ، ستستخدم Crater القرص المحلي لحفظ النسخ الاحتياطية والأفاتار وملفات الصور الأخرى. يمكنك تكوين أكثر من برامج تشغيل قرص مثل DigitalOcean و S3 و Dropbox وفقًا لتفضيلاتك.", + "description": "بشكل افتراضي ، ستستخدم InvoiceShelf القرص المحلي لحفظ النسخ الاحتياطية والأفاتار وملفات الصور الأخرى. يمكنك تكوين أكثر من برامج تشغيل قرص مثل DigitalOcean و S3 و Dropbox وفقًا لتفضيلاتك.", "created_at": "أنشئت في", "dropbox": "بصندوق الإسقاط", "name": "اسم", @@ -1289,7 +1289,7 @@ "disk_setting_description": "قم بتمكين هذا ، إذا كنت ترغب في حفظ نسخة من كل فاتورة ، تقدير وإيصال دفع PDF على القرص الافتراضي الخاص بك تلقائيًا. سيؤدي تشغيل هذا الخيار إلى تقليل وقت التحميل عند عرض ملفات PDF.", "select_disk": "حدد القرص", "disk_settings": "إعدادات القرص", - "confirm_delete": "لن تتأثر الملفات والمجلدات الموجودة في القرص المحدد ولكن سيتم حذف اعدادات القرص الخاص بك من Crater", + "confirm_delete": "لن تتأثر الملفات والمجلدات الموجودة في القرص المحدد ولكن سيتم حذف اعدادات القرص الخاص بك من InvoiceShelf", "action": "عمل", "edit_file_disk": "تعديل قرص الملف", "success_create": "تمت إضافة القرص بنجاح", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "التحقق من النطاق", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "نطاق التطبيق", "verify_now": "تحقق الآن", "success": "تم التحقق من النطاق بنجاح.", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "رقم الهاتف غير صحيح", - "invalid_url": "عنوان انترنت غير صحيح (مثال: http://www.crater.com)", - "invalid_domain_url": "عنوان انترنت غير صحيح (مثال: crater.com)", + "invalid_url": "عنوان انترنت غير صحيح (مثال: http://www.invoiceshelf.com)", + "invalid_domain_url": "عنوان انترنت غير صحيح (مثال: invoiceshelf.com)", "required": "حقل مطلوب", "email_incorrect": "بريد الكتروني غير صحيح.", "email_already_taken": "هذا البريد الالكتروني مستخدم مسبقاً", diff --git a/resources/scripts/locales/cs.json b/lang/cs.json similarity index 98% rename from resources/scripts/locales/cs.json rename to lang/cs.json index 5e06d4e6f..c7577fa61 100644 --- a/resources/scripts/locales/cs.json +++ b/lang/cs.json @@ -690,7 +690,7 @@ "no_reviews_found": "Pro tento modul zatím neexistují žádné recenze!", "module_not_purchased": "Modul není zakoupený", "module_not_found": "Modul nebyl nalezen", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Naposledy aktualizováno", "connect_installation": "Připojte vaši instalaci", "api_token_description": "Přihlaste se k {url} a připojte tuto instalaci zadáním API tokenu. Vaše zakoupené moduly se zde zobrazí po navázání připojení.", @@ -864,7 +864,7 @@ "company_info": "Údaje o společnosti", "company_name": "Název společnosti", "company_logo": "Logo společnosti", - "section_description": "Informace o vaší společnosti, která bude zobrazena na fakturách, odhadech a dalších dokladech vytvořených v Crateru.", + "section_description": "Informace o vaší společnosti, která bude zobrazena na fakturách, odhadech a dalších dokladech vytvořených v InvoiceShelfu.", "phone": "Telefon", "country": "Země", "state": "Stát", @@ -1064,9 +1064,9 @@ "email": "Posílat oznámení na", "description": "Která e-mailová oznámení chcete dostávat, když se něco změní?", "invoice_viewed": "Faktura zobrazena", - "invoice_viewed_desc": "Když si váš zákazník zobrazí fakturu odeslánou přes hlavní panel Crateru.", + "invoice_viewed_desc": "Když si váš zákazník zobrazí fakturu odeslánou přes hlavní panel InvoiceShelfu.", "estimate_viewed": "Odhad zobrazen", - "estimate_viewed_desc": "Když si váš zákazník zobrazí odhad odeslaný přes hlavní panel Crateru.", + "estimate_viewed_desc": "Když si váš zákazník zobrazí odhad odeslaný přes hlavní panel InvoiceShelfu.", "save": "Uložit", "email_save_message": "E-mail úspěšně uložen", "please_enter_email": "Prosím, zadejte e-mail" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Směnný kurz", "title": "Opravit problémy se směnným kurzem", - "description": "Zadejte prosím směnný kurz všech níže uvedených měn, abyste pomohli Crateru správně vypočítat částky v {currency}.", + "description": "Zadejte prosím směnný kurz všech níže uvedených měn, abyste pomohli InvoiceShelfu správně vypočítat částky v {currency}.", "drivers": "Ovladače", "new_driver": "Přidat nového poskytovatele", "edit_driver": "Upravit poskytovatele", @@ -1126,7 +1126,7 @@ "title": "Typy daní", "add_tax": "Přidat daň", "edit_tax": "Upravit daň", - "description": "Můžete přidat nebo odebrat daně, jak chcete. Crater podporuje daně z jednotlivých položek i z celé faktury.", + "description": "Můžete přidat nebo odebrat daně, jak chcete. InvoiceShelf podporuje daně z jednotlivých položek i z celé faktury.", "add_new_tax": "Přidat novou daň", "tax_settings": "Nastavení daně", "tax_per_item": "Daň za položku", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Aktualizace aplikace", - "description": "Kliknutím na tlačítko níže můžete jednoduše aktualizovat Crater", + "description": "Kliknutím na tlačítko níže můžete jednoduše aktualizovat InvoiceShelf", "check_update": "Zkontrolovat aktualizace", "avail_update": "K dispozici je nová aktualizace", "next_version": "Další verze", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Souborový disk | Souborové disky", - "description": "Ve výchozím nastavení bude Crater používat váš lokální disk pro ukládání záloh, avataru a dalších obrázků. Podle vašich preferencí můžete nakonfigurovat více než jeden ovladač disku, jako je DigitalOcean, S3 nebo Dropbox.", + "description": "Ve výchozím nastavení bude InvoiceShelf používat váš lokální disk pro ukládání záloh, avataru a dalších obrázků. Podle vašich preferencí můžete nakonfigurovat více než jeden ovladač disku, jako je DigitalOcean, S3 nebo Dropbox.", "created_at": "vytvořeno v", "dropbox": "dropbox", "name": "Název", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Povolte, pokud chcete automaticky uložit kopii PDF každé faktury, odhadu a potvrzení o platbě. Zapnutí této možnosti sníží dobu načítání při prohlížení PDF.", "select_disk": "Vyberte disk", "disk_settings": "Nastavení disku", - "confirm_delete": "Vaše existující soubory a složky na určeném disku nebudou ovlivněny, ale konfigurace disku bude odstraněna z Crateru", + "confirm_delete": "Vaše existující soubory a složky na určeném disku nebudou ovlivněny, ale konfigurace disku bude odstraněna z InvoiceShelfu", "action": "Akce", "edit_file_disk": "Upravit souborový disk", "success_create": "Disk byl úspěšně přidán", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Ověření domény", - "desc": "Crater používá ověření na základě relace, které vyžaduje ověření domény pro účely zabezpečení. Zadejte prosím doménu, na které budete přistupovat ke své webové aplikaci.", + "desc": "InvoiceShelf používá ověření na základě relace, které vyžaduje ověření domény pro účely zabezpečení. Zadejte prosím doménu, na které budete přistupovat ke své webové aplikaci.", "app_domain": "Doména aplikace", "verify_now": "Ověřit teď", "success": "Ověření domény bylo úspěšné.", @@ -1397,7 +1397,7 @@ "system_req": "Systémové požadavky", "php_req_version": "Php (požadovaná verze {version})", "check_req": "Zkontrolujte požadavky", - "system_req_desc": "Crater má několik požadavků na server. Ujistěte se, že váš server má požadovanou php verzi a všechna níže uvedená rozšíření." + "system_req_desc": "InvoiceShelf má několik požadavků na server. Ujistěte se, že váš server má požadovanou php verzi a všechna níže uvedená rozšíření." }, "errors": { "migrate_failed": "Migrace se nezdařila", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Neplatné telefonní číslo", - "invalid_url": "Neplatná URL (např. http://www.craterapp.com)", - "invalid_domain_url": "Neplatná URL (např. craterapp.com)", + "invalid_url": "Neplatná URL (např. http://www.invoiceshelf.com)", + "invalid_domain_url": "Neplatná URL (např. invoiceshelf.com)", "required": "Pole je povinné", "email_incorrect": "Nesprávný e-mail.", "email_already_taken": "Tento e-mail již byl použit.", diff --git a/resources/scripts/locales/de.json b/lang/de.json similarity index 97% rename from resources/scripts/locales/de.json rename to lang/de.json index 925fbb013..985fc411a 100644 --- a/resources/scripts/locales/de.json +++ b/lang/de.json @@ -690,7 +690,7 @@ "no_reviews_found": "Für dieses Modul gibt es noch keine Bewertungen!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Modul nicht gefunden", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Zuletzt aktualisiert am", "connect_installation": "Installation verbinden", "api_token_description": "Melden Sie sich bei {url} an und verbinden Sie diese Installation durch Eingabe des API-Token. Ihre gekauften Module werden hier angezeigt, nachdem die Verbindung hergestellt wurde.", @@ -863,8 +863,10 @@ "company_info": { "company_info": "Firmeninfo", "company_name": "Name des Unternehmens", + "vat_id": "Umsatzsteuer-Identifikationsnummer", + "tax_id": "Steuernummer", "company_logo": "Firmenlogo", - "section_description": "Informationen zu Ihrem Unternehmen, die auf Rechnungen, Angeboten und anderen von Crater erstellten Dokumenten angezeigt werden.", + "section_description": "Informationen zu Ihrem Unternehmen, die auf Rechnungen, Angeboten und anderen von InvoiceShelf erstellten Dokumenten angezeigt werden.", "phone": "Telefon", "country": "Land", "state": "Bundesland", @@ -1093,7 +1095,7 @@ "exchange_rate": { "exchange_rate": "Wechselkurs", "title": "Wechselkursprobleme korrigieren", - "description": "Bitte geben Sie den Wechselkurs aller unten genannten Währungen ein, um Crater bei der korrekten Berechnung der Beträge in {currency} zu unterstützen.", + "description": "Bitte geben Sie den Wechselkurs aller unten genannten Währungen ein, um InvoiceShelf bei der korrekten Berechnung der Beträge in {currency} zu unterstützen.", "drivers": "Treiber", "new_driver": "Neuen Anbieter hinzufügen", "edit_driver": "Anbieter bearbeiten", @@ -1126,7 +1128,7 @@ "title": "Steuersätze", "add_tax": "Steuersätze hinzufügen", "edit_tax": "Steuer bearbeiten", - "description": "Sie können Steuern nach Belieben hinzufügen oder entfernen. Crater unterstützt Steuern auf einzelne Artikel sowie auf die Rechnung.", + "description": "Sie können Steuern nach Belieben hinzufügen oder entfernen. InvoiceShelf unterstützt Steuern auf einzelne Artikel sowie auf die Rechnung.", "add_new_tax": "Neuen Steuersatz hinzufügen", "tax_settings": "Einstellungen Steuersatz", "tax_per_item": "Steuersatz pro Artikel", @@ -1198,7 +1200,7 @@ }, "update_app": { "title": "Applikation aktualisieren", - "description": "Sie können Crater ganz einfach aktualisieren, indem Sie auf die Schaltfläche unten klicken, um nach einem neuen Update zu suchen.", + "description": "Sie können InvoiceShelf ganz einfach aktualisieren, indem Sie auf die Schaltfläche unten klicken, um nach einem neuen Update zu suchen.", "check_update": "Nach Updates suchen", "avail_update": "Neues Update verfügbar", "next_version": "Nächste Version", @@ -1244,7 +1246,7 @@ }, "disk": { "title": "Dateispeicher | Dateispeicher", - "description": "Standardmäßig verwendet Crater Ihre lokale Festplatte zum Speichern von Sicherungen, Avatar und anderen Bilddateien. Sie können mehr als einen Speicherort wie DigitalOcean, S3 und Dropbox nach Ihren Wünschen konfigurieren.", + "description": "Standardmäßig verwendet InvoiceShelf Ihre lokale Festplatte zum Speichern von Sicherungen, Avatar und anderen Bilddateien. Sie können mehr als einen Speicherort wie DigitalOcean, S3 und Dropbox nach Ihren Wünschen konfigurieren.", "created_at": "erstellt am", "dropbox": "Dropbox", "name": "Name", @@ -1267,6 +1269,12 @@ "aws_region": "AWS-Region", "aws_bucket": "AWS Bucket", "aws_root": "AWS-Pfad", + "s3_endpoint": "S3 Endpunkt", + "s3_key": "S3 Schlüssel", + "s3_secret": "S3 Geheimnis", + "s3_region": "S3 Region", + "s3_bucket": "S3 Bucket", + "s3_root": "S3 Pfad", "do_spaces_type": "Do Spaces-Typ", "do_spaces_key": "Do Spaces Key", "do_spaces_secret": "Do Spaces Secret", @@ -1289,7 +1297,7 @@ "disk_setting_description": " Aktivieren Sie dies, um eine Kopie von jeder Rechnung, jedem Angebot & jedem Zahlungsbeleg als PDF automatisch auf ihrem Standard-Speicher abzulegen. Wenn Sie diese Option aktivieren, verringert sich die Ladezeit beim Betrachten der PDFs.", "select_disk": "Speicherort auswählen", "disk_settings": "Speichermedienkonfiguration", - "confirm_delete": "Ihre existierenden Dateien und Ordner auf der angegebenen Festplatte werden nicht beeinflusst, aber Dieser Speicherort wird aus Crater gelöscht", + "confirm_delete": "Ihre existierenden Dateien und Ordner auf der angegebenen Festplatte werden nicht beeinflusst, aber Dieser Speicherort wird aus InvoiceShelf gelöscht", "action": "Aktion", "edit_file_disk": "Speicherort editieren", "success_create": "Speicher erfolgreich hinzugefügt", @@ -1368,7 +1376,7 @@ }, "verify_domain": { "title": "Domain-Verifizierung", - "desc": "Crater verwendet Session-basierte Authentifizierung, die aus Sicherheitsgründen eine Domain-Verifizierung erfordert. Bitte geben Sie die Domain ein, auf der Sie auf Ihre Webanwendung zugreifen werden.", + "desc": "InvoiceShelf verwendet Session-basierte Authentifizierung, die aus Sicherheitsgründen eine Domain-Verifizierung erfordert. Bitte geben Sie die Domain ein, auf der Sie auf Ihre Webanwendung zugreifen werden.", "app_domain": "Domain der App", "verify_now": "Jetzt verifizieren", "success": "Domain erfolgreich verifiziert.", @@ -1397,7 +1405,7 @@ "system_req": "System Anforderungen", "php_req_version": "Php (version {version} erforderlich)", "check_req": "Anforderungen prüfen", - "system_req_desc": "Crater hat einige Serveranforderungen. Stellen Sie sicher, dass Ihr Server die erforderliche PHP-Version und alle unten genannten Erweiterungen hat." + "system_req_desc": "InvoiceShelf hat einige Serveranforderungen. Stellen Sie sicher, dass Ihr Server die erforderliche PHP-Version und alle unten genannten Erweiterungen hat." }, "errors": { "migrate_failed": "Migration ist Fehlgeschlagen", @@ -1413,8 +1421,8 @@ }, "validation": { "invalid_phone": "Ungültige Telefonnummer", - "invalid_url": "Ungültige URL (Bsp.: http://www.crater.com)", - "invalid_domain_url": "Ungültige URL (Bsp.: crater.com)", + "invalid_url": "Ungültige URL (Bsp.: http://www.invoiceshelf.com)", + "invalid_domain_url": "Ungültige URL (Bsp.: invoiceshelf.com)", "required": "Feld ist erforderlich", "email_incorrect": "Ungültige E-Mail.", "email_already_taken": "Die E-Mail ist bereits vergeben.", @@ -1522,5 +1530,7 @@ "pdf_bill_to": "Rechnungsanschrift", "pdf_ship_to": "Lieferanschrift", "pdf_received_from": "Erhalten von:", - "pdf_tax_label": "Steuer" + "pdf_tax_label": "Steuer", + "pdf_tax_id": "Steuer-Nr.", + "pdf_vat_id": "USt.-ID" } diff --git a/resources/scripts/locales/el.json b/lang/el.json similarity index 99% rename from resources/scripts/locales/el.json rename to lang/el.json index cb5890038..73216823f 100644 --- a/resources/scripts/locales/el.json +++ b/lang/el.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Σύνδεση της εγκατάστασης σας", "api_token_description": "Συνδεθείτε στο {url} και συνδέστε αυτήν την εγκατάσταση εισάγοντας το API Token. Τα πρόσθετα που αγοράσατε θα εμφανιστούν εδώ μετά την ολοκλήρωση της σύνδεσης.", @@ -864,7 +864,7 @@ "company_info": "Πληροφορίες Εταιρίας", "company_name": "Όνομα Εταιρείας", "company_logo": "Λογότυπο Εταιρείας", - "section_description": "Πληροφορίες σχετικά με την εταιρεία σας που θα εμφανίζονται σε τιμολόγια, εκτιμήσεις και άλλα έγγραφα που δημιουργούνται από την Crater.", + "section_description": "Πληροφορίες σχετικά με την εταιρεία σας που θα εμφανίζονται σε τιμολόγια, εκτιμήσεις και άλλα έγγραφα που δημιουργούνται από την InvoiceShelf.", "phone": "Τηλέφωνο", "country": "Χώρα", "state": "Νομός", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Μη έγκυρος αριθμός τηλεφώνου", - "invalid_url": "Μη έγκυρη διεύθυνση url (π.χ. http://www.craterapp.com)", - "invalid_domain_url": "Μη έγκυρη διεύθυνση url (π.χ. craterapp.com)", + "invalid_url": "Μη έγκυρη διεύθυνση url (π.χ. http://www.invoiceshelf.com)", + "invalid_domain_url": "Μη έγκυρη διεύθυνση url (π.χ. invoiceshelf.com)", "required": "Το πεδίο είναι υποχρεωτικό", "email_incorrect": "Λάθος μορφή e-mail;", "email_already_taken": "Το όνομα έχει ήδη ληφθεί.", diff --git a/resources/scripts/locales/en.json b/lang/en.json similarity index 97% rename from resources/scripts/locales/en.json rename to lang/en.json index 977459b03..9e042c292 100644 --- a/resources/scripts/locales/en.json +++ b/lang/en.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "The minimum required version for this module does not match. Please upgrade your crater app to version: {version} to proceed.", + "version_not_supported": "The minimum required version for this module does not match. Please upgrade your invoiceshelf app to version: {version} to proceed.", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -863,8 +863,10 @@ "company_info": { "company_info": "Company info", "company_name": "Company Name", + "tax_id": "Tax Identification Number", + "vat_id": "VAT Identification Number", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1066,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1095,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1128,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1200,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1246,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1267,6 +1269,12 @@ "aws_region": "AWS Region", "aws_bucket": "AWS Bucket", "aws_root": "AWS Root", + "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": "Do Spaces type", "do_spaces_key": "Do Spaces key", "do_spaces_secret": "Do Spaces Secret", @@ -1289,7 +1297,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1376,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1405,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1421,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", @@ -1522,5 +1530,7 @@ "pdf_bill_to": "Bill to,", "pdf_ship_to": "Ship to,", "pdf_received_from": "Received from:", - "pdf_tax_label": "Tax" + "pdf_tax_label": "Tax", + "pdf_tax_id": "Tax-ID", + "pdf_vat_id": "VAT-ID" } diff --git a/resources/lang/en/auth.php b/lang/en/auth.php similarity index 100% rename from resources/lang/en/auth.php rename to lang/en/auth.php diff --git a/resources/lang/en/pagination.php b/lang/en/pagination.php similarity index 100% rename from resources/lang/en/pagination.php rename to lang/en/pagination.php diff --git a/resources/lang/en/passwords.php b/lang/en/passwords.php similarity index 100% rename from resources/lang/en/passwords.php rename to lang/en/passwords.php diff --git a/resources/lang/en/validation.php b/lang/en/validation.php similarity index 100% rename from resources/lang/en/validation.php rename to lang/en/validation.php diff --git a/resources/scripts/locales/es.json b/lang/es.json similarity index 98% rename from resources/scripts/locales/es.json rename to lang/es.json index 4dfe2e4f7..0800673d1 100644 --- a/resources/scripts/locales/es.json +++ b/lang/es.json @@ -690,7 +690,7 @@ "no_reviews_found": "¡Este módulo aún no tiene reseñas!", "module_not_purchased": "Módulo no comprado", "module_not_found": "Módulo no encontrado", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Actualizado", "connect_installation": "Conecte su instalación", "api_token_description": "Inicie sesión en {url} y conecte esta instalación introduciendo el token de API. Los módulos comprados aparecerán aquí después de establecer la conexión.", @@ -864,7 +864,7 @@ "company_info": "Información de la compañía", "company_name": "Nombre de Empresa", "company_logo": "Logo de la compañía", - "section_description": "Información sobre su empresa que se mostrará en las facturas, presupuestos y otros documentos creados por Crater.", + "section_description": "Información sobre su empresa que se mostrará en las facturas, presupuestos y otros documentos creados por InvoiceShelf.", "phone": "Teléfono", "country": "País", "state": "Estado", @@ -1064,9 +1064,9 @@ "email": "Enviar notificaciones a", "description": "¿Qué notificaciones por correo electrónico le gustaría recibir cuando algo cambia?", "invoice_viewed": "Factura vista", - "invoice_viewed_desc": "Cuando su cliente vio la factura enviada a través del panel de control de Crater.", + "invoice_viewed_desc": "Cuando su cliente vio la factura enviada a través del panel de control de InvoiceShelf.", "estimate_viewed": "Presupuesto visto", - "estimate_viewed_desc": "Cuando su cliente vio el presupuesto enviado a través del panel de control de Crater.", + "estimate_viewed_desc": "Cuando su cliente vio el presupuesto enviado a través del panel de control de InvoiceShelf.", "save": "Guardar", "email_save_message": "Correo electrónico guardado con éxito", "please_enter_email": "Por favor, introduzca su correo electrónico" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Tasa de cambio", "title": "Solucionar problemas de cambio de moneda", - "description": "Por favor, selecciona un tipo de cambio para todas las monedas mencionadas a continuación para ayudar a Crater a calcular correctamente las cantidades en {currency}.", + "description": "Por favor, selecciona un tipo de cambio para todas las monedas mencionadas a continuación para ayudar a InvoiceShelf a calcular correctamente las cantidades en {currency}.", "drivers": "Controladores", "new_driver": "Añadir nuevo proveedor", "edit_driver": "Editar proveedor", @@ -1126,7 +1126,7 @@ "title": "Tipos de impuestos", "add_tax": "Agregar impuesto", "edit_tax": "Editar impuesto", - "description": "Puede agregar o eliminar impuestos a su gusto. Crater admite impuestos sobre artículos individuales, así como sobre la factura.", + "description": "Puede agregar o eliminar impuestos a su gusto. InvoiceShelf admite impuestos sobre artículos individuales, así como sobre la factura.", "add_new_tax": "Agregar nuevo impuesto", "tax_settings": "Configuraciones de impuestos", "tax_per_item": "Impuesto por artículo", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Actualizar aplicación", - "description": "Puedes actualizar Crater fácilmente comprobando si existe una nueva actualización haciendo clic en el botón de abajo", + "description": "Puedes actualizar InvoiceShelf fácilmente comprobando si existe una nueva actualización haciendo clic en el botón de abajo", "check_update": "Buscar actualizaciones", "avail_update": "Nueva actualización disponible", "next_version": "Próxima versión", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Disco de archivos | Discos de archivos", - "description": "Por defecto, Crater utilizará su disco local para guardar copias de seguridad, avatar y otros archivos de imagen. Puede configurar varios controladores de disco como DigitalOcean, S3 y Dropbox según sus preferencias.", + "description": "Por defecto, InvoiceShelf utilizará su disco local para guardar copias de seguridad, avatar y otros archivos de imagen. Puede configurar varios controladores de disco como DigitalOcean, S3 y Dropbox según sus preferencias.", "created_at": "creado el", "dropbox": "dropbox", "name": "Nombre", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Habilite esto, si desea guardar automáticamente una copia en formato pdf de cada factura, cálculo y recibo de pago en su disco predeterminado. Al activar esta opción, se reducirá el tiempo de carga al visualizar los archivos PDFs.", "select_disk": "Seleccionar Disco", "disk_settings": "Configuración del disco", - "confirm_delete": "Los archivos y carpetas existentes en el disco especificado no se verán afectados, pero su configuración de disco será eliminada de Crater", + "confirm_delete": "Los archivos y carpetas existentes en el disco especificado no se verán afectados, pero su configuración de disco será eliminada de InvoiceShelf", "action": "Acción", "edit_file_disk": "Editar disco de ficheros", "success_create": "Disco añadido satisfactoriamente", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Verificación de dominio", - "desc": "Crater utiliza la autenticación basada en Sesión que requiere verificación de dominio por motivos de seguridad. Por favor, introduzca el dominio en el que accederá a su aplicación web.", + "desc": "InvoiceShelf utiliza la autenticación basada en Sesión que requiere verificación de dominio por motivos de seguridad. Por favor, introduzca el dominio en el que accederá a su aplicación web.", "app_domain": "Dominio de aplicación", "verify_now": "Verificar ahora", "success": "Dominio verificado correctamente.", @@ -1397,7 +1397,7 @@ "system_req": "Requisitos del sistema", "php_req_version": "Php (versión {version} necesario)", "check_req": "Consultar requisitos", - "system_req_desc": "Crater tiene algunos requisitos de servidor. Asegúrese de que su servidor tenga la versión de php requerida y todas las extensiones mencionadas a continuación." + "system_req_desc": "InvoiceShelf tiene algunos requisitos de servidor. Asegúrese de que su servidor tenga la versión de php requerida y todas las extensiones mencionadas a continuación." }, "errors": { "migrate_failed": "La migración falló", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Numero de telefono invalido", - "invalid_url": "URL no válida (por ejemplo, http://www.crater.com)", - "invalid_domain_url": "URL no válida (por ejemplo, crater.com)", + "invalid_url": "URL no válida (por ejemplo, http://www.invoiceshelf.com)", + "invalid_domain_url": "URL no válida (por ejemplo, invoiceshelf.com)", "required": "Se requiere campo", "email_incorrect": "Email incorrecto.", "email_already_taken": "Este email ya está en uso", diff --git a/resources/scripts/locales/fa.json b/lang/fa.json similarity index 98% rename from resources/scripts/locales/fa.json rename to lang/fa.json index e87aba8a2..c6a813ecf 100644 --- a/resources/scripts/locales/fa.json +++ b/lang/fa.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/fi.json b/lang/fi.json similarity index 98% rename from resources/scripts/locales/fi.json rename to lang/fi.json index d2f40766c..9b04b1587 100644 --- a/resources/scripts/locales/fi.json +++ b/lang/fi.json @@ -690,7 +690,7 @@ "no_reviews_found": "Tällä modulilla ei ole vielä arvosteluita!", "module_not_purchased": "Moduulia ei ostettu", "module_not_found": "Moduulia ei löydy", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Viimeksi päivitetty", "connect_installation": "Yhdistä asennuksesi", "api_token_description": "Kirjaudu sisään {url} ja yhdistä tämä asennus syöttämällä API tunnus. Ostetut moduulit näkyvät täällä kun yhteys on luotu.", @@ -864,7 +864,7 @@ "company_info": "Yritystiedot", "company_name": "Yrityksen nimi", "company_logo": "Yrityksen logo", - "section_description": "Yrityksesi tiedot jotka näytetään laskulla, tarjouksella ja muilla dokumenteilla luotuna Crater:in toimesta.", + "section_description": "Yrityksesi tiedot jotka näytetään laskulla, tarjouksella ja muilla dokumenteilla luotuna InvoiceShelf:in toimesta.", "phone": "Puhelin", "country": "Maa", "state": "Osavaltio", @@ -1064,9 +1064,9 @@ "email": "Lähetä ilmoitus vastaanottajalle", "description": "Mitkä sähköposti ilmoitukset haluat vastaanottaa jos joku muuttuu?", "invoice_viewed": "Lasku katsottu", - "invoice_viewed_desc": "Kun asiakas katsoo laskun, joka on lähetetty crater ohjauspanelin kautta.", + "invoice_viewed_desc": "Kun asiakas katsoo laskun, joka on lähetetty invoiceshelf ohjauspanelin kautta.", "estimate_viewed": "Tarjous katsottu", - "estimate_viewed_desc": "Kun asiakas katsoo tarjouksen, joka on lähetetty crater ohjauspanelin kautta.", + "estimate_viewed_desc": "Kun asiakas katsoo tarjouksen, joka on lähetetty invoiceshelf ohjauspanelin kautta.", "save": "Tallenna", "email_save_message": "Sähköposti tallennettu onnistuneesti", "please_enter_email": "Syötä sähköpostiosoite" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "ALV Verokannat", "add_tax": "Lisää ALV verokanta", "edit_tax": "Muokkaa ALV verokantaa", - "description": "Voit luoda tai poistaa ALV verokantoja tarvittaessa. Crater tukee laskurivikohtaista ALV:n esittämistä yhtä hyvin kuin näyttämistä koko laskulle.", + "description": "Voit luoda tai poistaa ALV verokantoja tarvittaessa. InvoiceShelf tukee laskurivikohtaista ALV:n esittämistä yhtä hyvin kuin näyttämistä koko laskulle.", "add_new_tax": "Lisää uusi ALV verokanta", "tax_settings": "ALV Verokanta asetukset", "tax_per_item": "ALV per tuote", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Päivitä ohjelma", - "description": "Voit helposti päivittää Crater ohjelman uuteen versioon klikkaamalla allaolevaa painiketta", + "description": "Voit helposti päivittää InvoiceShelf ohjelman uuteen versioon klikkaamalla allaolevaa painiketta", "check_update": "Tarkista uudet päivitykset", "avail_update": "Uusi päivitys saatavilla", "next_version": "Seuraava versio", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Tiedostolevy | Tiedostolevyt", - "description": "Oletuksena, Crater käyttää paikallisia levyjä varmuuskopioiden, profiilikuvien ja muiden kuvien tallentamiseen. Voit määrittää useamman kuin yhden tallennus vaihtoehdoista, kuten DigitalOcean, S3 ja Dropbox mieltymystesi mukaan.", + "description": "Oletuksena, InvoiceShelf käyttää paikallisia levyjä varmuuskopioiden, profiilikuvien ja muiden kuvien tallentamiseen. Voit määrittää useamman kuin yhden tallennus vaihtoehdoista, kuten DigitalOcean, S3 ja Dropbox mieltymystesi mukaan.", "created_at": "luotu", "dropbox": "Dropbox", "name": "Nimi", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Aktivoi tämä, jos haluat tallentaa PDF kopiot laskuista, tarjouksista & maksukuiteista oletus leveylle automaattisesti. Käyttämällä tätä vaihtoehtoa tiedostojen latausaika nopeutuu kun esikatsellaan PDF tiedostoja.", "select_disk": "Valitse levy", "disk_settings": "Levyasetukset", - "confirm_delete": "Tämä ei vaikuta olemassaoleviin tiedostoihin & kansioihin valitulla levyllä, mutta leveymääritykset poistetaan Craterista", + "confirm_delete": "Tämä ei vaikuta olemassaoleviin tiedostoihin & kansioihin valitulla levyllä, mutta leveymääritykset poistetaan InvoiceShelfista", "action": "Toiminta", "edit_file_disk": "Muokkaa tiedostolevyä", "success_create": "Levy lisättiin onistuneesti", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "Systeemivaatimukset", "php_req_version": "Php (versio {version} vaaditaan)", "check_req": "Tarkista vaatimukset", - "system_req_desc": "Craterissa on muutamia palvelimen vaatimuksia. Varmista, että palvelimellasi on vaadittu php versio ja kaikki liitännäiset mainittuna alla." + "system_req_desc": "InvoiceShelfissa on muutamia palvelimen vaatimuksia. Varmista, että palvelimellasi on vaadittu php versio ja kaikki liitännäiset mainittuna alla." }, "errors": { "migrate_failed": "Migraatio epäonnistui", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Puhelinnumeron muoto ei ole oikea", - "invalid_url": "Väärä www osoite (esim.: http://www.crater.com)", - "invalid_domain_url": "Väärä www osoite (ex: crater.com)", + "invalid_url": "Väärä www osoite (esim.: http://www.invoiceshelf.com)", + "invalid_domain_url": "Väärä www osoite (ex: invoiceshelf.com)", "required": "Kenttä on pakollinen", "email_incorrect": "Väärä sähköpostin muoto.", "email_already_taken": "Tämä sähköposti on jo käytössä.", diff --git a/resources/scripts/locales/fr.json b/lang/fr.json similarity index 98% rename from resources/scripts/locales/fr.json rename to lang/fr.json index ec2cf3bce..28410ad11 100644 --- a/resources/scripts/locales/fr.json +++ b/lang/fr.json @@ -690,7 +690,7 @@ "no_reviews_found": "Il n'y a pas encore d'avis pour ce module !", "module_not_purchased": "Module non acheté", "module_not_found": "Module non trouvé", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Mis à jour le", "connect_installation": "Connectez votre installation", "api_token_description": "Rendez-vous à {url} et connectez votre application en entrant le jeton d'API. Vos modules achetés apparaîtront ici une fois la connexion établie.", @@ -1182,7 +1182,7 @@ "expire_setting_description": "Spécifiez si vous souhaitez faire expirer tous les liens publiques envoyés par l'application pour consulter les factures, devis, paiements,... après une durée spécifique.", "save": "Enregistrer", "preference": "Préférence | Préférences", - "general_settings": "Modifiez ici les paramètres globaux de Crater.", + "general_settings": "Modifiez ici les paramètres globaux de InvoiceShelf.", "updated_message": "Préférences mises à jour", "select_language": "Choisir la langue", "select_time_zone": "Sélectionnez le fuseau horaire", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Mise à jour", - "description": "Mettez simplement Crater à jour en cliquant sur le bouton ci-dessous.", + "description": "Mettez simplement InvoiceShelf à jour en cliquant sur le bouton ci-dessous.", "check_update": "Rechercher des mises à jour", "avail_update": "Nouvelle mise à jour disponible", "next_version": "Version suivante", @@ -1221,7 +1221,7 @@ }, "backup": { "title": "Sauvegarde | Sauvegardes", - "description": "Gérez ici vos sauvegardes. Crater créée un fichiez ZIP contenant vos fichiers et un export de la base de données.", + "description": "Gérez ici vos sauvegardes. InvoiceShelf créée un fichiez ZIP contenant vos fichiers et un export de la base de données.", "new_backup": "Faire une sauvegarde", "create_backup": "Créer une sauvegarde", "select_backup_type": "Type de sauvegarde", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Stockage | Stockages", - "description": "Crater utilise par défaut votre disque local pour stocker les sauvegardes, les avatar et d'autres fichiers image. Vous pouvez configurer d'autres comptes de stockage, comme DigitalOcean, S3 et Dropbox.", + "description": "InvoiceShelf utilise par défaut votre disque local pour stocker les sauvegardes, les avatar et d'autres fichiers image. Vous pouvez configurer d'autres comptes de stockage, comme DigitalOcean, S3 et Dropbox.", "created_at": "créé à", "dropbox": "dropbox", "name": "Nom", @@ -1289,7 +1289,7 @@ "disk_setting_description": "Activez cette option si vous souhaitez enregistrer automatiquement une copie de chaque facture, devis et reçu de paiement PDF sur votre disque par défaut. L'activation de cette option réduira le temps de chargement lors de l'affichage des PDF.", "select_disk": "Emplacement", "disk_settings": "Paramètres de stockage", - "confirm_delete": "Vos fichiers et dossiers existants sur le disque spécifié ne seront pas affectés, mais la configuration de votre disque sera supprimée de Crater", + "confirm_delete": "Vos fichiers et dossiers existants sur le disque spécifié ne seront pas affectés, mais la configuration de votre disque sera supprimée de InvoiceShelf", "action": "Action", "edit_file_disk": "Modifier cet espace de stockage", "success_create": "Stockage ajouté", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Vérification du domaine", - "desc": "Crater utilise l'authentification basée sur la session qui nécessite une vérification du domaine pour des raisons de sécurité. Veuillez saisir le domaine sur lequel vous allez accéder à votre application web.", + "desc": "InvoiceShelf utilise l'authentification basée sur la session qui nécessite une vérification du domaine pour des raisons de sécurité. Veuillez saisir le domaine sur lequel vous allez accéder à votre application web.", "app_domain": "Domaine de l'application", "verify_now": "Vérifier maintenant", "success": "Vérification du domaine réussie.", @@ -1397,7 +1397,7 @@ "system_req": "Configuration requise", "php_req_version": "Php (version {version} nécessaire)", "check_req": "Vérifier les prérequis", - "system_req_desc": "Crater a quelques prérequis. Assurez-vous que votre serveur dispose de la version Php requise et de toutes les extensions mentionnées ci-dessous." + "system_req_desc": "InvoiceShelf a quelques prérequis. Assurez-vous que votre serveur dispose de la version Php requise et de toutes les extensions mentionnées ci-dessous." }, "errors": { "migrate_failed": "Échec de la migration", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Numéro de téléphone invalide", - "invalid_url": "URL invalide (ex: http://www.crater.com)", - "invalid_domain_url": "URL invalide (ex: crater.com)", + "invalid_url": "URL invalide (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "URL invalide (ex: invoiceshelf.com)", "required": "Champ requis", "email_incorrect": "Adresse Email incorrecte.", "email_already_taken": "Un compte est déjà associé à cette adresse email.", @@ -1516,7 +1516,7 @@ "pdf_total_sales_label": "TOTAL DES VENTES", "pdf_item_sales_label": "Rapport des ventes : par article", "pdf_tax_report_label": "TAXES", - "pdf_total_tax_label": "TOTAL", + "pdf_total_tax_label": "TOTAL TAXES", "pdf_tax_types_label": "Taxe", "pdf_expenses_label": "Dépenses", "pdf_bill_to": "Facturer à", diff --git a/resources/scripts/locales/hi.json b/lang/hi.json similarity index 98% rename from resources/scripts/locales/hi.json rename to lang/hi.json index 8e5f0d673..cfb3efa4e 100644 --- a/resources/scripts/locales/hi.json +++ b/lang/hi.json @@ -690,7 +690,7 @@ "no_reviews_found": "इस मॉड्युल के लिए अभी तक वहां कोई समीक्षा नहीं है!", "module_not_purchased": "मॉड्यूल खरीदा नहीं गया", "module_not_found": "मॉड्यूल नहीं मिला", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "अंतिम बार अद्यतन किया गया", "connect_installation": "अपनी स्थापना कनेक्ट करें", "api_token_description": "{url} में लॉग इन करें और API टोकन दर्ज करके इस इंस्टॉलेशन को कनेक्ट करें। कनेक्शन स्थापित होने के बाद आपके खरीदे गए मॉड्यूल यहां दिखाई देंगे।", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/hr.json b/lang/hr.json similarity index 98% rename from resources/scripts/locales/hr.json rename to lang/hr.json index cc7da58b3..67b78c75b 100644 --- a/resources/scripts/locales/hr.json +++ b/lang/hr.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "The minimum required version for this module does not match. Please upgrade your crater app to version: {version} to proceed.", + "version_not_supported": "The minimum required version for this module does not match. Please upgrade your invoiceshelf app to version: {version} to proceed.", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Ažuriraj aplikaciju", - "description": "Lako možeš ažurirati Crater tako da napraviš provjeru novih verzija klikom na polje ispod", + "description": "Lako možeš ažurirati InvoiceShelf tako da napraviš provjeru novih verzija klikom na polje ispod", "check_update": "Provjeri ažuriranost", "avail_update": "Dostupna je nova verzija", "next_version": "Sljedeća verzija", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "Zadano ponašanje je da Crater koristi lokalni disk za čuvanje backupa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.", + "description": "Zadano ponašanje je da InvoiceShelf koristi lokalni disk za čuvanje backupa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.", "created_at": "datum kreiranja", "dropbox": "dropbox", "name": "Naziv", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Uključite ovo ako želite da spremite kopiju PDF fajla svake Fakture, Ponude i Uplate na vaš zadani disk automatski. Uključivanjem ove opcije smanjujete vrijeme učitavanja pregleda PDF fajlova.", "select_disk": "Izaberi Disk", "disk_settings": "Disk Postavke", - "confirm_delete": "Ovo neće utjecati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz Cratera.", + "confirm_delete": "Ovo neće utjecati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz InvoiceShelfa.", "action": "Radnja", "edit_file_disk": "Izmjeni File Disk", "success_create": "Disk uspješno dodan", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "Sistemski zahtjevi", "php_req_version": "Zahtjeva PHP verziju {version} ", "check_req": "Provjeri zahtjeve", - "system_req_desc": "Crater ima nekoliko zahtjeva za server. Provjeri da li tvoj server ima potrebnu verziju PHP-a i sva navedena proširenja navedena u nastavku" + "system_req_desc": "InvoiceShelf ima nekoliko zahtjeva za server. Provjeri da li tvoj server ima potrebnu verziju PHP-a i sva navedena proširenja navedena u nastavku" }, "errors": { "migrate_failed": "Neuspješno migriranje", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Pogrešan Broj Telefona", - "invalid_url": "Nevažeći URL (primer: http://www.craterapp.com)", - "invalid_domain_url": "Pogrešan URL (primjer: craterapp.com)", + "invalid_url": "Nevažeći URL (primer: http://www.invoiceshelf.com)", + "invalid_domain_url": "Pogrešan URL (primjer: invoiceshelf.com)", "required": "Obavezno polje", "email_incorrect": "Pogrešan E-mail", "email_already_taken": "Navedeni E-mail je zauzet", diff --git a/resources/scripts/locales/id.json b/lang/id.json similarity index 98% rename from resources/scripts/locales/id.json rename to lang/id.json index 3132fa53d..50cffe4e0 100644 --- a/resources/scripts/locales/id.json +++ b/lang/id.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/it.json b/lang/it.json similarity index 98% rename from resources/scripts/locales/it.json rename to lang/it.json index 30ae05d47..02df0b522 100644 --- a/resources/scripts/locales/it.json +++ b/lang/it.json @@ -690,7 +690,7 @@ "no_reviews_found": "Non ci sono ancora recensioni per questo modulo!", "module_not_purchased": "Modulo non acquistato", "module_not_found": "Modulo non trovato", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Ultimo aggiornamento il", "connect_installation": "Collega la tua installazione", "api_token_description": "Accedi a {url} e collega questa installazione inserendo l'API Token. I moduli acquistati verranno visualizzati qui dopo aver stabilito la connessione.", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Tasso di cambio", "title": "Correggi i problemi di cambio valuta", - "description": "Inserisci il tasso di cambio di tutte le valute menzionate di seguito per aiutare il Cratere a calcolare correttamente gli importi in {currency}.", + "description": "Inserisci il tasso di cambio di tutte le valute menzionate di seguito per aiutare il InvoiceShelfe a calcolare correttamente gli importi in {currency}.", "drivers": "Drivers", "new_driver": "Aggiungi Nuovo Fornitore", "edit_driver": "Modifica Fornitore", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Disco File | Dischi File", - "description": "Per impostazione predefinita, Crater utilizzerà il disco locale per salvare backup, avatar e altri file di immagine. Puoi configurare più di un driver disco come DigitalOcean, S3 e Dropbox in base alle tue preferenze.", + "description": "Per impostazione predefinita, InvoiceShelf utilizzerà il disco locale per salvare backup, avatar e altri file di immagine. Puoi configurare più di un driver disco come DigitalOcean, S3 e Dropbox in base alle tue preferenze.", "created_at": "creato il", "dropbox": "dropbox", "name": "Nome", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Abilita questa opzione, se vuoi salvare automaticamente una copia di ogni PDF Fattura, Preventivo e Ricevuta di Pagamento sul tuo disco predefinito. Attivare questa opzione diminuirà il tempo di caricamento durante la visualizzazione dei PDF.", "select_disk": "Seleziona Disco", "disk_settings": "Impostazioni Disco", - "confirm_delete": "I file e le cartelle esistenti nel disco specificato non saranno toccati, ma la configurazione del disco sarà eliminata dal Crater", + "confirm_delete": "I file e le cartelle esistenti nel disco specificato non saranno toccati, ma la configurazione del disco sarà eliminata dal InvoiceShelf", "action": "Azione", "edit_file_disk": "Modifica Disco File", "success_create": "Disco aggiunto correttamente", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Verifica Dominio", - "desc": "Crater utilizza l'autenticazione basata su sessione, che richiede la verifica del dominio per scopi di sicurezza. Inserisci il dominio su cui accederai alla tua applicazione web.", + "desc": "InvoiceShelf utilizza l'autenticazione basata su sessione, che richiede la verifica del dominio per scopi di sicurezza. Inserisci il dominio su cui accederai alla tua applicazione web.", "app_domain": "Dominio App", "verify_now": "Verifica Ora", "success": "Dominio Verificato Con Successo.", @@ -1397,7 +1397,7 @@ "system_req": "Requisiti di Sistema", "php_req_version": "Php (versione {version} richiesta)", "check_req": "Controllo Requisiti", - "system_req_desc": "Crater ha alcuni requisiti di sistema. Assicurati che il server ha la versione di php richiesta e tutte le estensioni necessarie." + "system_req_desc": "InvoiceShelf ha alcuni requisiti di sistema. Assicurati che il server ha la versione di php richiesta e tutte le estensioni necessarie." }, "errors": { "migrate_failed": "Migrazione Fallita", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Numero di telefono invalido", - "invalid_url": "URL non valido (es: http://www.crater.com)", - "invalid_domain_url": "URL non valido (es: crater.com)", + "invalid_url": "URL non valido (es: http://www.invoiceshelf.com)", + "invalid_domain_url": "URL non valido (es: invoiceshelf.com)", "required": "Campo obbligatorio", "email_incorrect": "Email non corretta.", "email_already_taken": "Email già in uso.", diff --git a/resources/scripts/locales/ja.json b/lang/ja.json similarity index 98% rename from resources/scripts/locales/ja.json rename to lang/ja.json index 8b3313cf6..7a232d101 100644 --- a/resources/scripts/locales/ja.json +++ b/lang/ja.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/ko.json b/lang/ko.json similarity index 98% rename from resources/scripts/locales/ko.json rename to lang/ko.json index 17d5c3599..c26253022 100644 --- a/resources/scripts/locales/ko.json +++ b/lang/ko.json @@ -642,7 +642,7 @@ "company_info": "회사 정보", "company_name": "회사 이름", "company_logo": "회사 로고", - "section_description": "Crater에서 생성 한 송장, 견적 및 기타 문서에 표시 될 회사에 대한 정보.", + "section_description": "InvoiceShelf에서 생성 한 송장, 견적 및 기타 문서에 표시 될 회사에 대한 정보.", "phone": "전화", "country": "국가", "state": "상태", @@ -833,7 +833,7 @@ "title": "세금 유형", "add_tax": "세금 추가", "edit_tax": "세금 수정", - "description": "원하는대로 세금을 추가하거나 제거 할 수 있습니다. Crater는 송장뿐만 아니라 개별 품목에 대한 세금을 지원합니다.", + "description": "원하는대로 세금을 추가하거나 제거 할 수 있습니다. InvoiceShelf는 송장뿐만 아니라 개별 품목에 대한 세금을 지원합니다.", "add_new_tax": "새 세금 추가", "tax_settings": "세금 설정", "tax_per_item": "품목 당 세금", @@ -883,7 +883,7 @@ }, "update_app": { "title": "앱 업데이트", - "description": "아래 버튼을 클릭하여 새로운 업데이트를 확인하여 Crater를 쉽게 업데이트 할 수 있습니다.", + "description": "아래 버튼을 클릭하여 새로운 업데이트를 확인하여 InvoiceShelf를 쉽게 업데이트 할 수 있습니다.", "check_update": "업데이트 확인", "avail_update": "새로운 업데이트 사용 가능", "next_version": "다음 버전", @@ -928,7 +928,7 @@ }, "disk": { "title": "파일 디스크 | 파일 디스크", - "description": "기본적으로 Crater는 백업, 아바타 및 기타 이미지 파일을 저장하기 위해 로컬 디스크를 사용합니다. 선호도에 따라 DigitalOcean, S3 및 Dropbox와 같은 둘 이상의 디스크 드라이버를 구성 할 수 있습니다.", + "description": "기본적으로 InvoiceShelf는 백업, 아바타 및 기타 이미지 파일을 저장하기 위해 로컬 디스크를 사용합니다. 선호도에 따라 DigitalOcean, S3 및 Dropbox와 같은 둘 이상의 디스크 드라이버를 구성 할 수 있습니다.", "created_at": "에 생성", "dropbox": "드롭 박스", "name": "이름", @@ -1075,8 +1075,8 @@ }, "validation": { "invalid_phone": "유효하지 않은 전화 번호", - "invalid_url": "잘못된 URL (예 : http://www.craterapp.com)", - "invalid_domain_url": "잘못된 URL (예 : craterapp.com)", + "invalid_url": "잘못된 URL (예 : http://www.invoiceshelf.com)", + "invalid_domain_url": "잘못된 URL (예 : invoiceshelf.com)", "required": "필드는 필수입니다", "email_incorrect": "잘못된 이메일.", "email_already_taken": "이메일이 이미 사용되었습니다.", diff --git a/resources/scripts/locales/locales.js b/lang/locales.js similarity index 100% rename from resources/scripts/locales/locales.js rename to lang/locales.js diff --git a/resources/scripts/locales/lt.json b/lang/lt.json similarity index 98% rename from resources/scripts/locales/lt.json rename to lang/lt.json index 0fee9581d..a295d7428 100644 --- a/resources/scripts/locales/lt.json +++ b/lang/lt.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Imonės pavadinimas", "company_logo": "Įmonės logotipas", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Telefonas", "country": "Šalis", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Siųsti pranešimus", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Išsaugoti", "email_save_message": "El. paštas išsaugotas sėkmingai", "please_enter_email": "Įveskite el. paštą" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Valiutų kursas", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Mokesčių tipai", "add_tax": "Pridėti mokestį", "edit_tax": "Redaguoti mokestį", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Pridėti naują mokestį", "tax_settings": "Mokesčių nustatymai", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Tikrinti, ar yra atnaujinimų", "avail_update": "Galimas naujas atnaujinimas", "next_version": "Naujesnė versija", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Pavadinimas", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Patvirtinti dabar", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/lv.json b/lang/lv.json similarity index 98% rename from resources/scripts/locales/lv.json rename to lang/lv.json index ffc1ece69..c0f43e821 100644 --- a/resources/scripts/locales/lv.json +++ b/lang/lv.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Uzņēmuma informācija", "company_name": "Uzņēmuma nosaukums", "company_logo": "Uzņēmuma logo", - "section_description": "Informācija par uzņēmumu kura tiks uzrādīta rēķinos, aprēķinos un citos dokumentos kurus veidosiet Crater sistēmā.", + "section_description": "Informācija par uzņēmumu kura tiks uzrādīta rēķinos, aprēķinos un citos dokumentos kurus veidosiet InvoiceShelf sistēmā.", "phone": "Telefona numurs", "country": "Valsts", "state": "Reģions", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Atjaunināt App", - "description": "Jūs varat atjaunināt Crater sistēmas versiju pavisam vienkārši - spiežot uz pogas zemāk", + "description": "Jūs varat atjaunināt InvoiceShelf sistēmas versiju pavisam vienkārši - spiežot uz pogas zemāk", "check_update": "Meklēt atjauninājumus", "avail_update": "Pieejami jauni atjauninājumi", "next_version": "Nākamā versija", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Iespējot šo, ja vēlaties lai katru rēķina, aprēķina un maksājuma izdrukas PDF kopiju saglabātu diskā. Šī opcija samazinās ielādēšanas laiku, kad apskatīsiet PDF.", "select_disk": "Izvēlieties disku", "disk_settings": "Diska uzstādījumi", - "confirm_delete": "Jūsu esošie faili un mapes norādītajā diskā netiks ietekmēti, bet diska konfigurācija tiks izdzēsta no Crater sistēmas", + "confirm_delete": "Jūsu esošie faili un mapes norādītajā diskā netiks ietekmēti, bet diska konfigurācija tiks izdzēsta no InvoiceShelf sistēmas", "action": "Darbība", "edit_file_disk": "Labot failu disku", "success_create": "Disks tika pievienots veiksmīgi", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Pārbaudīt prasības", - "system_req_desc": "Crater sistēmai ir dažas servera prasības. Pārliecinieties, ka jūsu serverim ir vajadzīgā php versija un visi tālāk minētie paplašinājumi." + "system_req_desc": "InvoiceShelf sistēmai ir dažas servera prasības. Pārliecinieties, ka jūsu serverim ir vajadzīgā php versija un visi tālāk minētie paplašinājumi." }, "errors": { "migrate_failed": "Migrācija neizdevās", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/nl.json b/lang/nl.json similarity index 98% rename from resources/scripts/locales/nl.json rename to lang/nl.json index d14b281ef..ab77bc9b5 100644 --- a/resources/scripts/locales/nl.json +++ b/lang/nl.json @@ -690,7 +690,7 @@ "no_reviews_found": "Er zijn nog geen beoordelingen voor deze module!", "module_not_purchased": "Module niet gekocht", "module_not_found": "Module niet gevonden", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Laatst bijgewerkt op", "connect_installation": "Verbind uw installatie", "api_token_description": "Log in op {url} en verbind deze installatie door het API Token in te voeren. Uw gekochte modules zullen hier verschijnen nadat de verbinding is gemaakt.", @@ -864,7 +864,7 @@ "company_info": "Bedrijfsinfo", "company_name": "Bedrijfsnaam", "company_logo": "Bedrijfslogo", - "section_description": "Informatie over uw bedrijf die wordt weergegeven op facturen, offertes en andere documenten die door Crater zijn gemaakt.", + "section_description": "Informatie over uw bedrijf die wordt weergegeven op facturen, offertes en andere documenten die door InvoiceShelf zijn gemaakt.", "phone": "Telefoon", "country": "Land", "state": "Provincie", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Wisselkoers", "title": "Problemen met wisselkoersen oplossen", - "description": "Voer de wisselkoers in van alle onderstaande valuta's om Crater te helpen de bedragen in {currency} goed te berekenen.", + "description": "Voer de wisselkoers in van alle onderstaande valuta's om InvoiceShelf te helpen de bedragen in {currency} goed te berekenen.", "drivers": "Stuurprogramma 's", "new_driver": "Voeg nieuwe provider toe", "edit_driver": "Provider bewerken", @@ -1126,7 +1126,7 @@ "title": "Belastingtypen", "add_tax": "Belasting toevoegen", "edit_tax": "Belasting bewerken", - "description": "U kunt naar believen belastingen toevoegen of verwijderen. Crater ondersteunt belastingen op individuele items en op de factuur.", + "description": "U kunt naar believen belastingen toevoegen of verwijderen. InvoiceShelf ondersteunt belastingen op individuele items en op de factuur.", "add_new_tax": "Nieuwe belasting toevoegen", "tax_settings": "Belastinginstellingen", "tax_per_item": "Belasting per item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "App bijwerken", - "description": "U kunt Crater eenvoudig bijwerken door te controleren op een nieuwe update door op de onderstaande knop te klikken", + "description": "U kunt InvoiceShelf eenvoudig bijwerken door te controleren op een nieuwe update door op de onderstaande knop te klikken", "check_update": "Controleer op updates", "avail_update": "Nieuwe update beschikbaar", "next_version": "Volgende versie", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Bestandsschijf | Bestandsschijven", - "description": "Standaard gebruikt Crater uw lokale schijf om back-ups, avatars en andere afbeeldingen op te slaan. U kunt indien gewenst meer dan één opslaglocatie configureren zoals DigitalOcean, S3 en Dropbox.", + "description": "Standaard gebruikt InvoiceShelf uw lokale schijf om back-ups, avatars en andere afbeeldingen op te slaan. U kunt indien gewenst meer dan één opslaglocatie configureren zoals DigitalOcean, S3 en Dropbox.", "created_at": "aangemaakt op", "dropbox": "dropbox", "name": "Naam", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Schakel dit in als je een kopie van elke factuur, raming en betalingsbewijs automatisch op je standaard schijf wilt opslaan. Het inschakelen van deze optie zal de laadtijd verminderen wanneer de PDF's worden bekeken.", "select_disk": "Selecteer Schijf", "disk_settings": "Schijfinstellingen", - "confirm_delete": "Uw bestaande bestanden en mappen in de opgegeven schijf worden niet beïnvloed, maar uw schijfconfiguratie wordt uit Crater verwijderd", + "confirm_delete": "Uw bestaande bestanden en mappen in de opgegeven schijf worden niet beïnvloed, maar uw schijfconfiguratie wordt uit InvoiceShelf verwijderd", "action": "Actie", "edit_file_disk": "Bestandsschijf bewerken", "success_create": "Schijf toegevoegd", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Menselijke Verificatie", - "desc": "Crater maakt gebruik van sessie gebaseerde authenticatie die domeinverificatie vereist voor veiligheidsdoeleinden. Voer het domein in waarop u toegang zult krijgen tot uw webapplicatie.", + "desc": "InvoiceShelf maakt gebruik van sessie gebaseerde authenticatie die domeinverificatie vereist voor veiligheidsdoeleinden. Voer het domein in waarop u toegang zult krijgen tot uw webapplicatie.", "app_domain": "App Domein", "verify_now": "Nu verifiëren", "success": "E-mailadres succesvol geverifieerd.", @@ -1397,7 +1397,7 @@ "system_req": "systeem vereisten", "php_req_version": "PHP (versie {versie} vereist))", "check_req": "Controleer vereisten", - "system_req_desc": "Crater heeft een paar serververeisten. Zorg ervoor dat uw server de vereiste php-versie heeft en alle onderstaande extensies." + "system_req_desc": "InvoiceShelf heeft een paar serververeisten. Zorg ervoor dat uw server de vereiste php-versie heeft en alle onderstaande extensies." }, "errors": { "migrate_failed": "Migreren mislukt", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Ongeldig Telefoonnummer", - "invalid_url": "Ongeldige URL (bijvoorbeeld: http://www.crater.com))", - "invalid_domain_url": "Ongeldige URL (bijvoorbeeld: crater.com))", + "invalid_url": "Ongeldige URL (bijvoorbeeld: http://www.invoiceshelf.com))", + "invalid_domain_url": "Ongeldige URL (bijvoorbeeld: invoiceshelf.com))", "required": "Veld is verplicht", "email_incorrect": "Incorrecte Email.", "email_already_taken": "De email is al in gebruik.", diff --git a/resources/scripts/locales/pl.json b/lang/pl.json similarity index 98% rename from resources/scripts/locales/pl.json rename to lang/pl.json index 97cf2e7f7..56f5183d3 100644 --- a/resources/scripts/locales/pl.json +++ b/lang/pl.json @@ -864,7 +864,7 @@ "company_info": "Dane firmy", "company_name": "Nazwa firmy", "company_logo": "Logo firmy", - "section_description": "Informacje o Twojej firmie, które będą wyświetlane na fakturach, ofertach i innych dokumentach stworzonych przez Crater.", + "section_description": "Informacje o Twojej firmie, które będą wyświetlane na fakturach, ofertach i innych dokumentach stworzonych przez InvoiceShelf.", "phone": "Telefon", "country": "Kraj", "state": "Województwo", @@ -1064,9 +1064,9 @@ "email": "Wyślij powiadomienie do", "description": "Które powiadomienia e-mail chcesz otrzymywać kiedy coś się zmieni?", "invoice_viewed": "Faktura wyświetlona", - "invoice_viewed_desc": "Kiedy klient wyświetli fakturę wysłaną za pośrednictwem kokpitu Cratera.", + "invoice_viewed_desc": "Kiedy klient wyświetli fakturę wysłaną za pośrednictwem kokpitu InvoiceShelfa.", "estimate_viewed": "Oferta wyświetlona", - "estimate_viewed_desc": "Kiedy klient wyświetli ofertę wysłaną za pośrednictwem kokpitu Cratera.", + "estimate_viewed_desc": "Kiedy klient wyświetli ofertę wysłaną za pośrednictwem kokpitu InvoiceShelfa.", "save": "Zapisz", "email_save_message": "Wiadomość zapisana pomyślnie", "please_enter_email": "Proszę wpisać adres e-mail" @@ -1126,7 +1126,7 @@ "title": "Rodzaje opodatkowania", "add_tax": "Dodaj podatek", "edit_tax": "Edytuj podatek", - "description": "Możesz dodawać lub usuwać podatki. Crater obsługuje podatki od poszczególnych produktów, jak również na fakturze.", + "description": "Możesz dodawać lub usuwać podatki. InvoiceShelf obsługuje podatki od poszczególnych produktów, jak również na fakturze.", "add_new_tax": "Dodaj nowy podatek", "tax_settings": "Ustawienia podatku", "tax_per_item": "Podatek na produkt", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Aktualizuj aplikację", - "description": "Możesz łatwo zaktualizować Cratera poprzez kliknięcie przycisku poniżej", + "description": "Możesz łatwo zaktualizować InvoiceShelfa poprzez kliknięcie przycisku poniżej", "check_update": "Sprawdź czy są dostępne nowe aktualizacje", "avail_update": "Dostępna nowa aktualizacja", "next_version": "Nowa wersja", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Dysk plików | Dyski plików", - "description": "Domyślnie Crater użyje twojego lokalnego dysku do zapisywania kopii zapasowych, awatara i innych plików obrazu. Możesz skonfigurować więcej niż jeden serwer dysku, taki jak DigitalOcean, S3 i Dropbox, zgodnie z Twoimi preferencjami.", + "description": "Domyślnie InvoiceShelf użyje twojego lokalnego dysku do zapisywania kopii zapasowych, awatara i innych plików obrazu. Możesz skonfigurować więcej niż jeden serwer dysku, taki jak DigitalOcean, S3 i Dropbox, zgodnie z Twoimi preferencjami.", "created_at": "utworzono w", "dropbox": "dropbox", "name": "Nazwa", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Włącz tę opcję, jeśli chcesz automatycznie zapisać kopię każdej faktury, oferty i potwierdzenia płatności PDF na swoim domyślnym dysku. Włączenie tej opcji spowoduje skrócenie czasu ładowania podczas przeglądania PDF.", "select_disk": "Wybierz dysk", "disk_settings": "Ustawienia dysku", - "confirm_delete": "Twoje istniejące pliki i foldery na określonym dysku nie zostaną zmienione, ale konfiguracja twojego dysku zostanie usunięta z Cratera", + "confirm_delete": "Twoje istniejące pliki i foldery na określonym dysku nie zostaną zmienione, ale konfiguracja twojego dysku zostanie usunięta z InvoiceShelfa", "action": "Akcja", "edit_file_disk": "Edytuj dysk plków", "success_create": "Dysk dodany pomyślnie", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Weryfikacja domeny", - "desc": "Crater używa uwierzytelniania opartego na sesji, które wymaga weryfikacji domeny dla celów bezpieczeństwa. Wprowadź domenę, na której będziesz mieć dostęp do swojej aplikacji internetowej.", + "desc": "InvoiceShelf używa uwierzytelniania opartego na sesji, które wymaga weryfikacji domeny dla celów bezpieczeństwa. Wprowadź domenę, na której będziesz mieć dostęp do swojej aplikacji internetowej.", "app_domain": "Domena aplikacji", "verify_now": "Potwierdź teraz", "success": "Pomyślnie zweryfikowano domenę.", @@ -1397,7 +1397,7 @@ "system_req": "Wymagania systemowe", "php_req_version": "Minimalna wersja Php (wymagana wersja {version})", "check_req": "Sprawdź wymagania", - "system_req_desc": "Crater posiada kilka wymagań serwera. Upewnij się, że Twój serwer ma wymaganą wersję php oraz wszystkie rozszerzenia wymienione poniżej." + "system_req_desc": "InvoiceShelf posiada kilka wymagań serwera. Upewnij się, że Twój serwer ma wymaganą wersję php oraz wszystkie rozszerzenia wymienione poniżej." }, "errors": { "migrate_failed": "Migracja nie powiodła się", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Nieprawidłowy numer telefonu", - "invalid_url": "Nieprawidłowy adres url (np. http://www.crater.com)", - "invalid_domain_url": "Nieprawidłowy adres url (np. crater.com)", + "invalid_url": "Nieprawidłowy adres url (np. http://www.invoiceshelf.com)", + "invalid_domain_url": "Nieprawidłowy adres url (np. invoiceshelf.com)", "required": "Pole jest wymagane", "email_incorrect": "Niepoprawny email.", "email_already_taken": "Ten adres e-mail jest już zajęty.", diff --git a/resources/scripts/locales/pt-br.json b/lang/pt-br.json similarity index 98% rename from resources/scripts/locales/pt-br.json rename to lang/pt-br.json index 90e5ba5f6..a666641e6 100644 --- a/resources/scripts/locales/pt-br.json +++ b/lang/pt-br.json @@ -585,7 +585,7 @@ "company_info": "Informação da Empresa", "company_name": "Nome da Empresa", "company_logo": "Logotipo da Empresa", - "section_description": "Informações sobre sua empresa que serão exibidas em Faturas, Orçamentos e outros documentos criados pela Crater.", + "section_description": "Informações sobre sua empresa que serão exibidas em Faturas, Orçamentos e outros documentos criados pela InvoiceShelf.", "phone": "Telefone", "country": "Pais", "state": "Estado", @@ -731,9 +731,9 @@ "email": "Enviar Notificações para", "description": "Quais notificações por email você gostaria de receber quando algo mudar?", "invoice_viewed": "Fatura Visualizada", - "invoice_viewed_desc": "Quando o seu cliente visualiza uma Fatura enviada pelo painel do Crater.", + "invoice_viewed_desc": "Quando o seu cliente visualiza uma Fatura enviada pelo painel do InvoiceShelf.", "estimate_viewed": "Orçamento Visualizado", - "estimate_viewed_desc": "Quando o seu cliente visualiza um Orçamento enviada pelo painel do Crater.", + "estimate_viewed_desc": "Quando o seu cliente visualiza um Orçamento enviada pelo painel do InvoiceShelf.", "save": "Salvar", "email_save_message": "E-mail salvo com sucesso", "please_enter_email": "Por favor digite um E-mail" @@ -742,7 +742,7 @@ "title": "Tipos de Impostos", "add_tax": "Adicionar Imposto", "edit_tax": "Editar imposto", - "description": "Você pode adicionar ou remover impostos conforme desejar. O Crater suporta impostos sobre itens individuais e também na Fatura.", + "description": "Você pode adicionar ou remover impostos conforme desejar. O InvoiceShelf suporta impostos sobre itens individuais e também na Fatura.", "add_new_tax": "Adicionar Novo Imposto", "tax_settings": "Configurações de Impostos", "tax_per_item": "Imposto por Item", @@ -792,7 +792,7 @@ }, "update_app": { "title": "Atualizar Aplicativo", - "description": "Você pode atualizar facilmente o Crater, verifique se hà novas atualizações, clicando no botão abaixo", + "description": "Você pode atualizar facilmente o InvoiceShelf, verifique se hà novas atualizações, clicando no botão abaixo", "check_update": "Verifique se há atualizações", "avail_update": "Nova atualização disponível", "next_version": "Próxima versão", @@ -883,7 +883,7 @@ "system_req": "Requisitos de Sistema", "php_req_version": "PHP (versão {version} obrigatória)", "check_req": "Verificar Requisitos", - "system_req_desc": "O Crater tem alguns requisitos de servidor. Verifique se o seu servidor possui a versão do PHP necessária e todas as extensões mencionadas abaixo." + "system_req_desc": "O InvoiceShelf tem alguns requisitos de servidor. Verifique se o seu servidor possui a versão do PHP necessária e todas as extensões mencionadas abaixo." }, "errors": { "migrate_failed": "Falha na migração", @@ -899,7 +899,7 @@ }, "validation": { "invalid_phone": "Número de telefone inválido", - "invalid_url": "url inválidas (ex: http://www.craterapp.com)", + "invalid_url": "url inválidas (ex: http://www.invoiceshelf.com)", "required": "Campo obrigatório", "email_incorrect": "E-mail incorreto", "email_already_taken": "O email já foi recebido.", diff --git a/resources/scripts/locales/pt.json b/lang/pt.json similarity index 98% rename from resources/scripts/locales/pt.json rename to lang/pt.json index 9c6e837a0..16d141528 100644 --- a/resources/scripts/locales/pt.json +++ b/lang/pt.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Informação da Empresa", "company_name": "Nome da Empresa", "company_logo": "Logotipo da Empresa", - "section_description": "Informações sobre sua empresa que serão exibidas em Faturas, Orçamentos e outros documentos criados pela Crater.", + "section_description": "Informações sobre sua empresa que serão exibidas em Faturas, Orçamentos e outros documentos criados pela InvoiceShelf.", "phone": "Telefone", "country": "Pais", "state": "Estado", @@ -1064,9 +1064,9 @@ "email": "Enviar Notificações para", "description": "Quais notificações por email você gostaria de receber quando algo mudar?", "invoice_viewed": "Fatura Visualizada", - "invoice_viewed_desc": "Quando o seu cliente visualiza uma Fatura enviada pelo painel do Crater.", + "invoice_viewed_desc": "Quando o seu cliente visualiza uma Fatura enviada pelo painel do InvoiceShelf.", "estimate_viewed": "Orçamento Visualizado", - "estimate_viewed_desc": "Quando o seu cliente visualiza um Orçamento enviada pelo painel do Crater.", + "estimate_viewed_desc": "Quando o seu cliente visualiza um Orçamento enviada pelo painel do InvoiceShelf.", "save": "Salvar", "email_save_message": "E-mail salvo com sucesso", "please_enter_email": "Por favor digite um E-mail" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tipos de Impostos", "add_tax": "Adicionar Imposto", "edit_tax": "Editar imposto", - "description": "Você pode adicionar ou remover impostos conforme desejar. O Crater suporta impostos sobre itens individuais e também na Fatura.", + "description": "Você pode adicionar ou remover impostos conforme desejar. O InvoiceShelf suporta impostos sobre itens individuais e também na Fatura.", "add_new_tax": "Adicionar Novo Imposto", "tax_settings": "Configurações de Impostos", "tax_per_item": "Imposto por Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Atualizar Aplicativo", - "description": "Você pode atualizar facilmente o Crater, verifique se há novas atualizações, clicando no botão abaixo", + "description": "Você pode atualizar facilmente o InvoiceShelf, verifique se há novas atualizações, clicando no botão abaixo", "check_update": "Verifique se há atualizações", "avail_update": "Nova atualização disponível", "next_version": "Próxima versão", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Disco de Arquivo | Discos de Arquivo", - "description": "Por padrão, o Crater usará o seu disco local para salvar os backups, avatar e outros arquivos de imagem. Você pode configurar mais de um drivers de disco como DigitalOcean, S3 e Dropbox de acordo com sua preferência.", + "description": "Por padrão, o InvoiceShelf usará o seu disco local para salvar os backups, avatar e outros arquivos de imagem. Você pode configurar mais de um drivers de disco como DigitalOcean, S3 e Dropbox de acordo com sua preferência.", "created_at": "criado em", "dropbox": "dropbox", "name": "Nome", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Ative isso, se você deseja salvar uma cópia de cada PDF das Faturas, Orçamentos e Recibos de Pagamento em seu disco padrão, automaticamente. Habilitar esta opção diminuirá o tempo de carregamento ao visualizar os PDFs.", "select_disk": "Selecionar Disco", "disk_settings": "Configurações de Disco", - "confirm_delete": "Seus arquivos e pastas existentes no disco especificado não serão afetados, mas sua configuração de disco será excluída do Crater", + "confirm_delete": "Seus arquivos e pastas existentes no disco especificado não serão afetados, mas sua configuração de disco será excluída do InvoiceShelf", "action": "Ação", "edit_file_disk": "Editar Disco de Arquivos", "success_create": "Disco adicionado com sucesso", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Verificação de Domínio", - "desc": "O Cratera usa a autenticação baseada na sessão que requer verificação de domínio para fins de segurança. Por favor, insira o domínio no qual você vai acessar seu aplicativo web.", + "desc": "O InvoiceShelfa usa a autenticação baseada na sessão que requer verificação de domínio para fins de segurança. Por favor, insira o domínio no qual você vai acessar seu aplicativo web.", "app_domain": "Domínio do Aplicativo", "verify_now": "Verificar Agora", "success": "Domínio Verificado com Sucesso.", @@ -1397,7 +1397,7 @@ "system_req": "Requisitos de Sistema", "php_req_version": "PHP (versão {version} obrigatória)", "check_req": "Verificar Requisitos", - "system_req_desc": "O Crater tem alguns requisitos de servidor. Verifique se o seu servidor possui a versão do PHP necessária e todas as extensões mencionadas abaixo." + "system_req_desc": "O InvoiceShelf tem alguns requisitos de servidor. Verifique se o seu servidor possui a versão do PHP necessária e todas as extensões mencionadas abaixo." }, "errors": { "migrate_failed": "Falha na migração", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Número de telefone inválido", - "invalid_url": "URL inválida (ex: http://www.crater.com)", - "invalid_domain_url": "URL inválida (ex: crater.com)", + "invalid_url": "URL inválida (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "URL inválida (ex: invoiceshelf.com)", "required": "Campo obrigatório", "email_incorrect": "E-mail incorreto.", "email_already_taken": "O email já está em uso.", diff --git a/resources/scripts/locales/ro.json b/lang/ro.json similarity index 98% rename from resources/scripts/locales/ro.json rename to lang/ro.json index 8445b6b3f..1c3d22c2c 100644 --- a/resources/scripts/locales/ro.json +++ b/lang/ro.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/ru.json b/lang/ru.json similarity index 98% rename from resources/scripts/locales/ru.json rename to lang/ru.json index ad86761d1..72a995e8f 100644 --- a/resources/scripts/locales/ru.json +++ b/lang/ru.json @@ -690,7 +690,7 @@ "no_reviews_found": "Для данного модуля пока нет отзывов!", "module_not_purchased": "Модуль не приобретен", "module_not_found": "Модуль не найден", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Последнее обновление", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Информация о компании", "company_name": "Название компании", "company_logo": "Символ компании", - "section_description": "Информация о вашей компании, которая будет отображаться на счетах, сметах и других документах, созданных системой Crater.", + "section_description": "Информация о вашей компании, которая будет отображаться на счетах, сметах и других документах, созданных системой InvoiceShelf.", "phone": "Телефон", "country": "Страна", "state": "Область", @@ -1066,7 +1066,7 @@ "invoice_viewed": "Счет просмотрен", "invoice_viewed_desc": "Когда клиент просматривает счет, отправленный через панель управления.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Сохранить", "email_save_message": "Email saved successfully", "please_enter_email": "Введите Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Типы налогов", "add_tax": "Добавить налог", "edit_tax": "Редактировать налог", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Добавить новый налог", "tax_settings": "Настройки налога", "tax_per_item": "Налог за единицу", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Имя", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Действие", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Ошибка миграции", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Неправильный номер телефона", - "invalid_url": "Неправильный url (ex: http://www.crater.com)", - "invalid_domain_url": "Неправильный домен (ex: crater.com)", + "invalid_url": "Неправильный url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Неправильный домен (ex: invoiceshelf.com)", "required": "Обязательное поле", "email_incorrect": "Неправильный Email.", "email_already_taken": "Email уже существует.", diff --git a/resources/scripts/locales/sk.json b/lang/sk.json similarity index 98% rename from resources/scripts/locales/sk.json rename to lang/sk.json index 0e036b32e..812763aa1 100644 --- a/resources/scripts/locales/sk.json +++ b/lang/sk.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -853,7 +853,7 @@ "from_name": "Meno odosielateľa", "from_mail": "E-mail odosielateľa", "encryption": "E-mailová Enkrypcia", - "mail_config_desc": "Nižšie nájdete konfiguráciu E-mailu použitého k odosielaniu E-mailov z aplikácie Crater. Môžete taktiež nastaviť spojenie so službami tretích strán ako napríklad Sendgrid, SES a pod." + "mail_config_desc": "Nižšie nájdete konfiguráciu E-mailu použitého k odosielaniu E-mailov z aplikácie InvoiceShelf. Môžete taktiež nastaviť spojenie so službami tretích strán ako napríklad Sendgrid, SES a pod." }, "pdf": { "title": "Nastavenia PDF", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Typ daní", "add_tax": "Pridať daň", "edit_tax": "Upraviť Daň", - "description": "Môžete pridať alebo odobrať dane. Crater podporuje dane jednotlivých položiek aj na faktúre.", + "description": "Môžete pridať alebo odobrať dane. InvoiceShelf podporuje dane jednotlivých položiek aj na faktúre.", "add_new_tax": "Pridať Novú Daň", "tax_settings": "Nastavenia daní", "tax_per_item": "Daň pre každú Položku zvlášť", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "V predvolenom nastavení použije Crater váš lokálny disk na ukladanie záloh, avatarov a iných obrazových súborov. Môžete nakonfigurovať viac ako jeden disku ako napr. DigitalOcean, S3 a Dropbox podľa vašich preferencií.", + "description": "V predvolenom nastavení použije InvoiceShelf váš lokálny disk na ukladanie záloh, avatarov a iných obrazových súborov. Môžete nakonfigurovať viac ako jeden disku ako napr. DigitalOcean, S3 a Dropbox podľa vašich preferencií.", "created_at": "vytvorené", "dropbox": "Dropbox", "name": "Názov", @@ -1289,7 +1289,7 @@ "disk_setting_description": "Túto možnosť povoľte ak si chcete automaticky uložiť kópiu každého súboru PDF s fakturami, odhadmi a príjmami na predvolený disk. Použitím tejto možnosti skrátite dobu načítania pri prezeraní súborov PDF.", "select_disk": "Vybrať Disk", "disk_settings": "Nastavenie Disku", - "confirm_delete": "Vaše existujúce súbory a priečinky na zadanom disku nebudú ovplyvnené ale konfigurácia vášho disku bude odstránená z Crateru", + "confirm_delete": "Vaše existujúce súbory a priečinky na zadanom disku nebudú ovplyvnené ale konfigurácia vášho disku bude odstránená z InvoiceShelfu", "action": "Akcia", "edit_file_disk": "Upravit Disk", "success_create": "Disk úspešne pridaný", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "Systémové požiadavky", "php_req_version": "Php (verzia {version} požadovaná)", "check_req": "Skontrolujte požiadavky", - "system_req_desc": "Crater má niekoľko požiadaviek na server. Skontrolujte či má váš server požadovanú verziu php a všetky moduly uvedené nižšie." + "system_req_desc": "InvoiceShelf má niekoľko požiadaviek na server. Skontrolujte či má váš server požadovanú verziu php a všetky moduly uvedené nižšie." }, "errors": { "migrate_failed": "Migráci zlyhala", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Zlé telefónné číslo", - "invalid_url": "Nesprávna URL adresa (ex: http://www.crater.com)", - "invalid_domain_url": "Nesprávna URL (ex: crater.com)", + "invalid_url": "Nesprávna URL adresa (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Nesprávna URL (ex: invoiceshelf.com)", "required": "Povinné pole", "email_incorrect": "Zlý email.", "email_already_taken": "Email sa uz používa.", diff --git a/resources/scripts/locales/sl.json b/lang/sl.json similarity index 98% rename from resources/scripts/locales/sl.json rename to lang/sl.json index 094feb903..9e6b7c362 100644 --- a/resources/scripts/locales/sl.json +++ b/lang/sl.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Company info", "company_name": "Company Name", "company_logo": "Company Logo", - "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by Crater.", + "section_description": "Information about your company that will be displayed on invoices, estimates and other documents created by InvoiceShelf.", "phone": "Phone", "country": "Country", "state": "State", @@ -1064,9 +1064,9 @@ "email": "Send Notifications to", "description": "Which email notifications would you like to receive when something changes?", "invoice_viewed": "Invoice viewed", - "invoice_viewed_desc": "When your customer views the invoice sent via crater dashboard.", + "invoice_viewed_desc": "When your customer views the invoice sent via invoiceshelf dashboard.", "estimate_viewed": "Estimate viewed", - "estimate_viewed_desc": "When your customer views the estimate sent via crater dashboard.", + "estimate_viewed_desc": "When your customer views the estimate sent via invoiceshelf dashboard.", "save": "Save", "email_save_message": "Email saved successfully", "please_enter_email": "Please Enter Email" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Tax Types", "add_tax": "Add Tax", "edit_tax": "Edit Tax", - "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.", + "description": "You can add or Remove Taxes as you please. InvoiceShelf supports Taxes on Individual Items as well as on the invoice.", "add_new_tax": "Add New Tax", "tax_settings": "Tax Settings", "tax_per_item": "Tax Per Item", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Update App", - "description": "You can easily update Crater by checking for a new update by clicking the button below", + "description": "You can easily update InvoiceShelf by checking for a new update by clicking the button below", "check_update": "Check for updates", "avail_update": "New Update available", "next_version": "Next version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "created at", "dropbox": "dropbox", "name": "Name", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Enable this, if you wish to save a copy of each Invoice, Estimate & Payment Receipt PDF on your default disk automatically. Turning this option will decrease the load-time when viewing the PDFs.", "select_disk": "Select Disk", "disk_settings": "Disk Settings", - "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from Crater", + "confirm_delete": "Your existing files & folders in the specified disk will not be affected but your disk configuration will be deleted from InvoiceShelf", "action": "Action", "edit_file_disk": "Edit File Disk", "success_create": "Disk added successfully", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Incorrect Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/scripts/locales/sr.json b/lang/sr.json similarity index 98% rename from resources/scripts/locales/sr.json rename to lang/sr.json index f0d198f16..1b4e762ee 100644 --- a/resources/scripts/locales/sr.json +++ b/lang/sr.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Ažuriraj aplikaciju", - "description": "Lako možeš da ažuriraš Crater tako što ćeš uraditi proveru novih verzija klikom na polje ispod", + "description": "Lako možeš da ažuriraš InvoiceShelf tako što ćeš uraditi proveru novih verzija klikom na polje ispod", "check_update": "Proveri ažuriranost", "avail_update": "Dostupna je nova verzija", "next_version": "Sledeća verzija", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "File Disk | File Disks", - "description": "Podrazumevano ponašanje je da Crater koristi lokalni disk za čuvanje bekapa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.", + "description": "Podrazumevano ponašanje je da InvoiceShelf koristi lokalni disk za čuvanje bekapa, avatara i ostalih slika. Možete podesiti više od jednog disk drajvera od provajdera poput DigitalOcean, S3 i Dropbox po vašoj želji.", "created_at": "datum kreiranja", "dropbox": "dropbox", "name": "Naziv", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Uključite ovo ako želite da sačuvate kopiju PDF fajla svake Fakture, Profakture i Uplate na vaš podrazumevani disk automatski. Uključivanjem ove opcije ćete smanjiti vreme učitavanja pri pregledu PDF fajlova.", "select_disk": "Izaberi Disk", "disk_settings": "Disk Podešavanja", - "confirm_delete": "Ovo neće uticati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz Cratera.", + "confirm_delete": "Ovo neće uticati na vaše postojeće fajlove i foldere na navedenom disku, ali će se konfiguracija vašeg diska izbrisati iz InvoiceShelfa.", "action": "Akcija", "edit_file_disk": "Izmeni File Disk", "success_create": "Disk uspešno dodat", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "Sistemski zahtevi", "php_req_version": "Zahteva se PHP verzija {version} ", "check_req": "Proveri zahteve", - "system_req_desc": "Crater ima nekoliko zahteva za server. Proveri da li tvoj server ima potrebnu verziju PHP-a i sva navedena proširenja navedena u nastavku" + "system_req_desc": "InvoiceShelf ima nekoliko zahteva za server. Proveri da li tvoj server ima potrebnu verziju PHP-a i sva navedena proširenja navedena u nastavku" }, "errors": { "migrate_failed": "Neuspešno migriranje", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Pogrešan Broj Telefona", - "invalid_url": "Nevažeći URL (primer: http://www.crater.com)", - "invalid_domain_url": "Pogrešan URL (primer: crater.com)", + "invalid_url": "Nevažeći URL (primer: http://www.invoiceshelf.com)", + "invalid_domain_url": "Pogrešan URL (primer: invoiceshelf.com)", "required": "Obavezno polje", "email_incorrect": "Pogrešan E-mail", "email_already_taken": "Navedeni E-mail je zauzet", diff --git a/resources/scripts/locales/sv.json b/lang/sv.json similarity index 98% rename from resources/scripts/locales/sv.json rename to lang/sv.json index 4ecd968e2..92d79a6eb 100644 --- a/resources/scripts/locales/sv.json +++ b/lang/sv.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Företagsinfo", "company_name": "Företagsnamn", "company_logo": "Företagslogga", - "section_description": "Information om ditt företags som kommer visas på fakturor, kostnadsförslag och andra dokument skapade av Crater.", + "section_description": "Information om ditt företags som kommer visas på fakturor, kostnadsförslag och andra dokument skapade av InvoiceShelf.", "phone": "Telefon", "country": "Land", "state": "Kommun", @@ -1064,9 +1064,9 @@ "email": "Skicka notifiering till", "description": "Vilka notifieringar vill du ha via epost när något ändras?", "invoice_viewed": "Faktura kollad", - "invoice_viewed_desc": "När din kund kollar fakturan via craters översikt.", + "invoice_viewed_desc": "När din kund kollar fakturan via invoiceshelfs översikt.", "estimate_viewed": "Betalförslag kollad", - "estimate_viewed_desc": "När din kund kollar betalförslag via craters översikt.", + "estimate_viewed_desc": "När din kund kollar betalförslag via invoiceshelfs översikt.", "save": "Spara", "email_save_message": "Epost sparades", "please_enter_email": "Skriv in epostadress" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Momssatser", "add_tax": "Lägg till moms", "edit_tax": "Ändra moms", - "description": "Du kan lägga till och ta bort momssatser som du vill. Crater har stöd för moms per artikel men även per faktura.", + "description": "Du kan lägga till och ta bort momssatser som du vill. InvoiceShelf har stöd för moms per artikel men även per faktura.", "add_new_tax": "Lägg till ny momssats", "tax_settings": "Momssattsinställningar", "tax_per_item": "Moms per artikel", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Uppdatera applikationen", - "description": "Du kan enkelt uppdatera Crater genom att söka efter uppdateringar via knappen nedan", + "description": "Du kan enkelt uppdatera InvoiceShelf genom att söka efter uppdateringar via knappen nedan", "check_update": "Sök efter uppdateringar", "avail_update": "Uppdatering är tillgänglig", "next_version": "Nästa version", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Lagring | Lagringar", - "description": "Crater använder din lokala disk som standard för att spara säkerhetskopior, avatarer och andra bildfiler. Du kan ställa in fler lagringsenheter såsom DigitalOcean, S3 och Dropbox beroende av ditt behov.", + "description": "InvoiceShelf använder din lokala disk som standard för att spara säkerhetskopior, avatarer och andra bildfiler. Du kan ställa in fler lagringsenheter såsom DigitalOcean, S3 och Dropbox beroende av ditt behov.", "created_at": "skapad den", "dropbox": "dropbox", "name": "Namn", @@ -1289,7 +1289,7 @@ "disk_setting_description": "Aktivera detta om du vill ha en kopia av varje faktura, kostnadsförslag, och betalningskvitto som PDF på din standard disk automatiskt.Aktiverar du denna funktion så kommer laddtiderna för visning av PDFer minskas.", "select_disk": "Välj Disk", "disk_settings": "Diskinställningar", - "confirm_delete": "Dina existerande filer och kataloger på den valda disken kommer inte påverkas men inställningarna för disken raderas från Crater", + "confirm_delete": "Dina existerande filer och kataloger på den valda disken kommer inte påverkas men inställningarna för disken raderas från InvoiceShelf", "action": "Handling", "edit_file_disk": "Ändra disk", "success_create": "Disk skapades", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "Systemkrav", "php_req_version": "Php (version {version} krävs)", "check_req": "Kontrollera krav", - "system_req_desc": "Crater har några krav på din server. Kontrollera att din server har den nödvändiga versionen av PHP och alla tillägg som nämns nedan." + "system_req_desc": "InvoiceShelf har några krav på din server. Kontrollera att din server har den nödvändiga versionen av PHP och alla tillägg som nämns nedan." }, "errors": { "migrate_failed": "Migration misslyckades", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Felaktigt telefonnummer", - "invalid_url": "Felaktig url (ex: http://www.crater.com)", - "invalid_domain_url": "Felaktig url (ex: crater.com)", + "invalid_url": "Felaktig url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Felaktig url (ex: invoiceshelf.com)", "required": "Fältet är tvingande", "email_incorrect": "Felaktig epostadress.", "email_already_taken": "Denna epostadress finns redan.", diff --git a/resources/scripts/locales/th.json b/lang/th.json similarity index 99% rename from resources/scripts/locales/th.json rename to lang/th.json index 66d7a35b0..32449b090 100644 --- a/resources/scripts/locales/th.json +++ b/lang/th.json @@ -1240,7 +1240,7 @@ }, "disk": { "title": "ดิสก์แฟ้ม | ไฟล์ดิสก์", - "description": "โดยค่าเริ่มต้น Crater จะใช้ดิสก์ภายในเครื่องของคุณสำหรับการบันทึกข้อมูลสำรอง, avatar และไฟล์ภาพอื่น ๆคุณสามารถกำหนดค่าไดร์เวอร์ดิสก์ได้มากกว่าหนึ่งรายการ เช่น DigitalOcean, S3 และ Dropbox ตามความต้องการของคุณ", + "description": "โดยค่าเริ่มต้น InvoiceShelf จะใช้ดิสก์ภายในเครื่องของคุณสำหรับการบันทึกข้อมูลสำรอง, avatar และไฟล์ภาพอื่น ๆคุณสามารถกำหนดค่าไดร์เวอร์ดิสก์ได้มากกว่าหนึ่งรายการ เช่น DigitalOcean, S3 และ Dropbox ตามความต้องการของคุณ", "created_at": "สร้างที่", "dropbox": "ดรอบ็อกซ์", "name": "ชื่อ", @@ -1285,7 +1285,7 @@ "disk_setting_description": " เปิดใช้งานนี้, หากคุณต้องการบันทึกสำเนาของแต่ละใบวางบิล, ใบเสนอราคาและการชำระเงินใบเสร็จรับเงิน PDF บนดิสก์เริ่มต้นของคุณโดยอัตโนมัติ.การเปิดใช้ตัวเลือกนี้จะลดเวลาในการโหลดเมื่อดูไฟล์ PDF", "select_disk": "เลือกดิสก์", "disk_settings": "การตั้งค่าดิสก์", - "confirm_delete": "ไฟล์และโฟลเดอร์ที่มีอยู่ในดิสก์ที่ระบุจะไม่ได้รับผลกระทบ แต่การกำหนดค่าดิสก์ของคุณจะถูกลบออกจาก Crater", + "confirm_delete": "ไฟล์และโฟลเดอร์ที่มีอยู่ในดิสก์ที่ระบุจะไม่ได้รับผลกระทบ แต่การกำหนดค่าดิสก์ของคุณจะถูกลบออกจาก InvoiceShelf", "action": "จัดการ", "edit_file_disk": "แก้ไขดิสก์แฟ้ม", "success_create": "ดิสก์ที่เพิ่มเรียบร้อยแล้ว", @@ -1409,8 +1409,8 @@ }, "validation": { "invalid_phone": "หมายเลขโทรศัพท์ไม่ถูกต้อง", - "invalid_url": "URL ไม่ถูกต้อง (เช่น http://www.craterapp.com)", - "invalid_domain_url": "URL ไม่ถูกต้อง (เช่น: craterapp.com)", + "invalid_url": "URL ไม่ถูกต้อง (เช่น http://www.invoiceshelf.com)", + "invalid_domain_url": "URL ไม่ถูกต้อง (เช่น: invoiceshelf.com)", "required": "ต้องกรอกข้อมูล", "email_incorrect": "อีเมลไม่ถูกต้อง", "email_already_taken": "อีเมลถูกถ่ายไปแล้ว", diff --git a/resources/scripts/locales/tr.json b/lang/tr.json similarity index 97% rename from resources/scripts/locales/tr.json rename to lang/tr.json index 369a132f0..b481a3c89 100644 --- a/resources/scripts/locales/tr.json +++ b/lang/tr.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Şirket bilgileri", "company_name": "Firma Adı", "company_logo": "Şirket logosu", - "section_description": "Crater tarafından oluşturulacak faturaların, proformaların ve diğer evrakların üzerinde görünecek şirket bilgileriniz.", + "section_description": "InvoiceShelf tarafından oluşturulacak faturaların, proformaların ve diğer evrakların üzerinde görünecek şirket bilgileriniz.", "phone": "Telefon", "country": "Ülke", "state": "Eyalet", @@ -1064,9 +1064,9 @@ "email": "Bildirimleri şuna gönder:", "description": "Bir değişiklik olduğunda hangi e-posta bildirimlerini almak istersiniz?", "invoice_viewed": "Fatura görüntülendi", - "invoice_viewed_desc": "Müşteriniz crater panosu aracılığıyla gönderilen faturayı görüntülediğinde.", + "invoice_viewed_desc": "Müşteriniz invoiceshelf panosu aracılığıyla gönderilen faturayı görüntülediğinde.", "estimate_viewed": "Proforma görüntülendi", - "estimate_viewed_desc": "Müşteriniz crater panosu aracılığıyla gönderilen proformayı görüntülediğinde.", + "estimate_viewed_desc": "Müşteriniz invoiceshelf panosu aracılığıyla gönderilen proformayı görüntülediğinde.", "save": "Kaydet", "email_save_message": "E-posta başarıyla kaydedildi", "please_enter_email": "Lütfen E-posta Adresi Girin" @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Vergi Türleri", "add_tax": "Vergi Ekle", "edit_tax": "Vergi Düzenle", - "description": "Vergileri istediğiniz gibi ekleyebilir veya kaldırabilirsiniz. Crater, Faturanın yanı sıra Bireysel Öğelerdeki Vergileri de destekler.", + "description": "Vergileri istediğiniz gibi ekleyebilir veya kaldırabilirsiniz. InvoiceShelf, Faturanın yanı sıra Bireysel Öğelerdeki Vergileri de destekler.", "add_new_tax": "Yeni Vergi Ekle", "tax_settings": "Vergi Ayarları", "tax_per_item": "Öğe Başı Vergi", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Uygulamayı Güncelle", - "description": "Aşağıdaki butona tıklayarak yeni bir güncelleme olup olmadığını kontrol ederek Crater'ı kolayca güncelleyebilirsiniz", + "description": "Aşağıdaki butona tıklayarak yeni bir güncelleme olup olmadığını kontrol ederek InvoiceShelf'ı kolayca güncelleyebilirsiniz", "check_update": "Güncellemeleri kontrol et", "avail_update": "Yeni Güncelleştirme Mevcut", "next_version": "Sonraki versiyon", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Dosya Diski | Dosya Diskleri", - "description": "By default, Crater will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", + "description": "By default, InvoiceShelf will use your local disk for saving backups, avatar and other image files. You can configure more than one disk drivers like DigitalOcean, S3 and Dropbox according to your preference.", "created_at": "oluşturulma tarihi", "dropbox": "dropbox", "name": "Ad", @@ -1289,7 +1289,7 @@ "disk_setting_description": " Her Fatura, Tahmin & Ödeme Makbuzu PDF'sinin bir kopyasını varsayılan diskinize otomatik olarak kaydetmek istiyorsanız bunu etkinleştirin. Bu seçeneğin aktif edilmesi, PDF'leri görüntülerken yükleme süresini azaltacaktır.", "select_disk": "Diski Seçin", "disk_settings": "Disk Ayarları", - "confirm_delete": "Belirtilen diskteki mevcut dosya ve klasörleriniz etkilenmeyecek ancak disk yapılandırmanız Crater'den silinecek", + "confirm_delete": "Belirtilen diskteki mevcut dosya ve klasörleriniz etkilenmeyecek ancak disk yapılandırmanız InvoiceShelf'den silinecek", "action": "Eylem", "edit_file_disk": "Dosya Diskini Düzenle", "success_create": "Disk başarıyla eklendi", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Doğrulaması", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Doğrulaması Başarılı.", @@ -1397,7 +1397,7 @@ "system_req": "System Requirements", "php_req_version": "Php (version {version} required)", "check_req": "Check Requirements", - "system_req_desc": "Crater has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." + "system_req_desc": "InvoiceShelf has a few server requirements. Make sure that your server has the required php version and all the extensions mentioned below." }, "errors": { "migrate_failed": "Migrate Failed", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Invalid Phone Number", - "invalid_url": "Invalid url (ex: http://www.craterapp.com)", - "invalid_domain_url": "Invalid url (ex: craterapp.com)", + "invalid_url": "Invalid url (ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "Invalid url (ex: invoiceshelf.com)", "required": "Field is required", "email_incorrect": "Yanlış Email.", "email_already_taken": "The email has already been taken.", diff --git a/resources/lang/vendor/backup/ar/notifications.php b/lang/vendor/backup/ar/notifications.php similarity index 100% rename from resources/lang/vendor/backup/ar/notifications.php rename to lang/vendor/backup/ar/notifications.php diff --git a/resources/lang/vendor/backup/cs/notifications.php b/lang/vendor/backup/cs/notifications.php similarity index 100% rename from resources/lang/vendor/backup/cs/notifications.php rename to lang/vendor/backup/cs/notifications.php diff --git a/resources/lang/vendor/backup/da/notifications.php b/lang/vendor/backup/da/notifications.php similarity index 100% rename from resources/lang/vendor/backup/da/notifications.php rename to lang/vendor/backup/da/notifications.php diff --git a/resources/lang/vendor/backup/de/notifications.php b/lang/vendor/backup/de/notifications.php similarity index 100% rename from resources/lang/vendor/backup/de/notifications.php rename to lang/vendor/backup/de/notifications.php diff --git a/resources/lang/vendor/backup/en/notifications.php b/lang/vendor/backup/en/notifications.php similarity index 100% rename from resources/lang/vendor/backup/en/notifications.php rename to lang/vendor/backup/en/notifications.php diff --git a/resources/lang/vendor/backup/es/notifications.php b/lang/vendor/backup/es/notifications.php similarity index 100% rename from resources/lang/vendor/backup/es/notifications.php rename to lang/vendor/backup/es/notifications.php diff --git a/resources/lang/vendor/backup/fa/notifications.php b/lang/vendor/backup/fa/notifications.php similarity index 100% rename from resources/lang/vendor/backup/fa/notifications.php rename to lang/vendor/backup/fa/notifications.php diff --git a/resources/lang/vendor/backup/fi/notifications.php b/lang/vendor/backup/fi/notifications.php similarity index 100% rename from resources/lang/vendor/backup/fi/notifications.php rename to lang/vendor/backup/fi/notifications.php diff --git a/resources/lang/vendor/backup/fr/notifications.php b/lang/vendor/backup/fr/notifications.php similarity index 100% rename from resources/lang/vendor/backup/fr/notifications.php rename to lang/vendor/backup/fr/notifications.php diff --git a/resources/lang/vendor/backup/hi/notifications.php b/lang/vendor/backup/hi/notifications.php similarity index 100% rename from resources/lang/vendor/backup/hi/notifications.php rename to lang/vendor/backup/hi/notifications.php diff --git a/resources/lang/vendor/backup/id/notifications.php b/lang/vendor/backup/id/notifications.php similarity index 100% rename from resources/lang/vendor/backup/id/notifications.php rename to lang/vendor/backup/id/notifications.php diff --git a/resources/lang/vendor/backup/it/notifications.php b/lang/vendor/backup/it/notifications.php similarity index 100% rename from resources/lang/vendor/backup/it/notifications.php rename to lang/vendor/backup/it/notifications.php diff --git a/resources/lang/vendor/backup/nl/notifications.php b/lang/vendor/backup/nl/notifications.php similarity index 100% rename from resources/lang/vendor/backup/nl/notifications.php rename to lang/vendor/backup/nl/notifications.php diff --git a/resources/lang/vendor/backup/pl/notifications.php b/lang/vendor/backup/pl/notifications.php similarity index 100% rename from resources/lang/vendor/backup/pl/notifications.php rename to lang/vendor/backup/pl/notifications.php diff --git a/resources/lang/vendor/backup/pt-BR/notifications.php b/lang/vendor/backup/pt-BR/notifications.php similarity index 100% rename from resources/lang/vendor/backup/pt-BR/notifications.php rename to lang/vendor/backup/pt-BR/notifications.php diff --git a/resources/lang/vendor/backup/ro/notifications.php b/lang/vendor/backup/ro/notifications.php similarity index 100% rename from resources/lang/vendor/backup/ro/notifications.php rename to lang/vendor/backup/ro/notifications.php diff --git a/resources/lang/vendor/backup/ru/notifications.php b/lang/vendor/backup/ru/notifications.php similarity index 100% rename from resources/lang/vendor/backup/ru/notifications.php rename to lang/vendor/backup/ru/notifications.php diff --git a/resources/lang/vendor/backup/tr/notifications.php b/lang/vendor/backup/tr/notifications.php similarity index 100% rename from resources/lang/vendor/backup/tr/notifications.php rename to lang/vendor/backup/tr/notifications.php diff --git a/resources/lang/vendor/backup/uk/notifications.php b/lang/vendor/backup/uk/notifications.php similarity index 100% rename from resources/lang/vendor/backup/uk/notifications.php rename to lang/vendor/backup/uk/notifications.php diff --git a/resources/lang/vendor/backup/vi/notifications.php b/lang/vendor/backup/vi/notifications.php similarity index 100% rename from resources/lang/vendor/backup/vi/notifications.php rename to lang/vendor/backup/vi/notifications.php diff --git a/resources/lang/vendor/backup/zh-CN/notifications.php b/lang/vendor/backup/zh-CN/notifications.php similarity index 100% rename from resources/lang/vendor/backup/zh-CN/notifications.php rename to lang/vendor/backup/zh-CN/notifications.php diff --git a/resources/lang/vendor/backup/zh-TW/notifications.php b/lang/vendor/backup/zh-TW/notifications.php similarity index 100% rename from resources/lang/vendor/backup/zh-TW/notifications.php rename to lang/vendor/backup/zh-TW/notifications.php diff --git a/resources/scripts/locales/vi.json b/lang/vi.json similarity index 98% rename from resources/scripts/locales/vi.json rename to lang/vi.json index 3cf5054a4..60e2b2c36 100644 --- a/resources/scripts/locales/vi.json +++ b/lang/vi.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -864,7 +864,7 @@ "company_info": "Thông tin công ty", "company_name": "Tên công ty", "company_logo": "Logo công ty", - "section_description": "Thông tin về công ty của bạn sẽ được hiển thị trên hóa đơn, ước tính và các tài liệu khác do Crater tạo.", + "section_description": "Thông tin về công ty của bạn sẽ được hiển thị trên hóa đơn, ước tính và các tài liệu khác do InvoiceShelf tạo.", "phone": "Điện thoại", "country": "Quốc gia", "state": "Tiểu bang", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "Các loại thuế", "add_tax": "Thêm thuế", "edit_tax": "Chỉnh sửa thuế", - "description": "Bạn có thể thêm hoặc bớt thuế tùy ý. Crater hỗ trợ Thuế đối với các mặt hàng riêng lẻ cũng như trên hóa đơn.", + "description": "Bạn có thể thêm hoặc bớt thuế tùy ý. InvoiceShelf hỗ trợ Thuế đối với các mặt hàng riêng lẻ cũng như trên hóa đơn.", "add_new_tax": "Thêm thuế mới", "tax_settings": "Cài đặt thuế", "tax_per_item": "Thuế mỗi mặt hàng", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "Cập nhật ứng dụng", - "description": "Bạn có thể dễ dàng cập nhật Crater bằng cách kiểm tra bản cập nhật mới bằng cách nhấp vào nút bên dưới", + "description": "Bạn có thể dễ dàng cập nhật InvoiceShelf bằng cách kiểm tra bản cập nhật mới bằng cách nhấp vào nút bên dưới", "check_update": "Kiểm tra cập nhật", "avail_update": "Cập nhật mới có sẵn", "next_version": "Phiên bản tiếp theo", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "Đĩa tập tin | Đĩa Tệp", - "description": "Theo mặc định, Crater sẽ sử dụng đĩa cục bộ của bạn để lưu các bản sao lưu, ảnh đại diện và các tệp hình ảnh khác. Bạn có thể định cấu hình nhiều hơn một trình điều khiển đĩa như DigitalOcean, S3 và Dropbox theo sở thích của mình.", + "description": "Theo mặc định, InvoiceShelf sẽ sử dụng đĩa cục bộ của bạn để lưu các bản sao lưu, ảnh đại diện và các tệp hình ảnh khác. Bạn có thể định cấu hình nhiều hơn một trình điều khiển đĩa như DigitalOcean, S3 và Dropbox theo sở thích của mình.", "created_at": "được tạo ra tại", "dropbox": "dropbox", "name": "Tên", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "Domain Verification", - "desc": "Crater uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", + "desc": "InvoiceShelf uses Session based authentication which requires domain verification for security purposes. Please enter the domain on which you will be accessing your web application.", "app_domain": "App Domain", "verify_now": "Verify Now", "success": "Domain Verify Successfully.", @@ -1397,7 +1397,7 @@ "system_req": "yêu cầu hệ thống", "php_req_version": "Php (bắt buộc phải có phiên bản {version})", "check_req": "Kiểm tra yêu cầu", - "system_req_desc": "Crater có một số yêu cầu máy chủ. Đảm bảo rằng máy chủ của bạn có phiên bản php bắt buộc và tất cả các phần mở rộng được đề cập bên dưới." + "system_req_desc": "InvoiceShelf có một số yêu cầu máy chủ. Đảm bảo rằng máy chủ của bạn có phiên bản php bắt buộc và tất cả các phần mở rộng được đề cập bên dưới." }, "errors": { "migrate_failed": "Di chuyển không thành công", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "Số điện thoại không hợp lệ", - "invalid_url": "Url không hợp lệ (ví dụ: http://www.crater.com)", - "invalid_domain_url": "Url không hợp lệ (ví dụ: crater.com)", + "invalid_url": "Url không hợp lệ (ví dụ: http://www.invoiceshelf.com)", + "invalid_domain_url": "Url không hợp lệ (ví dụ: invoiceshelf.com)", "required": "Lĩnh vực được yêu cầu", "email_incorrect": "Email không chính xác.", "email_already_taken": "Lá thư đã được lấy đi.", diff --git a/resources/scripts/locales/zh.json b/lang/zh.json similarity index 98% rename from resources/scripts/locales/zh.json rename to lang/zh.json index 0767a61df..4839a30cb 100644 --- a/resources/scripts/locales/zh.json +++ b/lang/zh.json @@ -690,7 +690,7 @@ "no_reviews_found": "There are no reviews for this module yet!", "module_not_purchased": "Module Not Purchased", "module_not_found": "Module Not Found", - "version_not_supported": "This module version doesn't support the current version of Crater", + "version_not_supported": "This module version doesn't support the current version of InvoiceShelf", "last_updated": "Last Updated On", "connect_installation": "Connect your installation", "api_token_description": "Login to {url} and connect this installation by entering the API Token. Your purchased modules will show up here after the connection is established.", @@ -1093,7 +1093,7 @@ "exchange_rate": { "exchange_rate": "Exchange Rate", "title": "Fix Currency Exchange issues", - "description": "Please enter exchange rate of all the currencies mentioned below to help Crater properly calculate the amounts in {currency}.", + "description": "Please enter exchange rate of all the currencies mentioned below to help InvoiceShelf properly calculate the amounts in {currency}.", "drivers": "Drivers", "new_driver": "Add New Provider", "edit_driver": "Edit Provider", @@ -1126,7 +1126,7 @@ "title": "稅收類型", "add_tax": "加入稅項", "edit_tax": "編輯稅項", - "description": "你可以新增或移除稅項. Crater支持獨立稅項.", + "description": "你可以新增或移除稅項. InvoiceShelf支持獨立稅項.", "add_new_tax": "新增稅項", "tax_settings": "稅項設定", "tax_per_item": "商品稅項", @@ -1198,7 +1198,7 @@ }, "update_app": { "title": "更新 App", - "description": "你可以點擊下方按鈕更新Crater", + "description": "你可以點擊下方按鈕更新InvoiceShelf", "check_update": "檢查更新", "avail_update": "有新更新可用", "next_version": "下一版本", @@ -1244,7 +1244,7 @@ }, "disk": { "title": "檔案磁碟 | 檔案磁碟", - "description": "預設Crater會使用你本機作為資料備份. 你可設定多於一個磁碟如DigialOcean, S3 及 Dropbox.", + "description": "預設InvoiceShelf會使用你本機作為資料備份. 你可設定多於一個磁碟如DigialOcean, S3 及 Dropbox.", "created_at": "建立於", "dropbox": "Dropbox", "name": "名稱", @@ -1368,7 +1368,7 @@ }, "verify_domain": { "title": "域名驗證", - "desc": "Crater使用的會話驗證因安全考量需要域名\b核實. 請輸入你的域名以便你存取你應用.", + "desc": "InvoiceShelf使用的會話驗證因安全考量需要域名\b核實. 請輸入你的域名以便你存取你應用.", "app_domain": "App 網域名稱", "verify_now": "立即檢驗", "success": "成功驗證域名", @@ -1397,7 +1397,7 @@ "system_req": "系統需求", "php_req_version": "最小的php版本(需要{version})", "check_req": "檢查需求", - "system_req_desc": "Crater對伺服器有少許需求. 請檢查以下的php版本及\b擴展是否吻合." + "system_req_desc": "InvoiceShelf對伺服器有少許需求. 請檢查以下的php版本及\b擴展是否吻合." }, "errors": { "migrate_failed": "遷移失敗", @@ -1413,8 +1413,8 @@ }, "validation": { "invalid_phone": "無效的電話號碼", - "invalid_url": "無較URL(ex: http://www.crater.com)", - "invalid_domain_url": "無較URL(ex: crater.com)", + "invalid_url": "無較URL(ex: http://www.invoiceshelf.com)", + "invalid_domain_url": "無較URL(ex: invoiceshelf.com)", "required": "此欄位為必需", "email_incorrect": "電郵錯誤", "email_already_taken": "此電郵已被使用", diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 0a9ec0daa..000000000 --- a/package-lock.json +++ /dev/null @@ -1,3403 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@aesoper/normal-utils": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@aesoper/normal-utils/-/normal-utils-0.1.5.tgz", - "integrity": "sha512-LFF/6y6h5mfwhnJaWqqxuC8zzDaHCG62kMRkd8xhDtq62TQj9dM17A9DhE87W7DhiARJsHLgcina/9P4eNCN1w==" - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "@babel/parser": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==" - }, - "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - } - } - } - }, - "@headlessui/vue": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.4.0.tgz", - "integrity": "sha512-BBLDciyKiGK03whaSVkUacDY2Cd5AR05JCUPWQLvQ9HtjQc9tv5RyPpcdmoXJa+XWI10e3U1JxL+8FY7kJMcEQ==" - }, - "@heroicons/vue": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.4.tgz", - "integrity": "sha512-jm7JMoUGr7Asn07oYNmewxkdQALnskTzRo17iGpHG/apLcc+GFdvdN4XvWZ2awStodaqeZ4eYWg7UcI0LvLETQ==" - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "@intlify/core-base": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.1.7.tgz", - "integrity": "sha512-q1W2j81xbHyfKrNcca/CeJyf0Bcx4u9UDu05l7AaiJbqOseTme2o2I3wp1hDDCtmC7k7HgX0sAygyHNJH9swuQ==", - "requires": { - "@intlify/devtools-if": "9.1.7", - "@intlify/message-compiler": "9.1.7", - "@intlify/message-resolver": "9.1.7", - "@intlify/runtime": "9.1.7", - "@intlify/shared": "9.1.7", - "@intlify/vue-devtools": "9.1.7" - } - }, - "@intlify/devtools-if": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.1.7.tgz", - "integrity": "sha512-/DcN5FUySSkQhDqx5y1RvxfuCXO3Ot/dUEIOs472qbM7Hyb2qif+eXCnwHBzlI4+wEfQVT6L0PiM1a7Er/ro9g==", - "requires": { - "@intlify/shared": "9.1.7" - } - }, - "@intlify/message-compiler": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.1.7.tgz", - "integrity": "sha512-JZNkAhr3O7tnbdbRBcpYfqr/Ai26WTzX0K/lV8Y1KVdOIj/dGiamaffdWUdFiDXUnbJRNbPiOaKxy7Pwip3KxQ==", - "requires": { - "@intlify/message-resolver": "9.1.7", - "@intlify/shared": "9.1.7", - "source-map": "0.6.1" - } - }, - "@intlify/message-resolver": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/message-resolver/-/message-resolver-9.1.7.tgz", - "integrity": "sha512-WTK+OaXJYjyquLGhuCyDvU2WHkG+kXzXeHagmVFHn+s118Jf2143zzkLLUrapP5CtZ/csuyjmYg7b3xQRQAmvw==" - }, - "@intlify/runtime": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/runtime/-/runtime-9.1.7.tgz", - "integrity": "sha512-QURPSlzhOVnRwS2XMGpCDsDkP42kfVBh94aAORxh/gVGzdgJip2vagrIFij/J69aEqdB476WJkMhVjP8VSHmiA==", - "requires": { - "@intlify/message-compiler": "9.1.7", - "@intlify/message-resolver": "9.1.7", - "@intlify/shared": "9.1.7" - } - }, - "@intlify/shared": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.1.7.tgz", - "integrity": "sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ==" - }, - "@intlify/vue-devtools": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.1.7.tgz", - "integrity": "sha512-DI5Wc0aOiohtBUGUkKAcryCWbbuaO4/PK4Pa/LaNCsFNxbtgR5qkIDmhBv9xVPYGTUhySXxaDDAMvOpBjhPJjw==", - "requires": { - "@intlify/message-resolver": "9.1.7", - "@intlify/runtime": "9.1.7", - "@intlify/shared": "9.1.7" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@popperjs/core": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz", - "integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==" - }, - "@tailwindcss/forms": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.0.tgz", - "integrity": "sha512-DeaQBx6EgEeuZPQACvC+mKneJsD8am1uiJugjgQK1+/Vt+Ai0GpFBC2T2fqnUad71WgOxyrZPE6BG1VaI6YqfQ==", - "dev": true, - "requires": { - "mini-svg-data-uri": "^1.2.3" - } - }, - "@tiptap/core": { - "version": "2.0.0-beta.99", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.0.0-beta.99.tgz", - "integrity": "sha512-DoSIgeYyWGWTDVHyquVM5SM61T4U8kKWjlmOtSPcee13Z5zXrbCBSxCTgtC3uh7I+OcoE/PNQQFMU9yWZzKnhw==", - "requires": { - "@types/prosemirror-commands": "^1.0.4", - "@types/prosemirror-inputrules": "^1.0.4", - "@types/prosemirror-keymap": "^1.0.4", - "@types/prosemirror-model": "^1.13.1", - "@types/prosemirror-schema-list": "^1.0.3", - "@types/prosemirror-state": "^1.2.7", - "@types/prosemirror-transform": "^1.1.4", - "@types/prosemirror-view": "^1.17.2", - "prosemirror-commands": "^1.1.10", - "prosemirror-inputrules": "^1.1.3", - "prosemirror-keymap": "^1.1.3", - "prosemirror-model": "^1.14.3", - "prosemirror-schema-list": "^1.1.5", - "prosemirror-state": "^1.3.4", - "prosemirror-transform": "^1.3.2", - "prosemirror-view": "^1.19.0" - } - }, - "@tiptap/extension-blockquote": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.15.tgz", - "integrity": "sha512-Cso44KsYsqKqaNveQmx5KVaLy9krq5AzE9WhGVDBSFqWhvuIJkQYrTRBbOTfUDs/st9VuwJrbjTDD65ow50wEw==", - "requires": { - "prosemirror-inputrules": "^1.1.3" - } - }, - "@tiptap/extension-bold": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.15.tgz", - "integrity": "sha512-jKyV6iiwhxwa0+7uuKD74jNDVNLNOS1GmU14MgaA95pY5e1fyaRBPPX8Gtt89niz2CLOY711AV17RPZTe/e60w==" - }, - "@tiptap/extension-bubble-menu": { - "version": "2.0.0-beta.39", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.39.tgz", - "integrity": "sha512-hmA+ePR+MnRaTJ5MxoZ3yqOcK54cW2KQllZx16ZwSyM+yU9bXVhfMmyZwqRD7GGQFkrfnPm5QnedXDBYJD19OQ==", - "requires": { - "prosemirror-state": "^1.3.4", - "prosemirror-view": "^1.20.1", - "tippy.js": "^6.3.1" - } - }, - "@tiptap/extension-bullet-list": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.15.tgz", - "integrity": "sha512-5i44JzsZOh8Ci6CuYRQy6W3jCpYgX0+VuJKeHvZ6Aomy4Qqrtc9Jk43PBmCj91lNUUtH6Io9l+kDrLCumEFnEg==", - "requires": { - "prosemirror-inputrules": "^1.1.3" - } - }, - "@tiptap/extension-code": { - "version": "2.0.0-beta.16", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.0.0-beta.16.tgz", - "integrity": "sha512-Kakg/RMiVrxjzIkLVDXtbCzRh/9W8dgSG04IhMZNOI8N9vWn8Z78jdUyxEEDTcL/JyWWcMxn9AsJw2U5ajO3pA==" - }, - "@tiptap/extension-code-block": { - "version": "2.0.0-beta.18", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.18.tgz", - "integrity": "sha512-E2gz7ovl9nXLZzheqLyN3hi7A10fCaodDn4DvIl4wiEbKZpF7WFBNeb+FQetWNay9UWNeDO94SCX9+rT9H+yHA==", - "requires": { - "prosemirror-inputrules": "^1.1.3" - } - }, - "@tiptap/extension-document": { - "version": "2.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.0.0-beta.13.tgz", - "integrity": "sha512-nrufdKziA/wovaY4DjGkc8OGuIZi8CH8CW3+yYfeWbruwFKkyZHlZy9nplFWSEqBHPAeqD+px9r91yGMW3ontA==" - }, - "@tiptap/extension-dropcursor": { - "version": "2.0.0-beta.19", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.19.tgz", - "integrity": "sha512-rslIcVvD42NNh5sEbkCkG03DWMFBrS5KoK+lDOdIcC1DjmTtpVgcLvvE01btzaB3ljx+UVqI2Zaxa6VOiTeEMw==", - "requires": { - "@types/prosemirror-dropcursor": "^1.0.3", - "prosemirror-dropcursor": "^1.3.5" - } - }, - "@tiptap/extension-floating-menu": { - "version": "2.0.0-beta.33", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.33.tgz", - "integrity": "sha512-8s8DPnHIzXg7E7S/DjuS1AAFZKVYXY0KBKaEd1f2V45YOkKwN9El46Ugk/4Ir3yrrllvnisbP9ol+BAQmI0bMg==", - "requires": { - "prosemirror-state": "^1.3.4", - "prosemirror-view": "^1.20.1", - "tippy.js": "^6.3.1" - } - }, - "@tiptap/extension-gapcursor": { - "version": "2.0.0-beta.24", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.24.tgz", - "integrity": "sha512-/6Ru0wNLIb3fo30Ar3z/rcakoUA2EIJL9sBFiuyHWTAIujeEaBzA6oG5L4PpP+daKd31JF0I6LjeWMSU9CBSFw==", - "requires": { - "@types/prosemirror-gapcursor": "^1.0.4", - "prosemirror-gapcursor": "^1.2.0" - } - }, - "@tiptap/extension-hard-break": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.21.tgz", - "integrity": "sha512-Ukl+wjfLhE0tW7lWRpSPPo2tajjGnEaSc/Irey1JineFf+x/azA9rREzQy0r2AhORTalH7lj/KDmSdG8IT6syA==" - }, - "@tiptap/extension-heading": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.15.tgz", - "integrity": "sha512-UoXDwEdCV9KiPh0wj0jj2Jt6VDqkoTaSU3d9bmEBLwg1Gjgbuv39JDst7oxSqbf9rgbl3txbeOy35wVBKe9CqA==", - "requires": { - "prosemirror-inputrules": "^1.1.3" - } - }, - "@tiptap/extension-history": { - "version": "2.0.0-beta.16", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.0.0-beta.16.tgz", - "integrity": "sha512-nrNwV8a7zUt1t2I/kPX5Y6N9vZ8mrugimJIQmPGIp/4mmw1SEUzkaPpIsv6+ELmqMHSDktQ0ofb3pXeWDXWZvw==", - "requires": { - "@types/prosemirror-history": "^1.0.3", - "prosemirror-history": "^1.2.0" - } - }, - "@tiptap/extension-horizontal-rule": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.21.tgz", - "integrity": "sha512-fgvRGuNEGWAitbcoz6VZSR9gcVIHksTy2QpXPnQC+N9Mi7havaxreYdMZn+oePW/5kdZoZNRx+jsf5DjKomvoQ==", - "requires": { - "prosemirror-state": "^1.3.4" - } - }, - "@tiptap/extension-italic": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.15.tgz", - "integrity": "sha512-ZCz1vCysLdvOUrwODuyBP0BDaemCLh6ib7qTYoSDKdive9kfn0Vc5Fg3o8xgHrtrUfwKIJz/sWOknjDEGIc9cw==" - }, - "@tiptap/extension-list-item": { - "version": "2.0.0-beta.14", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.14.tgz", - "integrity": "sha512-t6xwEqP+d5443Ul2Jvqz9kXb3ro7bA7yY9HA0vskm3120WxxHW9jxgxZN+82Ot5Tm7nXOAlsN6vuqnt4idnxZQ==" - }, - "@tiptap/extension-ordered-list": { - "version": "2.0.0-beta.16", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.16.tgz", - "integrity": "sha512-3n0h5FBfQqBrN/zqF/Ngoyd1bZxeIRLwWI7ak4KulpvOg5V/yw3sw5CSxr2f13ZI9AgGaTq8yOsTYs9dkCCnsQ==", - "requires": { - "prosemirror-inputrules": "^1.1.3" - } - }, - "@tiptap/extension-paragraph": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.17.tgz", - "integrity": "sha512-qCQVCf9c2hgaeIdfy22PaoZyW5Vare/1aGkOEAaZma5RjrUbV9hrRKwoW9LsDjnh1EN1fIeKdg02yEhnHWtG8A==" - }, - "@tiptap/extension-strike": { - "version": "2.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.17.tgz", - "integrity": "sha512-+WRd0RuCK4+jFKNVN+4rHTa5VMqqGDO2uc+TknkqhFqWp/z96OAGlpHJOwPrnW1fLbpjEBBQIr1vVYSw6KgcZg==" - }, - "@tiptap/extension-text": { - "version": "2.0.0-beta.13", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.0.0-beta.13.tgz", - "integrity": "sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw==" - }, - "@tiptap/starter-kit": { - "version": "2.0.0-beta.97", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.0.0-beta.97.tgz", - "integrity": "sha512-ySnJPG6px/Pv99TGCrgXOi7Ahh1qkpV171C791lLlFuH+lXMo719bWaeCTEiBDxjamVzh18nEJkIxyu6sucpSg==", - "requires": { - "@tiptap/core": "^2.0.0-beta.99", - "@tiptap/extension-blockquote": "^2.0.0-beta.15", - "@tiptap/extension-bold": "^2.0.0-beta.15", - "@tiptap/extension-bullet-list": "^2.0.0-beta.15", - "@tiptap/extension-code": "^2.0.0-beta.16", - "@tiptap/extension-code-block": "^2.0.0-beta.17", - "@tiptap/extension-document": "^2.0.0-beta.13", - "@tiptap/extension-dropcursor": "^2.0.0-beta.18", - "@tiptap/extension-gapcursor": "^2.0.0-beta.19", - "@tiptap/extension-hard-break": "^2.0.0-beta.15", - "@tiptap/extension-heading": "^2.0.0-beta.15", - "@tiptap/extension-history": "^2.0.0-beta.15", - "@tiptap/extension-horizontal-rule": "^2.0.0-beta.19", - "@tiptap/extension-italic": "^2.0.0-beta.15", - "@tiptap/extension-list-item": "^2.0.0-beta.14", - "@tiptap/extension-ordered-list": "^2.0.0-beta.15", - "@tiptap/extension-paragraph": "^2.0.0-beta.17", - "@tiptap/extension-strike": "^2.0.0-beta.17", - "@tiptap/extension-text": "^2.0.0-beta.13" - } - }, - "@tiptap/vue-3": { - "version": "2.0.0-beta.52", - "resolved": "https://registry.npmjs.org/@tiptap/vue-3/-/vue-3-2.0.0-beta.52.tgz", - "integrity": "sha512-bHfJuhlCYOp+V3njGS4qQUVwyfjjb7KtPhZwl0FfYSNJ6/BTHYltd6L+UiQzVdcaoWFvPyF47fZajx602B5FGA==", - "requires": { - "@tiptap/extension-bubble-menu": "^2.0.0-beta.29", - "@tiptap/extension-floating-menu": "^2.0.0-beta.23", - "prosemirror-state": "^1.3.4", - "prosemirror-view": "^1.19.0", - "vue": "^3.0.0" - } - }, - "@types/orderedmap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/orderedmap/-/orderedmap-1.0.0.tgz", - "integrity": "sha512-dxKo80TqYx3YtBipHwA/SdFmMMyLCnP+5mkEqN0eMjcTBzHkiiX0ES118DsjDBjvD+zeSsSU9jULTZ+frog+Gw==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prosemirror-commands": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz", - "integrity": "sha512-utDNYB3EXLjAfYIcRWJe6pn3kcQ5kG4RijbT/0Y/TFOm6yhvYS/D9eJVnijdg9LDjykapcezchxGRqFD5LcyaQ==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*", - "@types/prosemirror-view": "*" - } - }, - "@types/prosemirror-dropcursor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz", - "integrity": "sha512-b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==", - "requires": { - "@types/prosemirror-state": "*" - } - }, - "@types/prosemirror-gapcursor": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.4.tgz", - "integrity": "sha512-9xKjFIG5947dzerFvkLWp6F53JwrUYoYwh3SgcTFEp8SbSfNNrez/PFYVZKPnoqPoaK5WtTdQTaMwpCV9rXQIg==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*" - } - }, - "@types/prosemirror-history": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/prosemirror-history/-/prosemirror-history-1.0.3.tgz", - "integrity": "sha512-5TloMDRavgLjOAKXp1Li8u0xcsspzbT1Cm9F2pwHOkgvQOz1jWQb2VIXO7RVNsFjLBZdIXlyfSLivro3DuMWXg==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*" - } - }, - "@types/prosemirror-inputrules": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz", - "integrity": "sha512-lJIMpOjO47SYozQybUkpV6QmfuQt7GZKHtVrvS+mR5UekA8NMC5HRIVMyaIauJLWhKU6oaNjpVaXdw41kh165g==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*" - } - }, - "@types/prosemirror-keymap": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz", - "integrity": "sha512-ycevwkqUh+jEQtPwqO7sWGcm+Sybmhu8MpBsM8DlO3+YTKnXbKA6SDz/+q14q1wK3UA8lHJyfR+v+GPxfUSemg==", - "requires": { - "@types/prosemirror-commands": "*", - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*", - "@types/prosemirror-view": "*" - } - }, - "@types/prosemirror-model": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@types/prosemirror-model/-/prosemirror-model-1.13.2.tgz", - "integrity": "sha512-a2rDB0aZ+7aIP7uBqQq1wLb4Hg4qqEvpkCqvhsgT/gG8IWC0peCAZfQ24sgTco0qSJLeDgIbtPeU6mgr869/kg==", - "requires": { - "@types/orderedmap": "*" - } - }, - "@types/prosemirror-schema-list": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz", - "integrity": "sha512-uWybOf+M2Ea7rlbs0yLsS4YJYNGXYtn4N+w8HCw3Vvfl6wBAROzlMt0gV/D/VW/7J/LlAjwMezuGe8xi24HzXA==", - "requires": { - "@types/orderedmap": "*", - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*" - } - }, - "@types/prosemirror-state": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/prosemirror-state/-/prosemirror-state-1.2.7.tgz", - "integrity": "sha512-clJf5uw3/XQnBJtl2RqYXoLMGBySnLYl43xtDvFfQZKkLnnYcM1SDU8dcz7lWjl2Dm+H98RpLOl44pp7DYT+wA==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-transform": "*", - "@types/prosemirror-view": "*" - } - }, - "@types/prosemirror-transform": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/prosemirror-transform/-/prosemirror-transform-1.1.4.tgz", - "integrity": "sha512-HP1PauvkqSgDquZut8HaLOTUDQ6jja/LAy4OA7tTS1XG7wqRnX3gLUyEj0mD6vFd4y8BPkNddNdOh/BeGHlUjg==", - "requires": { - "@types/prosemirror-model": "*" - } - }, - "@types/prosemirror-view": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prosemirror-view/-/prosemirror-view-1.19.1.tgz", - "integrity": "sha512-fyQ4NVxAdfISWrE2qT8cpZdosXoH/1JuVYMBs9CdaXPbvi/8R2L2tkkcMRM314piKrO8nfYH5OBZKzP2Ax3jtA==", - "requires": { - "@types/prosemirror-model": "*", - "@types/prosemirror-state": "*", - "@types/prosemirror-transform": "*" - } - }, - "@vue/compiler-core": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.4.tgz", - "integrity": "sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw==", - "requires": { - "@babel/parser": "^7.12.0", - "@babel/types": "^7.12.0", - "@vue/shared": "3.2.4", - "estree-walker": "^2.0.1", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.4.tgz", - "integrity": "sha512-uj1nwO4794fw2YsYas5QT+FU/YGrXbS0Qk+1c7Kp1kV7idhZIghWLTjyvYibpGoseFbYLPd+sW2/noJG5H04EQ==", - "requires": { - "@vue/compiler-core": "3.2.4", - "@vue/shared": "3.2.4" - } - }, - "@vue/compiler-ssr": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.19.tgz", - "integrity": "sha512-oLon0Cn3O7WEYzzmzZavGoqXH+199LT+smdjBT3Uf3UX4HwDNuBFCmvL0TsqV9SQnIgKvBRbQ7lhbpnd4lqM3w==", - "requires": { - "@vue/compiler-dom": "3.2.19", - "@vue/shared": "3.2.19" - }, - "dependencies": { - "@vue/compiler-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", - "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz", - "integrity": "sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==", - "requires": { - "@vue/compiler-core": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - } - } - }, - "@vue/devtools-api": { - "version": "6.0.0-beta.18", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.0.0-beta.18.tgz", - "integrity": "sha512-56vRhO7nXWWFYTx520BQSDlQH5VYpwy62hFDEqi2yHHEBpEqseOP5WYQusq7BEW3DXSY9E9cfPVR5CFtJbKuMg==" - }, - "@vue/reactivity": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.4.tgz", - "integrity": "sha512-ljWTR0hr8Tn09hM2tlmWxZzCBPlgGLnq/k8K8X6EcJhtV+C8OzFySnbWqMWataojbrQOocThwsC8awKthSl2uQ==", - "requires": { - "@vue/shared": "3.2.4" - } - }, - "@vue/ref-transform": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.19.tgz", - "integrity": "sha512-03wwUnoIAeKti5IGGx6Vk/HEBJ+zUcm5wrUM3+PQsGf7IYnXTbeIfHHpx4HeSeWhnLAjqZjADQwW8uA4rBmVbg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.19", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - }, - "dependencies": { - "@vue/compiler-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", - "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - } - } - }, - "@vue/runtime-core": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.4.tgz", - "integrity": "sha512-W6PtEOs8P8jKYPo3JwaMAozZQivxInUleGfNwI2pK1t8ZLZIxn4kAf7p4VF4jJdQB8SZBzpfWdLUc06j7IOmpQ==", - "requires": { - "@vue/reactivity": "3.2.4", - "@vue/shared": "3.2.4" - } - }, - "@vue/runtime-dom": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.4.tgz", - "integrity": "sha512-HcVtLyn2SGwsf6BFPwkvDPDOhOqkOKcfHDpBp5R1coX+qMsOFrY8lJnGXIY+JnxqFjND00E9+u+lq5cs/W7ooA==", - "requires": { - "@vue/runtime-core": "3.2.4", - "@vue/shared": "3.2.4", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.19.tgz", - "integrity": "sha512-A9FNT7fgQJXItwdzWREntAgWKVtKYuXHBKGev/H4+ByTu8vB7gQXGcim01QxaJshdNg4dYuH2tEBZXCNCNx+/w==", - "requires": { - "@vue/compiler-ssr": "3.2.19", - "@vue/shared": "3.2.19" - }, - "dependencies": { - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - } - } - }, - "@vue/shared": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.4.tgz", - "integrity": "sha512-j2j1MRmjalVKr3YBTxl/BClSIc8UQ8NnPpLYclxerK65JIowI4O7n8O8lElveEtEoHxy1d7BelPUDI0Q4bumqg==" - }, - "@vueuse/core": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-6.0.0.tgz", - "integrity": "sha512-PuBfNo/Zv+NkLcZaYWBA1WjqxQhTDC0DMQpoAIJdo/GFul/1SpBbONhUho2zqtOmq8vyGuK200wNFvyA4YUAMg==", - "requires": { - "@vueuse/shared": "6.0.0", - "vue-demi": "*" - } - }, - "@vueuse/shared": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-6.0.0.tgz", - "integrity": "sha512-PLjjqL8bxI5q86qk/ifXy572nfQE3rJc1RMem+dKcGayaagMnC4kXHEt64V98DVielSwr2FuYaeFodi4KJrvdg==", - "requires": { - "vue-demi": "*" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", - "dev": true, - "requires": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" - } - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "body-scroll-lock": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-3.1.5.tgz", - "integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001287", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001287.tgz", - "integrity": "sha512-4udbs9bc0hfNrcje++AxBuc6PfLNHwh3PO9kbwnfCQWyqtlzg3py0YgFu8jyRTTo85VAz4U+VLxSlID09vNtWA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chart.js": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", - "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", - "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", - "requires": { - "chartjs-color-string": "^0.6.0", - "color-convert": "^1.9.3" - } - }, - "chartjs-color-string": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", - "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", - "requires": { - "color-name": "^1.0.0" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", - "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - }, - "dependencies": { - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "core-js": { - "version": "3.18.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz", - "integrity": "sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "2.6.18", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", - "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==" - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "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==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.23", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.23.tgz", - "integrity": "sha512-q3tB59Api3+DMbLnDPkW/UBHBO7KTGcF+rDCeb0GAGyqFj562s6y+c/2tDKTS/y5lbC+JOvT4MSUALJLPqlcSA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - } - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", - "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", - "dev": true - }, - "eslint-plugin-vue": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.16.0.tgz", - "integrity": "sha512-0E2dVvVC7I2Xm1HXyx+ZwPj9CNX4NJjs4K4r+GVsHWyt5Pew3JLD4fI7A91b2jeL0TXE7LlszrwLSTJU9eqehw==", - "dev": true, - "requires": { - "eslint-utils": "^2.1.0", - "natural-compare": "^1.4.0", - "semver": "^6.3.0", - "vue-eslint-parser": "^7.10.0" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatpickr": { - "version": "4.6.9", - "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.9.tgz", - "integrity": "sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==" - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", - "dev": true - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "guid": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/guid/-/guid-0.0.12.tgz", - "integrity": "sha1-kTfFKxhffeEkkLm+vMFmC5Al/gw=" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "laravel-vite": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/laravel-vite/-/laravel-vite-0.0.7.tgz", - "integrity": "sha512-ko4Ux1bBXBnGoIFAvhmXuTwZ39RIIzdX2u7cXorfFlNLmSLvB0B5w0zZuykZmWdIK4GrGohLmkAtEYS/5pR08Q==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "deepmerge": "^4.2.2", - "dotenv": "^8.2.0", - "execa": "^5.0.0" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", - "dev": true - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.topath": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", - "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "maska": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/maska/-/maska-1.4.6.tgz", - "integrity": "sha512-dEZcoGp5Wufm2PZ4qZD81WKNaWO6XBIiHLazt5xShl4lydlH/5ZoLGEyJfzBaREXbAnsE5THShLyJKIaIeIuvA==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mini-svg-data-uri": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz", - "integrity": "sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "modern-normalize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", - "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", - "dev": true - }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dev": true, - "requires": { - "lodash": "^4.17.21" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "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.3" - } - }, - "orderedmap": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-1.1.1.tgz", - "integrity": "sha512-3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "postcss-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", - "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1", - "postcss": "^8.1.6" - } - }, - "postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dev": true, - "requires": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prosemirror-commands": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.1.10.tgz", - "integrity": "sha512-IWyBBXNAd44RM6NnBPljwq+/CM2oYCQJkF+YhKEAZNwzW0uFdGf4qComhjbKZzqFdu6Iub2ZhNsXgwPibA0lCQ==", - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-dropcursor": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.5.tgz", - "integrity": "sha512-tNUwcF2lPAkwKBZPZRtbxpwljnODRNZ3eiYloN1DSUqDjMT1nBZm0nejaEMS1TvNQ+3amibUSAiV4hX+jpASFA==", - "requires": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0", - "prosemirror-view": "^1.1.0" - } - }, - "prosemirror-gapcursor": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.2.0.tgz", - "integrity": "sha512-yCLy5+0rVqLir/KcHFathQj4Rf8aRHi80FmEfKtM0JmyzvwdomslLzDZ/pX4oFhFKDgjl/WBBBFNqDyNifWg7g==", - "requires": { - "prosemirror-keymap": "^1.0.0", - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-view": "^1.0.0" - } - }, - "prosemirror-history": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.2.0.tgz", - "integrity": "sha512-B9v9xtf4fYbKxQwIr+3wtTDNLDZcmMMmGiI3TAPShnUzvo+Rmv1GiUrsQChY1meetHl7rhML2cppF3FTs7f7UQ==", - "requires": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "rope-sequence": "^1.3.0" - } - }, - "prosemirror-inputrules": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz", - "integrity": "sha512-ZaHCLyBtvbyIHv0f5p6boQTIJjlD6o2NPZiEaZWT2DA+j591zS29QQEMT4lBqwcLW3qRSf7ZvoKNbf05YrsStw==", - "requires": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-keymap": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz", - "integrity": "sha512-Al8cVUOnDFL4gcI5IDlG6xbZ0aOD/i3B17VT+1JbHWDguCgt/lBHVTHUBcKvvbSg6+q/W4Nj1Fu6bwZSca3xjg==", - "requires": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" - } - }, - "prosemirror-model": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.14.3.tgz", - "integrity": "sha512-yzZlBaSxfUPIIP6U5Edh5zKxJPZ5f7bwZRhiCuH3UYkWhj+P3d8swHsbuAMOu/iDatDc5J/Qs5Mb3++mZf+CvQ==", - "requires": { - "orderedmap": "^1.1.0" - } - }, - "prosemirror-schema-list": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.1.6.tgz", - "integrity": "sha512-aFGEdaCWmJzouZ8DwedmvSsL50JpRkqhQ6tcpThwJONVVmCgI36LJHtoQ4VGZbusMavaBhXXr33zyD2IVsTlkw==", - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-state": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.3.4.tgz", - "integrity": "sha512-Xkkrpd1y/TQ6HKzN3agsQIGRcLckUMA9u3j207L04mt8ToRgpGeyhbVv0HI7omDORIBHjR29b7AwlATFFf2GLA==", - "requires": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "prosemirror-transform": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.3.3.tgz", - "integrity": "sha512-9NLVXy1Sfa2G6qPqhWMkEvwQQMTw7OyTqOZbJaGQWsCeH3hH5Cw+c5eNaLM1Uu75EyKLsEZhJ93XpHJBa6RX8A==", - "requires": { - "prosemirror-model": "^1.0.0" - } - }, - "prosemirror-view": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.20.1.tgz", - "integrity": "sha512-djWORhy3a706mUH4A2dgEEV0IPZqQd1tFyz/ZVHJNoqhSgq82FwG6dq7uqHeUB2KdVSNfI2yc3rwfqlC/ll2pA==", - "requires": { - "prosemirror-model": "^1.14.3", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "purgecss": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", - "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", - "dev": true, - "requires": { - "commander": "^6.0.0", - "glob": "^7.0.0", - "postcss": "^8.2.1", - "postcss-selector-parser": "^6.0.2" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", - "dev": true, - "requires": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rope-sequence": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.2.tgz", - "integrity": "sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==" - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "sass": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.38.0.tgz", - "integrity": "sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - } - } - }, - "sortablejs": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz", - "integrity": "sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.2.tgz", - "integrity": "sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tailwind-scrollbar": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-1.3.1.tgz", - "integrity": "sha512-FeYuLxLtCRMO4PmjPJCzm5wQouFro2BInZXKPxqg54DR/55NAHoS8uNYWMiRG5l6qsLkWBfVEM34gq2XAQUwVg==", - "dev": true, - "requires": { - "tailwindcss": ">1.9.6" - }, - "dependencies": { - "color": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/color/-/color-4.0.1.tgz", - "integrity": "sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA==", - "dev": true, - "requires": { - "color-convert": "^2.0.1", - "color-string": "^1.6.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "tailwindcss": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.16.tgz", - "integrity": "sha512-EireCtpQyyJ4Xz8NYzHafBoy4baCOO96flM0+HgtsFcIQ9KFy/YBK3GEtlnD+rXen0e4xm8t3WiUcKBJmN6yjg==", - "dev": true, - "requires": { - "arg": "^5.0.1", - "bytes": "^3.0.0", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "color": "^4.0.1", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.7", - "fs-extra": "^10.0.0", - "glob-parent": "^6.0.1", - "html-tags": "^3.1.0", - "is-color-stop": "^1.1.0", - "is-glob": "^4.0.1", - "lodash": "^4.17.21", - "lodash.topath": "^4.5.2", - "modern-normalize": "^1.1.0", - "node-emoji": "^1.11.0", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss-js": "^3.0.3", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.6", - "postcss-value-parser": "^4.1.0", - "pretty-hrtime": "^1.0.3", - "purgecss": "^4.0.3", - "quick-lru": "^5.1.1", - "reduce-css-calc": "^2.1.8", - "resolve": "^1.20.0", - "tmp": "^0.2.1" - } - } - } - }, - "tailwindcss": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.6.tgz", - "integrity": "sha512-+CA2f09rbHFDsdQ1iDvsOGbF1tZFmyPoRhUeaF9/5FRT5GYObtp+UjTSCdmeDcu6T90bx4WAaOkddYFPBkjbAA==", - "dev": true, - "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.2", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss-js": "^3.0.3", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.7", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.20.0", - "tmp": "^0.2.1" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "postcss-selector-parser": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", - "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, - "tippy.js": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.2.tgz", - "integrity": "sha512-35XVQI7Zl/jHZ51+8eHu/vVRXBjWYGobPm5G9FxOchj4r5dWhghKGS0nm0ARUKZTF96V7pPn7EbXS191NTwldw==", - "requires": { - "@popperjs/core": "^2.9.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v-money3": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/v-money3/-/v-money3-3.16.1.tgz", - "integrity": "sha512-U0GjmdybvEwfxCpZiTUbKugSglJbX6wxlyMeg0YJdLTAKlnjMRDph3hpNJlTlg5Gs8MQRpDVdaLysBjV749HLg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "vue": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.4.tgz", - "integrity": "sha512-rNCFmoewm8IwmTK0nj3ysKq53iRpNEFKoBJ4inar6tIh7Oj7juubS39RI8UI+VE7x+Cs2z6PBsadtZu7z2qppg==", - "requires": { - "@vue/compiler-dom": "3.2.4", - "@vue/runtime-dom": "3.2.4", - "@vue/shared": "3.2.4" - } - }, - "vue-demi": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.11.4.tgz", - "integrity": "sha512-/3xFwzSykLW2HiiLie43a+FFgNOcokbBJ+fzvFXd0r2T8MYohqvphUyDQ8lbAwzQ3Dlcrb1c9ykifGkhSIAk6A==" - }, - "vue-eslint-parser": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", - "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^6.3.0" - }, - "dependencies": { - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - } - } - }, - "vue-flatpickr-component": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/vue-flatpickr-component/-/vue-flatpickr-component-9.0.4.tgz", - "integrity": "sha512-E8XfzLhrPsQBtZluWYEn3m21VHn7PArYnel3QPYL3auBrVMc07WaK6b20e04OK8LUCq9V+OKNZe4MoI0znY/Hw==", - "requires": { - "flatpickr": "^4.6.9" - } - }, - "vue-i18n": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.1.7.tgz", - "integrity": "sha512-ujuuDanoHqtEd4GejWrbG/fXE9nrP51ElsEGxp0WBHfv+/ki0/wyUqkO+4fLikki2obGtXdviTPH0VNpas5K6g==", - "requires": { - "@intlify/core-base": "9.1.7", - "@intlify/shared": "9.1.7", - "@intlify/vue-devtools": "9.1.7", - "@vue/devtools-api": "^6.0.0-beta.7" - } - }, - "vue-router": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.11.tgz", - "integrity": "sha512-sha6I8fx9HWtvTrFZfxZkiQQBpqSeT+UCwauYjkdOQYRvwsGwimlQQE2ayqUwuuXGzquFpCPoXzYKWlzL4OuXg==", - "requires": { - "@vue/devtools-api": "^6.0.0-beta.14" - } - }, - "vue-types": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-4.1.0.tgz", - "integrity": "sha512-oPAeKKx5vY5Q8c7lMQPQyrBIbmWQGael5XEHqO1f+Y3V/RUZNuISz7KxI4woGjh79Vy/gDDaPX9j9zKYpaaA2g==", - "requires": { - "is-plain-object": "5.0.0" - } - }, - "vue3-colorpicker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vue3-colorpicker/-/vue3-colorpicker-1.0.8.tgz", - "integrity": "sha512-QwAk8Ttu4aoZdIuBETB5Mn6ZE8/95cf7HeLjnEVF83ABqUYTbH7sZQww/AoNWvJhq05txFqiuFGXaS47aPpZdQ==", - "requires": { - "@aesoper/normal-utils": "^0.1.5", - "@popperjs/core": "^2.10.1", - "@vueuse/core": "^6.5.3", - "lodash-es": "^4.17.21", - "tinycolor2": "^1.4.2", - "vue": "^3.2.6", - "vue3-normal-directive": "^0.1.4", - "vue3-normal-library": "^0.1.6", - "vue3-storage": "^0.1.11" - }, - "dependencies": { - "@popperjs/core": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", - "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==" - }, - "@vue/compiler-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", - "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz", - "integrity": "sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==", - "requires": { - "@vue/compiler-core": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz", - "integrity": "sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.19", - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-ssr": "3.2.19", - "@vue/ref-transform": "3.2.19", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/reactivity": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", - "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", - "requires": { - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", - "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", - "requires": { - "@vue/reactivity": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", - "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", - "requires": { - "@vue/runtime-core": "3.2.19", - "@vue/shared": "3.2.19", - "csstype": "^2.6.8" - } - }, - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - }, - "@vueuse/core": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-6.5.3.tgz", - "integrity": "sha512-o3CTu4nEqs371sDY5qLBX0r4QOm6GVpm3ApQc2Y+p8OMI2rRGartQo8xRykpUfsyq602A+SVtm/wxIWBkD/KCQ==", - "requires": { - "@vueuse/shared": "6.5.3", - "vue-demi": "*" - } - }, - "@vueuse/shared": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-6.5.3.tgz", - "integrity": "sha512-ChOKu3mECyZeqGJ/gHVm0CaHoZK5/TwNZr1ZM/aqH+RaRNQvC1qkLf1/8PBugzN3yRgC3BtZ/M1kLpGe/BFylw==", - "requires": { - "vue-demi": "*" - } - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "vue": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.19.tgz", - "integrity": "sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA==", - "requires": { - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-sfc": "3.2.19", - "@vue/runtime-dom": "3.2.19", - "@vue/server-renderer": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "vue3-storage": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/vue3-storage/-/vue3-storage-0.1.11.tgz", - "integrity": "sha512-4pLQUMeGFduP2IaFage8Y/9AtUljKkm3z9N4ko30kTcKDwyr7JXOAsNFjYqw58SWNNLQdXqaGGAxZFVnk/JfUg==", - "requires": { - "core-js": "^3.6.5", - "cross-env": "^7.0.3", - "vue": "^3.0.0", - "vue-class-component": "^8.0.0-0", - "vue-router": "^4.0.0-0" - }, - "dependencies": { - "vue-class-component": { - "version": "8.0.0-rc.1", - "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-8.0.0-rc.1.tgz", - "integrity": "sha512-w1nMzsT/UdbDAXKqhwTmSoyuJzUXKrxLE77PCFVuC6syr8acdFDAq116xgvZh9UCuV0h+rlCtxXolr3Hi3HyPQ==" - } - } - } - } - }, - "vue3-normal-directive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/vue3-normal-directive/-/vue3-normal-directive-0.1.4.tgz", - "integrity": "sha512-aO1xGJqdgb0a6LkMn1Q5GAkjISL6fCdhedMegFBLNKVlMDEi3YY+Vx9SaNEuLmQHCuQUY91m0TS17S/WSrn90g==", - "requires": { - "body-scroll-lock": "^3.1.5", - "clipboard": "^2.0.6", - "lodash-es": "^4.17.21", - "vue": "^3.2.6" - }, - "dependencies": { - "@vue/compiler-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", - "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz", - "integrity": "sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==", - "requires": { - "@vue/compiler-core": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz", - "integrity": "sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.19", - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-ssr": "3.2.19", - "@vue/ref-transform": "3.2.19", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/reactivity": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", - "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", - "requires": { - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", - "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", - "requires": { - "@vue/reactivity": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", - "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", - "requires": { - "@vue/runtime-core": "3.2.19", - "@vue/shared": "3.2.19", - "csstype": "^2.6.8" - } - }, - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - }, - "vue": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.19.tgz", - "integrity": "sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA==", - "requires": { - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-sfc": "3.2.19", - "@vue/runtime-dom": "3.2.19", - "@vue/server-renderer": "3.2.19", - "@vue/shared": "3.2.19" - } - } - } - }, - "vue3-normal-library": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/vue3-normal-library/-/vue3-normal-library-0.1.6.tgz", - "integrity": "sha512-TSqCeD092ETnjqamNKtXencLnG4a+NVWFZgalmyPtFH1FHvpxLP7eptT8krOL2sZVspficic8DghfDakw3tKRQ==", - "requires": { - "lodash-es": "^4.17.21", - "raf": "^3.4.1", - "vue": "^3.2.6", - "vue-types": "^4.1.0" - }, - "dependencies": { - "@vue/compiler-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.19.tgz", - "integrity": "sha512-8dOPX0YOtaXol0Zf2cfLQ4NU/yHYl2H7DCKsLEZ7gdvPK6ZSEwGLJ7IdghhY2YEshEpC5RB9QKdC5I07z8Dtjg==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.19.tgz", - "integrity": "sha512-WzQoE8rfkFjPtIioc7SSgTsnz9g2oG61DU8KHnzPrRS7fW/lji6H2uCYJfp4Z6kZE8GjnHc1Ljwl3/gxDes0cw==", - "requires": { - "@vue/compiler-core": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.19.tgz", - "integrity": "sha512-pLlbgkO1UHTO02MSpa/sFOXUwIDxSMiKZ1ozE5n71CY4DM+YmI+G3gT/ZHZ46WBId7f3VTF/D8pGwMygcQbrQA==", - "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.19", - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-ssr": "3.2.19", - "@vue/ref-transform": "3.2.19", - "@vue/shared": "3.2.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/reactivity": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.19.tgz", - "integrity": "sha512-FtachoYs2SnyrWup5UikP54xDX6ZJ1s5VgHcJp4rkGoutU3Ry61jhs+nCX7J64zjX992Mh9gGUC0LqTs8q9vCA==", - "requires": { - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-core": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.19.tgz", - "integrity": "sha512-qArZSWKxWsgKfxk9BelZ32nY0MZ31CAW2kUUyVJyxh4cTfHaXGbjiQB5JgsvKc49ROMNffv9t3/qjasQqAH+RQ==", - "requires": { - "@vue/reactivity": "3.2.19", - "@vue/shared": "3.2.19" - } - }, - "@vue/runtime-dom": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.19.tgz", - "integrity": "sha512-hIRboxXwafeHhbZEkZYNV0MiJXPNf4fP0X6hM2TJb0vssz8BKhD9cF92BkRgZztTQevecbhk0gu4uAPJ3dxL9A==", - "requires": { - "@vue/runtime-core": "3.2.19", - "@vue/shared": "3.2.19", - "csstype": "^2.6.8" - } - }, - "@vue/shared": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.19.tgz", - "integrity": "sha512-Knqhx7WieLdVgwCAZgTVrDCXZ50uItuecLh9JdLC8O+a5ayaSyIQYveUK3hCRNC7ws5zalHmZwfdLMGaS8r4Ew==" - }, - "vue": { - "version": "3.2.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.19.tgz", - "integrity": "sha512-6KAMdIfAtlK+qohTIUE4urwAv4A3YRuo8uAbByApUmiB0CziGAAPs6qVugN6oHPia8YIafHB/37K0O6KZ7sGmA==", - "requires": { - "@vue/compiler-dom": "3.2.19", - "@vue/compiler-sfc": "3.2.19", - "@vue/runtime-dom": "3.2.19", - "@vue/server-renderer": "3.2.19", - "@vue/shared": "3.2.19" - } - } - } - }, - "vuedraggable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-4.1.0.tgz", - "integrity": "sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==", - "requires": { - "sortablejs": "1.14.0" - } - }, - "w3c-keyname": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.4.tgz", - "integrity": "sha512-tOhfEwEzFLJzf6d1ZPkYfGj+FWhIpBux9ppoP3rlclw3Z0BZv3N7b7030Z1kYth+6rDuAsXUFr+d0VE6Ed1ikw==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } - } -} diff --git a/package.json b/package.json index c8da7a6dc..d56e22e9d 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build", @@ -7,54 +8,55 @@ "test": "eslint ./resources/scripts --ext .js,.vue" }, "devDependencies": { - "@rvxlab/tailwind-plugin-ios-full-height": "^1.0.0", - "@tailwindcss/aspect-ratio": "^0.4.0", - "@tailwindcss/forms": "^0.4.0", - "@tailwindcss/typography": "^0.5.0", - "@vitejs/plugin-vue": "^1.10.0", - "@vue/compiler-sfc": "^3.2.22", - "autoprefixer": "^10.4.0", - "cross-env": "^5.1", - "eslint": "^7.27.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-vue": "^7.0.0-beta.4", - "laravel-vite": "^0.0.7", - "postcss": "^8.4.5", - "prettier": "^2.3.0", - "sass": "^1.32.12", - "tailwind-scrollbar": "^1.3.1", - "tailwindcss": "^3.0.6", - "vite": "^2.6.1" + "@rvxlab/tailwind-plugin-ios-full-height": "^1.1.0", + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/typography": "^0.5.10", + "@vitejs/plugin-vue": "^5.0.3", + "@vue/compiler-sfc": "^3.4.15", + "autoprefixer": "^10.4.17", + "cross-env": "^7.0.3", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-vue": "^9.20.1", + "postcss": "^8.4.33", + "prettier": "^3.2.4", + "sass": "^1.70.0", + "tailwind-scrollbar": "^3.0.5", + "tailwindcss": "^3.4.1" }, "dependencies": { - "@headlessui/vue": "^1.4.0", - "@heroicons/vue": "^1.0.1", - "@popperjs/core": "^2.9.2", - "@stripe/stripe-js": "^1.21.2", - "@tailwindcss/line-clamp": "^0.3.0", - "@tiptap/core": "^2.0.0-beta.85", - "@tiptap/extension-text-align": "^2.0.0-beta.29", - "@tiptap/starter-kit": "^2.0.0-beta.81", - "@tiptap/vue-3": "^2.0.0-beta.38", - "@vuelidate/components": "^1.1.12", - "@vuelidate/core": "^2.0.0-alpha.32", - "@vuelidate/validators": "^2.0.0-alpha.25", - "@vueuse/core": "^6.0.0", - "axios": "^0.19", - "chart.js": "^2.7.3", + "@headlessui/vue": "^1.7.17", + "@heroicons/vue": "^1.0.6", + "@popperjs/core": "^2.11.8", + "@stripe/stripe-js": "^2.4.0", + "@tiptap/core": "^2.1.16", + "@tiptap/extension-text-align": "^2.1.16", + "@tiptap/starter-kit": "^2.1.16", + "@tiptap/vue-3": "^2.1.16", + "@tiptap/pm": "^2.0.0", + "@types/node": "^20.11.9", + "@vuelidate/components": "^1.2.6", + "@vuelidate/core": "^2.0.3", + "@vuelidate/validators": "^2.0.4", + "@vueuse/core": "^10.7.2", + "axios": "^0.27.2", + "chart.js": "^2.9.4", "guid": "0.0.12", - "lodash": "^4.17.13", - "maska": "^1.4.6", - "mini-svg-data-uri": "^1.3.3", - "moment": "^2.29.1", - "pinia": "^2.0.4", - "v-money3": "^3.13.5", - "v-tooltip": "^4.0.0-alpha.1", - "vue": "^3.2.0-beta.5", - "vue-flatpickr-component": "^9.0.3", - "vue-i18n": "^9.1.7", - "vue-router": "^4.0.8", - "vue3-colorpicker": "^1.0.5", + "laravel-vite-plugin": "^1.0.0", + "lodash": "^4.17.21", + "maska": "^2.1.11", + "mini-svg-data-uri": "^1.4.4", + "moment": "^2.30.1", + "path": "^0.12.7", + "pinia": "^2.1.7", + "v-money3": "^3.24.1", + "v-tooltip": "^4.0.0-beta.17", + "vite": "^5.0.0", + "vue": "^3.4", + "vue-flatpickr-component": "^11.0.3", + "vue-i18n": "^9.9.0", + "vue-router": "^4.2.5", "vuedraggable": "^4.1.0" } } diff --git a/phpunit.xml b/phpunit.xml index 2ae23513f..ea3fbc782 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,30 +1,27 @@ - - - - ./tests/Unit - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - - + + + + ./tests/Unit + + + ./tests/Feature + + + + + + + + + + + + + + + + ./app + + diff --git a/postcss.config.js b/postcss.config.cjs similarity index 100% rename from postcss.config.js rename to postcss.config.cjs diff --git a/public/build/assets/404.e81599b7.js b/public/build/assets/404.e81599b7.js deleted file mode 100644 index a9832d53a..000000000 --- a/public/build/assets/404.e81599b7.js +++ /dev/null @@ -1 +0,0 @@ -import{G as u,aN as d,k as m,r as n,o as h,e as p,h as s,t as o,f as c,w as f,i as _,u as x}from"./vendor.d12b5734.js";const g={class:"w-full h-screen"},w={class:"flex items-center justify-center w-full h-full"},y={class:"flex flex-col items-center justify-center"},b={class:"text-primary-500",style:{"font-size":"10rem"}},v={class:"mb-10 text-3xl text-primary-500"},$={setup(k){const e=u();d();const l=m(()=>{if(e.path.indexOf("customer")>-1&&e.params.company)return`/${e.params.company}/customer/dashboard`;if(e.params.catchAll){let a=e.params.catchAll.indexOf("/");return a>-1?`/${e.params.catchAll.substring(a,0)}/customer/dashboard`:"/"}else return"/admin/dashboard"});return(t,a)=>{const r=n("BaseIcon"),i=n("router-link");return h(),p("div",g,[s("div",w,[s("div",y,[s("h1",b,o(t.$t("general.four_zero_four")),1),s("h5",v,o(t.$t("general.you_got_lost")),1),c(i,{class:"flex items-center w-32 h-12 px-3 py-1 text-base font-medium leading-none text-center text-white rounded whitespace-nowrap bg-primary-500 btn-lg hover:text-white",to:x(l)},{default:f(()=>[c(r,{name:"ArrowLeftIcon",class:"mr-2 text-white icon"}),_(" "+o(t.$t("general.go_home")),1)]),_:1},8,["to"])])])])}}};export{$ as default}; diff --git a/public/build/assets/AccountSetting.7f3b69b7.js b/public/build/assets/AccountSetting.7f3b69b7.js deleted file mode 100644 index 2ff3744ea..000000000 --- a/public/build/assets/AccountSetting.7f3b69b7.js +++ /dev/null @@ -1 +0,0 @@ -var L=Object.defineProperty,P=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,E=Object.prototype.propertyIsEnumerable;var U=(u,s,i)=>s in u?L(u,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):u[s]=i,S=(u,s)=>{for(var i in s||(s={}))z.call(s,i)&&U(u,i,s[i]);if(V)for(var i of V(s))E.call(s,i)&&U(u,i,s[i]);return u},I=(u,s)=>P(u,T(s));import{J,B as b,k as y,L as _,M as C,Q,N as H,P as K,a0 as O,T as W,r as m,o as M,e as X,f as r,w as d,u as e,x as Y,l as Z,m as x,j as ee,i as ae,t as se,U as te,h as ne}from"./vendor.d12b5734.js";import{e as oe,d as re,b as le}from"./main.465728e1.js";const ie=["onSubmit"],ue=ne("span",null,null,-1),ce={setup(u){const s=oe(),i=re(),F=le(),{t:v}=J();let p=b(!1),c=b(null),f=b([]);const $=b(!1);s.currentUser.avatar&&f.value.push({image:s.currentUser.avatar});const q=y(()=>({name:{required:_.withMessage(v("validation.required"),C)},email:{required:_.withMessage(v("validation.required"),C),email:_.withMessage(v("validation.email_incorrect"),Q)},password:{minLength:_.withMessage(v("validation.password_length",{count:8}),H(8))},confirm_password:{sameAsPassword:_.withMessage(v("validation.password_incorrect"),K(t.password))}})),t=O({name:s.currentUser.name,email:s.currentUser.email,language:s.currentUserSettings.language||F.selectedCompanySettings.language,password:"",confirm_password:""}),o=W(q,y(()=>t));function k(l,a){c.value=a}function N(){c.value=null,$.value=!0}async function A(){if(o.value.$touch(),o.value.$invalid)return!0;p.value=!0;let l={name:t.name,email:t.email};try{if(t.password!=null&&t.password!==void 0&&t.password!==""&&(l=I(S({},l),{password:t.password})),s.currentUserSettings.language!==t.language&&await s.updateUserSettings({settings:{language:t.language}}),(await s.updateCurrentUser(l)).data.data){if(p.value=!1,c.value||$.value){let w=new FormData;c.value&&w.append("admin_avatar",c.value),w.append("is_admin_avatar_removed",$.value),await s.uploadAvatar(w),c.value=null,$.value=!1}t.password="",t.confirm_password=""}}catch{return p.value=!1,!0}}return(l,a)=>{const w=m("BaseFileUploader"),g=m("BaseInputGroup"),B=m("BaseInput"),G=m("BaseMultiselect"),D=m("BaseInputGrid"),R=m("BaseIcon"),h=m("BaseButton"),j=m("BaseSettingCard");return M(),X("form",{class:"relative",onSubmit:te(A,["prevent"])},[r(j,{title:l.$t("settings.account_settings.account_settings"),description:l.$t("settings.account_settings.section_description")},{default:d(()=>[r(D,null,{default:d(()=>[r(g,{label:l.$tc("settings.account_settings.profile_picture")},{default:d(()=>[r(w,{modelValue:e(f),"onUpdate:modelValue":a[0]||(a[0]=n=>Y(f)?f.value=n:f=n),avatar:!0,accept:"image/*",onChange:k,onRemove:N},null,8,["modelValue"])]),_:1},8,["label"]),ue,r(g,{label:l.$tc("settings.account_settings.name"),error:e(o).name.$error&&e(o).name.$errors[0].$message,required:""},{default:d(()=>[r(B,{modelValue:e(t).name,"onUpdate:modelValue":a[1]||(a[1]=n=>e(t).name=n),invalid:e(o).name.$error,onInput:a[2]||(a[2]=n=>e(o).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.account_settings.email"),error:e(o).email.$error&&e(o).email.$errors[0].$message,required:""},{default:d(()=>[r(B,{modelValue:e(t).email,"onUpdate:modelValue":a[3]||(a[3]=n=>e(t).email=n),invalid:e(o).email.$error,onInput:a[4]||(a[4]=n=>e(o).email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),r(g,{error:e(o).password.$error&&e(o).password.$errors[0].$message,label:l.$tc("settings.account_settings.password")},{default:d(()=>[r(B,{modelValue:e(t).password,"onUpdate:modelValue":a[5]||(a[5]=n=>e(t).password=n),type:"password",onInput:a[6]||(a[6]=n=>e(o).password.$touch())},null,8,["modelValue"])]),_:1},8,["error","label"]),r(g,{label:l.$tc("settings.account_settings.confirm_password"),error:e(o).confirm_password.$error&&e(o).confirm_password.$errors[0].$message},{default:d(()=>[r(B,{modelValue:e(t).confirm_password,"onUpdate:modelValue":a[7]||(a[7]=n=>e(t).confirm_password=n),type:"password",onInput:a[8]||(a[8]=n=>e(o).confirm_password.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"]),r(g,{label:l.$tc("settings.language")},{default:d(()=>[r(G,{modelValue:e(t).language,"onUpdate:modelValue":a[9]||(a[9]=n=>e(t).language=n),options:e(i).config.languages,label:"name","value-prop":"code","track-by":"name","open-direction":"top"},null,8,["modelValue","options"])]),_:1},8,["label"])]),_:1}),r(h,{loading:e(p),disabled:e(p),class:"mt-6"},{left:d(n=>[e(p)?ee("",!0):(M(),Z(R,{key:0,name:"SaveIcon",class:x(n.class)},null,8,["class"]))]),default:d(()=>[ae(" "+se(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"])]),_:1},8,["title","description"])],40,ie)}}};export{ce as default}; diff --git a/public/build/assets/AddressInformation.7455dbc9.js b/public/build/assets/AddressInformation.7455dbc9.js deleted file mode 100644 index df97a575b..000000000 --- a/public/build/assets/AddressInformation.7455dbc9.js +++ /dev/null @@ -1 +0,0 @@ -import{G as C,J as z,B as I,r as m,o as b,e as y,f as o,w as r,h as d,t as p,u as e,m as h,i as F,j as v,l as S,U as j}from"./vendor.d12b5734.js";import{a as k,u as w}from"./global.dc565c4e.js";import"./auth.c88ceb4c.js";import"./main.465728e1.js";const D=["onSubmit"],G={class:"mb-6"},N={class:"font-bold text-left"},A={class:"mt-2 text-sm leading-snug text-left text-gray-500",style:{"max-width":"680px"}},T={class:"grid grid-cols-5 gap-4 mb-8"},E={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},J={class:"grid col-span-5 lg:col-span-4 gap-y-6 gap-x-4 md:grid-cols-6"},R={class:"md:col-span-3"},q={class:"flex items-center justify-start mb-6 md:justify-end md:mb-0"},H={class:"p-1"},K={class:"grid grid-cols-5 gap-4 mb-8"},L={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},O={key:0,class:"grid col-span-5 lg:col-span-4 gap-y-6 gap-x-4 md:grid-cols-6"},P={class:"md:col-span-3"},Q={class:"flex items-center justify-end"},se={setup(W){const s=k();C();const{tm:$,t:X}=z(),g=w();let u=I(!1);g.fetchCountries();function B(){u.value=!0;let a=s.userForm;s.updateCurrentUser({data:a,message:$("customers.address_updated_message")}).then(t=>{u.value=!1}).catch(t=>{u.value=!1})}return(a,t)=>{const i=m("BaseInput"),n=m("BaseInputGroup"),f=m("BaseMultiselect"),c=m("BaseTextarea"),U=m("BaseDivider"),_=m("BaseIcon"),V=m("BaseButton"),M=m("BaseCard");return b(),y("form",{class:"relative h-full mt-4",onSubmit:j(B,["prevent"])},[o(M,null,{default:r(()=>[d("div",G,[d("h6",N,p(a.$t("settings.menu_title.address_information")),1),d("p",A,p(a.$t("settings.address_information.section_description")),1)]),d("div",T,[d("h6",E,p(a.$t("customers.billing_address")),1),d("div",J,[o(n,{label:a.$t("customers.name"),class:"w-full md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.billing.name,"onUpdate:modelValue":t[0]||(t[0]=l=>e(s).userForm.billing.name=l),modelModifiers:{trim:!0},type:"text",class:"w-full",name:"address_name"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.country"),class:"md:col-span-3"},{default:r(()=>[o(f,{modelValue:e(s).userForm.billing.country_id,"onUpdate:modelValue":t[1]||(t[1]=l=>e(s).userForm.billing.country_id=l),"value-prop":"id",label:"name","track-by":"name","resolve-on-load":"",searchable:"",options:e(g).countries,placeholder:a.$t("general.select_country"),class:"w-full"},null,8,["modelValue","options","placeholder"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.state"),class:"md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.billing.state,"onUpdate:modelValue":t[2]||(t[2]=l=>e(s).userForm.billing.state=l),name:"billing.state",type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.city"),class:"md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.billing.city,"onUpdate:modelValue":t[3]||(t[3]=l=>e(s).userForm.billing.city=l),name:"billing.city",type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.address"),class:"md:col-span-3"},{default:r(()=>[o(c,{modelValue:e(s).userForm.billing.address_street_1,"onUpdate:modelValue":t[4]||(t[4]=l=>e(s).userForm.billing.address_street_1=l),modelModifiers:{trim:!0},placeholder:a.$t("general.street_1"),type:"text",name:"billing_street1","container-class":"mt-3"},null,8,["modelValue","placeholder"]),o(c,{modelValue:e(s).userForm.billing.address_street_2,"onUpdate:modelValue":t[5]||(t[5]=l=>e(s).userForm.billing.address_street_2=l),modelModifiers:{trim:!0},placeholder:a.$t("general.street_2"),type:"text",class:"mt-3",name:"billing_street2","container-class":"mt-3"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),d("div",R,[o(n,{label:a.$t("customers.phone"),class:"text-left"},{default:r(()=>[o(i,{modelValue:e(s).userForm.billing.phone,"onUpdate:modelValue":t[6]||(t[6]=l=>e(s).userForm.billing.phone=l),modelModifiers:{trim:!0},type:"text",name:"phone"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.zip_code"),class:"mt-2 text-left"},{default:r(()=>[o(i,{modelValue:e(s).userForm.billing.zip,"onUpdate:modelValue":t[7]||(t[7]=l=>e(s).userForm.billing.zip=l),modelModifiers:{trim:!0},type:"text",name:"zip"},null,8,["modelValue"])]),_:1},8,["label"])])])]),o(U,{class:"mb-5 md:mb-8"}),d("div",q,[d("div",H,[o(V,{ref:(l,x)=>{x.sameAddress=l},type:"button",onClick:t[8]||(t[8]=l=>e(s).copyAddress(!0))},{left:r(l=>[o(_,{name:"DocumentDuplicateIcon",class:h(l.class)},null,8,["class"])]),default:r(()=>[F(" "+p(a.$t("customers.copy_billing_address")),1)]),_:1},512)])]),d("div",K,[d("h6",L,p(a.$t("customers.shipping_address")),1),e(s).userForm.shipping?(b(),y("div",O,[o(n,{label:a.$t("customers.name"),class:"md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.shipping.name,"onUpdate:modelValue":t[9]||(t[9]=l=>e(s).userForm.shipping.name=l),modelModifiers:{trim:!0},type:"text",name:"address_name"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.country"),class:"md:col-span-3"},{default:r(()=>[o(f,{modelValue:e(s).userForm.shipping.country_id,"onUpdate:modelValue":t[10]||(t[10]=l=>e(s).userForm.shipping.country_id=l),"value-prop":"id",label:"name","track-by":"name","resolve-on-load":"",searchable:"",options:e(g).countries,placeholder:a.$t("general.select_country"),class:"w-full"},null,8,["modelValue","options","placeholder"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.state"),class:"md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.shipping.state,"onUpdate:modelValue":t[11]||(t[11]=l=>e(s).userForm.shipping.state=l),name:"shipping.state",type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.city"),class:"md:col-span-3"},{default:r(()=>[o(i,{modelValue:e(s).userForm.shipping.city,"onUpdate:modelValue":t[12]||(t[12]=l=>e(s).userForm.shipping.city=l),name:"shipping.city",type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.address"),class:"md:col-span-3"},{default:r(()=>[o(c,{modelValue:e(s).userForm.shipping.address_street_1,"onUpdate:modelValue":t[13]||(t[13]=l=>e(s).userForm.shipping.address_street_1=l),modelModifiers:{trim:!0},type:"text",placeholder:a.$t("general.street_1"),name:"shipping_street1"},null,8,["modelValue","placeholder"]),o(c,{modelValue:e(s).userForm.shipping.address_street_2,"onUpdate:modelValue":t[14]||(t[14]=l=>e(s).userForm.shipping.address_street_2=l),modelModifiers:{trim:!0},type:"text",placeholder:a.$t("general.street_2"),name:"shipping_street2",class:"mt-3"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),d("div",P,[o(n,{label:a.$t("customers.phone"),class:"text-left"},{default:r(()=>[o(i,{modelValue:e(s).userForm.shipping.phone,"onUpdate:modelValue":t[15]||(t[15]=l=>e(s).userForm.shipping.phone=l),modelModifiers:{trim:!0},type:"text",name:"phone"},null,8,["modelValue"])]),_:1},8,["label"]),o(n,{label:a.$t("customers.zip_code"),class:"mt-2 text-left"},{default:r(()=>[o(i,{modelValue:e(s).userForm.shipping.zip,"onUpdate:modelValue":t[16]||(t[16]=l=>e(s).userForm.shipping.zip=l),modelModifiers:{trim:!0},type:"text",name:"zip"},null,8,["modelValue"])]),_:1},8,["label"])])])):v("",!0)]),d("div",Q,[o(V,{loading:e(u),disabled:e(u)},{left:r(l=>[e(u)?v("",!0):(b(),S(_,{key:0,name:"SaveIcon",class:h(l.class)},null,8,["class"]))]),default:r(()=>[F(" "+p(a.$t("general.save")),1)]),_:1},8,["loading","disabled"])])]),_:1})],40,D)}}};export{se as default}; diff --git a/public/build/assets/AstronautIcon.82b952e2.js b/public/build/assets/AstronautIcon.82b952e2.js deleted file mode 100644 index 13d180777..000000000 --- a/public/build/assets/AstronautIcon.82b952e2.js +++ /dev/null @@ -1 +0,0 @@ -import{o,e as i,h as l,m as d}from"./vendor.d12b5734.js";const n={width:"125",height:"110",viewBox:"0 0 125 110",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r={"clip-path":"url(#clip0)"},C=l("defs",null,[l("clipPath",{id:"clip0"},[l("rect",{width:"124.808",height:"110",fill:"white"})])],-1),s={props:{primaryFillColor:{type:String,default:"fill-primary-500"},secondaryFillColor:{type:String,default:"fill-gray-600"}},setup(e){return(a,c)=>(o(),i("svg",n,[l("g",r,[l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M46.8031 84.4643C46.8031 88.8034 43.3104 92.3215 39.0026 92.3215C34.6948 92.3215 31.2021 88.8034 31.2021 84.4643C31.2021 80.1252 34.6948 76.6072 39.0026 76.6072C43.3104 76.6072 46.8031 80.1252 46.8031 84.4643Z",class:d(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M60.4536 110H64.3539V72.6785H60.4536V110Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M85.8055 76.6072H70.2045C69.1319 76.6072 68.2544 77.4911 68.2544 78.5715V82.5C68.2544 83.5804 69.1319 84.4643 70.2045 84.4643H85.8055C86.878 84.4643 87.7556 83.5804 87.7556 82.5V78.5715C87.7556 77.4911 86.878 76.6072 85.8055 76.6072ZM70.2045 82.5H85.8055V78.5715H70.2045V82.5Z",class:d(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M91.6556 1.96429C94.8811 1.96429 97.506 4.60821 97.506 7.85714V19.6429H83.8181L85.308 21.6071H99.4561V7.85714C99.4561 3.53571 95.9459 0 91.6556 0H33.152C28.8618 0 25.3516 3.53571 25.3516 7.85714V21.6071H39.3203L40.8745 19.6429H27.3017V7.85714C27.3017 4.60821 29.9265 1.96429 33.152 1.96429H91.6556Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M122.858 92.3213H117.007C115.935 92.3213 115.057 93.2052 115.057 94.2856V102.143C115.057 103.223 115.935 104.107 117.007 104.107H122.858C123.93 104.107 124.808 103.223 124.808 102.143V94.2856C124.808 93.2052 123.93 92.3213 122.858 92.3213ZM117.007 102.143H122.858V94.2856H117.007V102.143Z",class:d(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M103.356 43.2142V70.7142H21.4511V43.2142H26.1821V41.2498H19.501V72.6783H105.306V41.2498H98.3541L98.2839 43.2142H103.356Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M101.406 21.6071C104.632 21.6071 107.257 24.251 107.257 27.5V41.25H98.2257L98.0853 43.2142H109.207V27.5C109.207 23.1609 105.714 19.6428 101.406 19.6428H83.8182L85.0878 21.6071H101.406ZM40.8746 19.6428H23.4016C19.0937 19.6428 15.6011 23.1609 15.6011 27.5V43.2142H26.1961L26.3365 41.25H17.5512V27.5C17.5512 24.251 20.1761 21.6071 23.4016 21.6071H39.3204L40.8746 19.6428Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M62.4041 9.82153C45.1709 9.82153 31.2021 23.8917 31.2021 41.2501C31.2021 58.6085 45.1709 72.6787 62.4041 72.6787C79.6373 72.6787 93.606 58.6085 93.606 41.2501C93.606 23.8917 79.6373 9.82153 62.4041 9.82153ZM62.4041 11.7858C78.5335 11.7858 91.6559 25.0035 91.6559 41.2501C91.6559 57.4967 78.5335 70.7144 62.4041 70.7144C46.2746 70.7144 33.1523 57.4967 33.1523 41.2501C33.1523 25.0035 46.2746 11.7858 62.4041 11.7858Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M62.4041 19.6428C45.1709 19.6428 31.2021 23.8916 31.2021 41.25C31.2021 58.6084 45.1709 66.7857 62.4041 66.7857C79.6373 66.7857 93.606 58.6084 93.606 41.25C93.606 23.8916 79.6373 19.6428 62.4041 19.6428ZM62.4041 21.6071C82.6346 21.6071 91.6559 27.665 91.6559 41.25C91.6559 56.0096 80.7216 64.8214 62.4041 64.8214C44.0866 64.8214 33.1523 56.0096 33.1523 41.25C33.1523 27.665 42.1735 21.6071 62.4041 21.6071Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M101.406 70.7144H23.4014C10.478 70.7144 0 81.2685 0 94.2858V110H124.808V94.2858C124.808 81.2685 114.33 70.7144 101.406 70.7144ZM101.406 72.6786C113.234 72.6786 122.858 82.3724 122.858 94.2858V108.036H1.95012V94.2858C1.95012 82.3724 11.574 72.6786 23.4014 72.6786H101.406Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M33.152 33.3928H29.2518C27.0969 33.3928 25.3516 35.1509 25.3516 37.3214V45.1785C25.3516 47.3491 27.0969 49.1071 29.2518 49.1071H33.152V33.3928ZM31.2019 35.3571V47.1428H29.2518C28.1773 47.1428 27.3017 46.2609 27.3017 45.1785V37.3214C27.3017 36.2391 28.1773 35.3571 29.2518 35.3571H31.2019Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M95.556 33.3928H91.6558V49.1071H95.556C97.7109 49.1071 99.4562 47.3491 99.4562 45.1785V37.3214C99.4562 35.1509 97.7109 33.3928 95.556 33.3928ZM95.556 35.3571C96.6305 35.3571 97.5061 36.2391 97.5061 37.3214V45.1785C97.5061 46.2609 96.6305 47.1428 95.556 47.1428H93.6059V35.3571H95.556Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M94.581 15.7144C94.0447 15.7144 93.606 16.1563 93.606 16.6965V34.3751C93.606 34.9152 94.0447 35.3572 94.581 35.3572C95.1173 35.3572 95.5561 34.9152 95.5561 34.3751V16.6965C95.5561 16.1563 95.1173 15.7144 94.581 15.7144Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M38.0273 41.2499C37.4891 41.2499 37.0522 40.8099 37.0522 40.2678C37.0522 33.3142 44.1409 25.5356 53.6283 25.5356C54.1665 25.5356 54.6033 25.9756 54.6033 26.5178C54.6033 27.0599 54.1665 27.4999 53.6283 27.4999C45.2564 27.4999 39.0024 34.2414 39.0024 40.2678C39.0024 40.8099 38.5655 41.2499 38.0273 41.2499Z",class:d(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M97.5059 110H99.456V72.6785H97.5059V110Z",class:d(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M25.3516 110H27.3017V72.6785H25.3516V110Z",class:d(e.secondaryFillColor)},null,2)]),C]))}};export{s as _}; diff --git a/public/build/assets/BackupSetting.135768cd.js b/public/build/assets/BackupSetting.135768cd.js deleted file mode 100644 index e110dc2c0..000000000 --- a/public/build/assets/BackupSetting.135768cd.js +++ /dev/null @@ -1 +0,0 @@ -var te=Object.defineProperty,ae=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var oe=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var F=(u,t,l)=>t in u?te(u,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):u[t]=l,q=(u,t)=>{for(var l in t||(t={}))oe.call(t,l)&&F(u,l,t[l]);if(U)for(var l of U(t))ne.call(t,l)&&F(u,l,t[l]);return u},G=(u,t)=>ae(u,se(t));import{a as x,d as le,B as w,a0 as E,J as O,k as D,L as R,M as A,T as ce,r as d,o as L,l as H,w as i,h as $,i as S,t as C,u as o,f as n,m as J,j as ie,U as re,e as de,F as ue}from"./vendor.d12b5734.js";import{h as P,u as X,c as K,j as pe}from"./main.465728e1.js";import{u as Q}from"./disk.0ffde448.js";const W=(u=!1)=>{const t=u?window.pinia.defineStore:le,{global:l}=window.i18n;return t({id:"backup",state:()=>({backups:[],currentBackupData:{option:"full",selected_disk:null}}),actions:{fetchBackups(b){return new Promise((c,s)=>{x.get("/api/v1/backups",{params:b}).then(e=>{this.backups=e.data.data,c(e)}).catch(e=>{P(e),s(e)})})},createBackup(b){return new Promise((c,s)=>{x.post("/api/v1/backups",b).then(e=>{X().showNotification({type:"success",message:l.t("settings.backup.created_message")}),c(e)}).catch(e=>{P(e),s(e)})})},removeBackup(b){return new Promise((c,s)=>{x.delete(`/api/v1/backups/${b.disk}`,{params:b}).then(e=>{X().showNotification({type:"success",message:l.t("settings.backup.deleted_message")}),c(e)}).catch(e=>{P(e),s(e)})})}}})()},ke={class:"flex justify-between w-full"},me=["onSubmit"],fe={class:"p-6"},_e={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid"},be={setup(u){w(null),w(!1);let t=w(!1),l=w(!1);const b=E(["full","only-db","only-files"]),c=W(),s=K(),e=Q(),{t:f}=O(),_=D(()=>s.active&&s.componentName==="BackupModal"),M=D(()=>e.disks.map(r=>G(q({},r),{name:r.name+" \u2014 ["+r.driver+"]"}))),V=D(()=>({currentBackupData:{option:{required:R.withMessage(f("validation.required"),A)},selected_disk:{required:R.withMessage(f("validation.required"),A)}}})),g=ce(V,D(()=>c));async function N(){if(g.value.currentBackupData.$touch(),g.value.currentBackupData.$invalid)return!0;let r={option:c.currentBackupData.option,file_disk_id:c.currentBackupData.selected_disk.id};try{t.value=!0,(await c.createBackup(r)).data&&(t.value=!1,s.refreshData&&s.refreshData(),s.closeModal())}catch{t.value=!1}}async function j(){l.value=!0;let r=await e.fetchDisks({limit:"all"});c.currentBackupData.selected_disk=r.data.data[0],l.value=!1}function I(){s.closeModal(),setTimeout(()=>{g.value.$reset(),c.$reset()})}return(r,h)=>{const a=d("BaseIcon"),p=d("BaseMultiselect"),m=d("BaseInputGroup"),k=d("BaseInputGrid"),y=d("BaseButton"),T=d("BaseModal");return L(),H(T,{show:o(_),onClose:I,onOpen:j},{header:i(()=>[$("div",ke,[S(C(o(s).title)+" ",1),n(a,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:I})])]),default:i(()=>[$("form",{onSubmit:re(N,["prevent"])},[$("div",fe,[n(k,{layout:"one-column"},{default:i(()=>[n(m,{label:r.$t("settings.backup.select_backup_type"),error:o(g).currentBackupData.option.$error&&o(g).currentBackupData.option.$errors[0].$message,horizontal:"",required:"",class:"py-2"},{default:i(()=>[n(p,{modelValue:o(c).currentBackupData.option,"onUpdate:modelValue":h[0]||(h[0]=v=>o(c).currentBackupData.option=v),options:o(b),"can-deselect":!1,placeholder:r.$t("settings.backup.select_backup_type"),searchable:""},null,8,["modelValue","options","placeholder"])]),_:1},8,["label","error"]),n(m,{label:r.$t("settings.disk.select_disk"),error:o(g).currentBackupData.selected_disk.$error&&o(g).currentBackupData.selected_disk.$errors[0].$message,horizontal:"",required:"",class:"py-2"},{default:i(()=>[n(p,{modelValue:o(c).currentBackupData.selected_disk,"onUpdate:modelValue":h[1]||(h[1]=v=>o(c).currentBackupData.selected_disk=v),"content-loading":o(l),options:o(M),searchable:!0,"allow-empty":!1,label:"name","value-prop":"id",placeholder:r.$t("settings.disk.select_disk"),"track-by":"name",object:""},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","error"])]),_:1})]),$("div",_e,[n(y,{class:"mr-3",variant:"primary-outline",type:"button",onClick:I},{default:i(()=>[S(C(r.$t("general.cancel")),1)]),_:1}),n(y,{loading:o(t),disabled:o(t),variant:"primary",type:"submit"},{left:i(v=>[o(t)?ie("",!0):(L(),H(a,{key:0,name:"SaveIcon",class:J(v.class)},null,8,["class"]))]),default:i(()=>[S(" "+C(r.$t("general.create")),1)]),_:1},8,["loading","disabled"])])],40,me)]),_:1},8,["show"])}}},ge={class:"grid my-14 md:grid-cols-3"},Be={class:"inline-block"},De={setup(u){const t=pe(),l=W(),b=K(),c=Q(),{t:s}=O(),e=E({selected_disk:{driver:"local"}}),f=w("");let _=w(!0);const M=D(()=>[{key:"path",label:s("settings.backup.path"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"created_at",label:s("settings.backup.created_at"),tdClass:"font-medium text-gray-900"},{key:"size",label:s("settings.backup.size"),tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]),V=D(()=>c.disks.map(a=>G(q({},a),{name:a.name+" \u2014 ["+a.driver+"]"})));j();function g(a){t.openDialog({title:s("general.are_you_sure"),message:s("settings.backup.backup_confirm_delete"),yesLabel:s("general.ok"),noLabel:s("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async p=>{if(p){let m={disk:e.selected_disk.driver,file_disk_id:e.selected_disk.id,path:a.path},k=await l.removeBackup(m);if(k.data.success||k.data.backup)return f.value&&f.value.refresh(),!0}})}function N(){setTimeout(()=>{f.value.refresh()},100)}async function j(){_.value=!0;let a=await c.fetchDisks({limit:"all"});a.data.error,e.selected_disk=a.data.data.find(p=>p.set_as_default==0),_.value=!1}async function I({page:a,filter:p,sort:m}){let k={disk:e.selected_disk.driver,filed_disk_id:e.selected_disk.id};_.value=!0;let y=await l.fetchBackups(k);return _.value=!1,{data:y.data.backups,pagination:{totalPages:1,currentPage:1}}}async function r(){b.openModal({title:s("settings.backup.create_backup"),componentName:"BackupModal",refreshData:f.value&&f.value.refresh,size:"sm"})}async function h(a){_.value=!0,window.axios({method:"GET",url:"/api/v1/download-backup",responseType:"blob",params:{disk:e.selected_disk.driver,file_disk_id:e.selected_disk.id,path:a.path}}).then(p=>{const m=window.URL.createObjectURL(new Blob([p.data])),k=document.createElement("a");k.href=m,k.setAttribute("download",a.path.split("/")[1]),document.body.appendChild(k),k.click(),_.value=!1}).catch(p=>{_.value=!1})}return(a,p)=>{const m=d("BaseIcon"),k=d("BaseButton"),y=d("BaseMultiselect"),T=d("BaseInputGroup"),v=d("BaseDropdownItem"),Y=d("BaseDropdown"),Z=d("BaseTable"),ee=d("BaseSettingCard");return L(),de(ue,null,[n(be),n(ee,{title:a.$tc("settings.backup.title",1),description:a.$t("settings.backup.description")},{action:i(()=>[n(k,{variant:"primary-outline",onClick:r},{left:i(B=>[n(m,{class:J(B.class),name:"PlusIcon"},null,8,["class"])]),default:i(()=>[S(" "+C(a.$t("settings.backup.new_backup")),1)]),_:1})]),default:i(()=>[$("div",ge,[n(T,{label:a.$t("settings.disk.select_disk"),"content-loading":o(_)},{default:i(()=>[n(y,{modelValue:o(e).selected_disk,"onUpdate:modelValue":p[0]||(p[0]=B=>o(e).selected_disk=B),"content-loading":o(_),options:o(V),"track-by":"name",placeholder:a.$t("settings.disk.select_disk"),label:"name",searchable:!0,object:"",class:"w-full","value-prop":"id",onSelect:N},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","content-loading"])]),n(Z,{ref:(B,z)=>{z.table=B,f.value=B},class:"mt-10","show-filter":!1,data:I,columns:o(M)},{"cell-actions":i(({row:B})=>[n(Y,null,{activator:i(()=>[$("div",Be,[n(m,{name:"DotsHorizontalIcon",class:"text-gray-500"})])]),default:i(()=>[n(v,{onClick:z=>h(B.data)},{default:i(()=>[n(m,{name:"CloudDownloadIcon",class:"mr-3 text-gray-600"}),S(" "+C(a.$t("general.download")),1)]),_:2},1032,["onClick"]),n(v,{onClick:z=>g(B.data)},{default:i(()=>[n(m,{name:"TrashIcon",class:"mr-3 text-gray-600"}),S(" "+C(a.$t("general.delete")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:1},8,["columns"])]),_:1},8,["title","description"])],64)}}};export{De as default}; diff --git a/public/build/assets/BaseEditor.bacb9608.css b/public/build/assets/BaseEditor.bacb9608.css deleted file mode 100644 index 37f6af02e..000000000 --- a/public/build/assets/BaseEditor.bacb9608.css +++ /dev/null @@ -1 +0,0 @@ -.ProseMirror{min-height:200px;padding:8px 12px;outline:none;border-radius:.375rem;border-top-left-radius:0;border-top-right-radius:0;border-width:1px;border-color:transparent}.ProseMirror h1{font-size:2em;font-weight:700}.ProseMirror h2{font-size:1.5em;font-weight:700}.ProseMirror h3{font-size:1.17em;font-weight:700}.ProseMirror ul{padding:0 1rem;list-style:disc!important}.ProseMirror ol{padding:0 1rem;list-style:auto!important}.ProseMirror blockquote{padding-left:1rem;border-left:2px solid rgba(13,13,13,.1)}.ProseMirror code{background-color:#6161611a;color:#616161;border-radius:.4rem;font-size:.9rem;padding:.1rem .3rem}.ProseMirror pre{background:#0d0d0d;color:#fff;font-family:JetBrainsMono,monospace;padding:.75rem 1rem;border-radius:.5rem}.ProseMirror pre code{color:inherit;padding:0;background:none;font-size:.8rem}.ProseMirror:focus{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--color-primary-400),var(--tw-border-opacity));--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--color-primary-400), var(--tw-ring-opacity))} diff --git a/public/build/assets/BaseEditor.c76beb41.js b/public/build/assets/BaseEditor.c76beb41.js deleted file mode 100644 index 6991d43d0..000000000 --- a/public/build/assets/BaseEditor.c76beb41.js +++ /dev/null @@ -1,73 +0,0 @@ -var nc=Object.defineProperty,oc=Object.defineProperties;var ic=Object.getOwnPropertyDescriptors;var Mr=Object.getOwnPropertySymbols;var Ko=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable;var Uo=(e,t,r)=>t in e?nc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,S=(e,t)=>{for(var r in t||(t={}))Ko.call(t,r)&&Uo(e,r,t[r]);if(Mr)for(var r of Mr(t))$o.call(t,r)&&Uo(e,r,t[r]);return e},Tt=(e,t)=>oc(e,ic(t));var Go=(e,t)=>{var r={};for(var n in e)Ko.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Mr)for(var n of Mr(e))t.indexOf(n)<0&&$o.call(e,n)&&(r[n]=e[n]);return r};import{bf as sc,a8 as ac,bg as $e,B as xr,D as sn,b1 as Cr,E as ye,bh as cc,a7 as lc,be as uc,u as fc,al as pc,a0 as dc,bi as hc,bj as mc,o as gt,e as Mt,h as A,ai as vc,bk as gc,bl as yc,bm as bc,b6 as kc,C as Sc,aS as Mc,r as Q,l as xc,w as an,f as V,m as L,j as Cc}from"./vendor.d12b5734.js";import{_ as At}from"./main.465728e1.js";function ft(e){this.content=e}ft.prototype={constructor:ft,find:function(e){for(var t=0;t>1}};ft.from=function(e){if(e instanceof ft)return e;var t=[];if(e)for(var r in e)t.push(r,e[r]);return new ft(t)};var Yo=ft;function Xo(e,t,r){for(var n=0;;n++){if(n==e.childCount||n==t.childCount)return e.childCount==t.childCount?null:r;var o=e.child(n),i=t.child(n);if(o==i){r+=o.nodeSize;continue}if(!o.sameMarkup(i))return r;if(o.isText&&o.text!=i.text){for(var s=0;o.text[s]==i.text[s];s++)r++;return r}if(o.content.size||i.content.size){var a=Xo(o.content,i.content,r+1);if(a!=null)return a}r+=o.nodeSize}}function Qo(e,t,r,n){for(var o=e.childCount,i=t.childCount;;){if(o==0||i==0)return o==i?null:{a:r,b:n};var s=e.child(--o),a=t.child(--i),c=s.nodeSize;if(s==a){r-=c,n-=c;continue}if(!s.sameMarkup(a))return{a:r,b:n};if(s.isText&&s.text!=a.text){for(var l=0,u=Math.min(s.text.length,a.text.length);lt&&n(c,o+a,i,s)!==!1&&c.content.size){var u=a+1;c.nodesBetween(Math.max(0,t-u),Math.min(c.content.size,r-u),n,o+u)}a=l}};k.prototype.descendants=function(t){this.nodesBetween(0,this.size,t)};k.prototype.textBetween=function(t,r,n,o){var i="",s=!0;return this.nodesBetween(t,r,function(a,c){a.isText?(i+=a.text.slice(Math.max(t,c)-c,r-c),s=!n):a.isLeaf&&o?(i+=o,s=!n):!s&&a.isBlock&&(i+=n,s=!0)},0),i};k.prototype.append=function(t){if(!t.size)return this;if(!this.size)return t;var r=this.lastChild,n=t.firstChild,o=this.content.slice(),i=0;for(r.isText&&r.sameMarkup(n)&&(o[o.length-1]=r.withText(r.text+n.text),i=1);it)for(var i=0,s=0;st&&((sr)&&(a.isText?a=a.cut(Math.max(0,t-s),Math.min(a.text.length,r-s)):a=a.cut(Math.max(0,t-s-1),Math.min(a.content.size,r-s-1))),n.push(a),o+=a.nodeSize),s=c}return new k(n,o)};k.prototype.cutByIndex=function(t,r){return t==r?k.empty:t==0&&r==this.content.length?this:new k(this.content.slice(t,r))};k.prototype.replaceChild=function(t,r){var n=this.content[t];if(n==r)return this;var o=this.content.slice(),i=this.size+r.nodeSize-n.nodeSize;return o[t]=r,new k(o,i)};k.prototype.addToStart=function(t){return new k([t].concat(this.content),this.size+t.nodeSize)};k.prototype.addToEnd=function(t){return new k(this.content.concat(t),this.size+t.nodeSize)};k.prototype.eq=function(t){if(this.content.length!=t.content.length)return!1;for(var r=0;rthis.size||t<0)throw new RangeError("Position "+t+" outside of fragment ("+this+")");for(var n=0,o=0;;n++){var i=this.child(n),s=o+i.nodeSize;if(s>=t)return s==t||r>0?wr(n+1,s):wr(n,o);o=s}};k.prototype.toString=function(){return"<"+this.toStringInner()+">"};k.prototype.toStringInner=function(){return this.content.join(", ")};k.prototype.toJSON=function(){return this.content.length?this.content.map(function(t){return t.toJSON()}):null};k.fromJSON=function(t,r){if(!r)return k.empty;if(!Array.isArray(r))throw new RangeError("Invalid input for Fragment.fromJSON");return new k(r.map(t.nodeFromJSON))};k.fromArray=function(t){if(!t.length)return k.empty;for(var r,n=0,o=0;othis.type.rank&&(r||(r=t.slice(0,o)),r.push(this),n=!0),r&&r.push(i)}}return r||(r=t.slice()),n||r.push(this),r};P.prototype.removeFromSet=function(t){for(var r=0;r0&&(t.openStart=this.openStart),this.openEnd>0&&(t.openEnd=this.openEnd),t};C.fromJSON=function(t,r){if(!r)return C.empty;var n=r.openStart||0,o=r.openEnd||0;if(typeof n!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new C(k.fromJSON(t,r.content),n,o)};C.maxOpen=function(t,r){r===void 0&&(r=!0);for(var n=0,o=0,i=t.firstChild;i&&!i.isLeaf&&(r||!i.type.spec.isolating);i=i.firstChild)n++;for(var s=t.lastChild;s&&!s.isLeaf&&(r||!s.type.spec.isolating);s=s.lastChild)o++;return new C(t,n,o)};Object.defineProperties(C.prototype,Zo);function ti(e,t,r){var n=e.findIndex(t),o=n.index,i=n.offset,s=e.maybeChild(o),a=e.findIndex(r),c=a.index,l=a.offset;if(i==t||s.isText){if(l!=r&&!e.child(c).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(r))}if(o!=c)throw new RangeError("Removing non-flat range");return e.replaceChild(o,s.copy(ti(s.content,t-i-1,r-i-1)))}function ei(e,t,r,n){var o=e.findIndex(t),i=o.index,s=o.offset,a=e.maybeChild(i);if(s==t||a.isText)return n&&!n.canReplace(i,i,r)?null:e.cut(0,t).append(r).append(e.cut(t));var c=ei(a.content,t-s-1,r);return c&&e.replaceChild(i,a.copy(c))}C.empty=new C(k.empty,0,0);function Oc(e,t,r){if(r.openStart>e.depth)throw new Jt("Inserted content deeper than insertion position");if(e.depth-r.openStart!=t.depth-r.openEnd)throw new Jt("Inconsistent open depths");return ri(e,t,r,0)}function ri(e,t,r,n){var o=e.index(n),i=e.node(n);if(o==t.index(n)&&n=0&&e.isText&&e.sameMarkup(t[r])?t[r]=e.withText(t[r].text+e.text):t.push(e)}function Ue(e,t,r,n){var o=(t||e).node(r),i=0,s=t?t.index(r):o.childCount;e&&(i=e.index(r),e.depth>r?i++:e.textOffset&&(be(e.nodeAfter,n),i++));for(var a=i;ao&&ln(e,t,o+1),s=n.depth>o&&ln(r,n,o+1),a=[];return Ue(null,e,o,a),i&&s&&t.index(o)==r.index(o)?(ni(i,s),be(ke(i,oi(e,t,r,n,o+1)),a)):(i&&be(ke(i,Ar(e,t,o+1)),a),Ue(t,r,o,a),s&&be(ke(s,Ar(r,n,o+1)),a)),Ue(n,null,o,a),new k(a)}function Ar(e,t,r){var n=[];if(Ue(null,e,r,n),e.depth>r){var o=ln(e,t,r+1);be(ke(o,Ar(e,t,r+1)),n)}return Ue(t,null,r,n),new k(n)}function wc(e,t){for(var r=t.depth-e.openStart,n=t.node(r),o=n.copy(e.content),i=r-1;i>=0;i--)o=t.node(i).copy(k.from(o));return{start:o.resolveNoCache(e.openStart+r),end:o.resolveNoCache(o.content.size-e.openEnd-r)}}var $=function(t,r,n){this.pos=t,this.path=r,this.depth=r.length/3-1,this.parentOffset=n},De={parent:{configurable:!0},doc:{configurable:!0},textOffset:{configurable:!0},nodeAfter:{configurable:!0},nodeBefore:{configurable:!0}};$.prototype.resolveDepth=function(t){return t==null?this.depth:t<0?this.depth+t:t};De.parent.get=function(){return this.node(this.depth)};De.doc.get=function(){return this.node(0)};$.prototype.node=function(t){return this.path[this.resolveDepth(t)*3]};$.prototype.index=function(t){return this.path[this.resolveDepth(t)*3+1]};$.prototype.indexAfter=function(t){return t=this.resolveDepth(t),this.index(t)+(t==this.depth&&!this.textOffset?0:1)};$.prototype.start=function(t){return t=this.resolveDepth(t),t==0?0:this.path[t*3-1]+1};$.prototype.end=function(t){return t=this.resolveDepth(t),this.start(t)+this.node(t).content.size};$.prototype.before=function(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position before the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]};$.prototype.after=function(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position after the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]+this.path[t*3].nodeSize};De.textOffset.get=function(){return this.pos-this.path[this.path.length-1]};De.nodeAfter.get=function(){var e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;var r=this.pos-this.path[this.path.length-1],n=e.child(t);return r?e.child(t).cut(r):n};De.nodeBefore.get=function(){var e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)};$.prototype.posAtIndex=function(t,r){r=this.resolveDepth(r);for(var n=this.path[r*3],o=r==0?0:this.path[r*3-1]+1,i=0;i0;r--)if(this.start(r)<=t&&this.end(r)>=t)return r;return 0};$.prototype.blockRange=function(t,r){if(t===void 0&&(t=this),t.pos=0;n--)if(t.pos<=this.end(n)&&(!r||r(this.node(n))))return new Ge(this,t,n)};$.prototype.sameParent=function(t){return this.pos-this.parentOffset==t.pos-t.parentOffset};$.prototype.max=function(t){return t.pos>this.pos?t:this};$.prototype.min=function(t){return t.pos=0&&r<=t.content.size))throw new RangeError("Position "+r+" out of range");for(var n=[],o=0,i=r,s=t;;){var a=s.content.findIndex(i),c=a.index,l=a.offset,u=i-l;if(n.push(s,c,o+l),!u||(s=s.child(c),s.isText))break;i=u-1,o+=l+1}return new $(r,n,i)};$.resolveCached=function(t,r){for(var n=0;nt&&this.nodesBetween(t,r,function(i){return n.isInSet(i.marks)&&(o=!0),!o}),o};_t.isBlock.get=function(){return this.type.isBlock};_t.isTextblock.get=function(){return this.type.isTextblock};_t.inlineContent.get=function(){return this.type.inlineContent};_t.isInline.get=function(){return this.type.isInline};_t.isText.get=function(){return this.type.isText};_t.isLeaf.get=function(){return this.type.isLeaf};_t.isAtom.get=function(){return this.type.isAtom};B.prototype.toString=function(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);var t=this.type.name;return this.content.size&&(t+="("+this.content.toStringInner()+")"),ii(this.marks,t)};B.prototype.contentMatchAt=function(t){var r=this.type.contentMatch.matchFragment(this.content,0,t);if(!r)throw new Error("Called contentMatchAt on a node with invalid content");return r};B.prototype.canReplace=function(t,r,n,o,i){n===void 0&&(n=k.empty),o===void 0&&(o=0),i===void 0&&(i=n.childCount);var s=this.contentMatchAt(t).matchFragment(n,o,i),a=s&&s.matchFragment(this.content,r);if(!a||!a.validEnd)return!1;for(var c=o;c=0;r--)t=e[r].type.name+"("+t+")";return t}var pt=function(t){this.validEnd=t,this.next=[],this.wrapCache=[]},_r={inlineContent:{configurable:!0},defaultType:{configurable:!0},edgeCount:{configurable:!0}};pt.parse=function(t,r){var n=new Nr(t,r);if(n.next==null)return pt.empty;var o=ai(n);n.next&&n.err("Unexpected trailing text");var i=Bc(Pc(o));return zc(i,n),i};pt.prototype.matchType=function(t){for(var r=0;r>1};pt.prototype.edge=function(t){var r=t<<1;if(r>=this.next.length)throw new RangeError("There's no "+t+"th edge in this content match");return{type:this.next[r],next:this.next[r+1]}};pt.prototype.toString=function(){var t=[];function r(n){t.push(n);for(var o=1;o"+t.indexOf(n.next[s+1]);return i}).join(` -`)};Object.defineProperties(pt.prototype,_r);pt.empty=new pt(!0);var Nr=function(t,r){this.string=t,this.nodeTypes=r,this.inline=null,this.pos=0,this.tokens=t.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()},si={next:{configurable:!0}};si.next.get=function(){return this.tokens[this.pos]};Nr.prototype.eat=function(t){return this.next==t&&(this.pos++||!0)};Nr.prototype.err=function(t){throw new SyntaxError(t+" (in content expression '"+this.string+"')")};Object.defineProperties(Nr.prototype,si);function ai(e){var t=[];do t.push(Nc(e));while(e.eat("|"));return t.length==1?t[0]:{type:"choice",exprs:t}}function Nc(e){var t=[];do t.push(Ec(e));while(e.next&&e.next!=")"&&e.next!="|");return t.length==1?t[0]:{type:"seq",exprs:t}}function Ec(e){for(var t=Rc(e);;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else if(e.eat("{"))t=Dc(e,t);else break;return t}function ci(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");var t=Number(e.next);return e.pos++,t}function Dc(e,t){var r=ci(e),n=r;return e.eat(",")&&(e.next!="}"?n=ci(e):n=-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:r,max:n,expr:t}}function Ic(e,t){var r=e.nodeTypes,n=r[t];if(n)return[n];var o=[];for(var i in r){var s=r[i];s.groups.indexOf(t)>-1&&o.push(s)}return o.length==0&&e.err("No node type or group '"+t+"' found"),o}function Rc(e){if(e.eat("(")){var t=ai(e);return e.eat(")")||e.err("Missing closing paren"),t}else if(/\W/.test(e.next))e.err("Unexpected token '"+e.next+"'");else{var r=Ic(e,e.next).map(function(n){return e.inline==null?e.inline=n.isInline:e.inline!=n.isInline&&e.err("Mixing inline and block content"),{type:"name",value:n}});return e.pos++,r.length==1?r[0]:{type:"choice",exprs:r}}}function Pc(e){var t=[[]];return o(i(e,0),r()),t;function r(){return t.push([])-1}function n(s,a,c){var l={term:c,to:a};return t[s].push(l),l}function o(s,a){s.forEach(function(c){return c.to=a})}function i(s,a){if(s.type=="choice")return s.exprs.reduce(function(M,y){return M.concat(i(y,a))},[]);if(s.type=="seq")for(var c=0;;c++){var l=i(s.exprs[c],a);if(c==s.exprs.length-1)return l;o(l,a=r())}else if(s.type=="star"){var u=r();return n(a,u),o(i(s.expr,u),u),[n(u)]}else if(s.type=="plus"){var f=r();return o(i(s.expr,a),f),o(i(s.expr,f),f),[n(f)]}else{if(s.type=="opt")return[n(a)].concat(i(s.expr,a));if(s.type=="range"){for(var p=a,d=0;d-1&&o[p+1];ui(e,f).forEach(function(h){d||o.push(u,d=[]),d.indexOf(h)==-1&&d.push(h)})}})});for(var i=t[n.join(",")]=new pt(n.indexOf(e.length-1)>-1),s=0;s-1};yt.prototype.allowsMarks=function(t){if(this.markSet==null)return!0;for(var r=0;r-1};var Se=function(t){this.spec={};for(var r in t)this.spec[r]=t[r];this.spec.nodes=Yo.from(t.nodes),this.spec.marks=Yo.from(t.marks),this.nodes=yt.compile(this.spec.nodes,this),this.marks=ie.compile(this.spec.marks,this);var n=Object.create(null);for(var o in this.nodes){if(o in this.marks)throw new RangeError(o+" can not be both a node and a mark");var i=this.nodes[o],s=i.spec.content||"",a=i.spec.marks;i.contentMatch=n[s]||(n[s]=pt.parse(s,this.nodes)),i.inlineContent=i.contentMatch.inlineContent,i.markSet=a=="_"?null:a?vi(this,a.split(" ")):a==""||!i.inlineContent?[]:null}for(var c in this.marks){var l=this.marks[c],u=l.spec.excludes;l.excluded=u==null?[l]:u==""?[]:vi(this,u.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached=Object.create(null),this.cached.wrappings=Object.create(null)};Se.prototype.node=function(t,r,n,o){if(typeof t=="string")t=this.nodeType(t);else if(t instanceof yt){if(t.schema!=this)throw new RangeError("Node type from different schema used ("+t.name+")")}else throw new RangeError("Invalid node type: "+t);return t.createChecked(r,n,o)};Se.prototype.text=function(t,r){var n=this.nodes.text;return new _c(n,n.defaultAttrs,t,P.setFrom(r))};Se.prototype.mark=function(t,r){return typeof t=="string"&&(t=this.marks[t]),t.create(r)};Se.prototype.nodeFromJSON=function(t){return B.fromJSON(this,t)};Se.prototype.markFromJSON=function(t){return P.fromJSON(this,t)};Se.prototype.nodeType=function(t){var r=this.nodes[t];if(!r)throw new RangeError("Unknown node type: "+t);return r};function vi(e,t){for(var r=[],n=0;n-1)&&r.push(s=c)}if(!s)throw new SyntaxError("Unknown mark type: '"+t[n]+"'")}return r}var Lt=function(t,r){var n=this;this.schema=t,this.rules=r,this.tags=[],this.styles=[],r.forEach(function(o){o.tag?n.tags.push(o):o.style&&n.styles.push(o)}),this.normalizeLists=!this.tags.some(function(o){if(!/^(ul|ol)\b/.test(o.tag)||!o.node)return!1;var i=t.nodes[o.node];return i.contentMatch.matchType(i)})};Lt.prototype.parse=function(t,r){r===void 0&&(r={});var n=new K(this,r,!1);return n.addAll(t,null,r.from,r.to),n.finish()};Lt.prototype.parseSlice=function(t,r){r===void 0&&(r={});var n=new K(this,r,!0);return n.addAll(t,null,r.from,r.to),C.maxOpen(n.finish())};Lt.prototype.matchTag=function(t,r,n){for(var o=n?this.tags.indexOf(n)+1:0;ot.length&&(s.style.charCodeAt(t.length)!=61||s.style.slice(t.length+1)!=r))){if(s.getAttrs){var a=s.getAttrs(r);if(a===!1)continue;s.attrs=a}return s}}};Lt.schemaRules=function(t){var r=[];function n(c){for(var l=c.priority==null?50:c.priority,u=0;u=0;r--)if(t.eq(this.stashMarks[r]))return this.stashMarks.splice(r,1)[0]};Zt.prototype.applyPending=function(t){for(var r=0,n=this.pendingMarks;r=0;o--){var i=this.nodes[o],s=i.findWrapping(t);if(s&&(!r||r.length>s.length)&&(r=s,n=i,!s.length)||i.solid)break}if(!r)return!1;this.sync(n);for(var a=0;athis.open){for(;r>this.open;r--)this.nodes[r-1].content.push(this.nodes[r].finish(t));this.nodes.length=this.open+1}};K.prototype.finish=function(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)};K.prototype.sync=function(t){for(var r=this.open;r>=0;r--)if(this.nodes[r]==t){this.open=r;return}};mn.currentPos.get=function(){this.closeExtra();for(var e=0,t=this.open;t>=0;t--){for(var r=this.nodes[t].content,n=r.length-1;n>=0;n--)e+=r[n].nodeSize;t&&e++}return e};K.prototype.findAtPoint=function(t,r){if(this.find)for(var n=0;n-1)return t.split(/\s*\|\s*/).some(this.matchesContext,this);var n=t.split("/"),o=this.options.context,i=!this.isOpen&&(!o||o.parent.type==this.nodes[0].type),s=-(o?o.depth+1:0)+(i?0:1),a=function(c,l){for(;c>=0;c--){var u=n[c];if(u==""){if(c==n.length-1||c==0)continue;for(;l>=s;l--)if(a(c-1,l))return!0;return!1}else{var f=l>0||l==0&&i?r.nodes[l].type:o&&l>=s?o.node(l-s).type:null;if(!f||f.name!=u&&f.groups.indexOf(u)==-1)return!1;l--}}return!0};return a(n.length-1,this.open)};K.prototype.textblockFromContext=function(){var t=this.options.context;if(t)for(var r=t.depth;r>=0;r--){var n=t.node(r).contentMatchAt(t.indexAfter(r)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(var o in this.parser.schema.nodes){var i=this.parser.schema.nodes[o];if(i.isTextblock&&i.defaultAttrs)return i}};K.prototype.addPendingMark=function(t){var r=qc(t,this.top.pendingMarks);r&&this.top.stashMarks.push(r),this.top.pendingMarks=t.addToSet(this.top.pendingMarks)};K.prototype.removePendingMark=function(t,r){for(var n=this.open;n>=0;n--){var o=this.nodes[n],i=o.pendingMarks.lastIndexOf(t);if(i>-1)o.pendingMarks=t.removeFromSet(o.pendingMarks);else{o.activeMarks=t.removeFromSet(o.activeMarks);var s=o.popFromStashMark(t);s&&o.type&&o.type.allowsMarkType(s.type)&&(o.activeMarks=s.addToSet(o.activeMarks))}if(o==r)break}};Object.defineProperties(K.prototype,mn);function Fc(e){for(var t=e.firstChild,r=null;t;t=t.nextSibling){var n=t.nodeType==1?t.nodeName.toLowerCase():null;n&&gi.hasOwnProperty(n)&&r?(r.appendChild(t),t=r):n=="li"?r=t:n&&(r=null)}}function Vc(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function Hc(e){for(var t=/\s*([\w-]+)\s*:\s*([^;]+)/g,r,n=[];r=t.exec(e);)n.push(r[1],r[2].trim());return n}function bi(e){var t={};for(var r in e)t[r]=e[r];return t}function jc(e,t){var r=t.schema.nodes,n=function(s){var a=r[s];if(!!a.allowsMarkType(e)){var c=[],l=function(u){c.push(u);for(var f=0;f=0;o--){var i=this.serializeMark(t.marks[o],t.isInline,r);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n};ot.prototype.serializeMark=function(t,r,n){n===void 0&&(n={});var o=this.marks[t.type.name];return o&&ot.renderSpec(vn(n),o(t,r))};ot.renderSpec=function(t,r,n){if(n===void 0&&(n=null),typeof r=="string")return{dom:t.createTextNode(r)};if(r.nodeType!=null)return{dom:r};if(r.dom&&r.dom.nodeType!=null)return r;var o=r[0],i=o.indexOf(" ");i>0&&(n=o.slice(0,i),o=o.slice(i+1));var s=null,a=n?t.createElementNS(n,o):t.createElement(o),c=r[1],l=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){l=2;for(var u in c)if(c[u]!=null){var f=u.indexOf(" ");f>0?a.setAttributeNS(u.slice(0,f),u.slice(f+1),c[u]):a.setAttribute(u,c[u])}}for(var p=l;pl)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}else{var h=ot.renderSpec(t,d,n),v=h.dom,g=h.contentDOM;if(a.appendChild(v),g){if(s)throw new RangeError("Multiple content holes");s=g}}}return{dom:a,contentDOM:s}};ot.fromSchema=function(t){return t.cached.domSerializer||(t.cached.domSerializer=new ot(this.nodesFromSchema(t),this.marksFromSchema(t)))};ot.nodesFromSchema=function(t){var r=ki(t.nodes);return r.text||(r.text=function(n){return n.text}),r};ot.marksFromSchema=function(t){return ki(t.marks)};function ki(e){var t={};for(var r in e){var n=e[r].spec.toDOM;n&&(t[r]=n)}return t}function vn(e){return e.document||window.document}var Si=65535,Mi=Math.pow(2,16);function Jc(e,t){return e+t*Mi}function xi(e){return e&Si}function Wc(e){return(e-(e&Si))/Mi}var gn=function(t,r,n){r===void 0&&(r=!1),n===void 0&&(n=null),this.pos=t,this.deleted=r,this.recover=n},it=function(t,r){r===void 0&&(r=!1),this.ranges=t,this.inverted=r};it.prototype.recover=function(t){var r=0,n=xi(t);if(!this.inverted)for(var o=0;ot)break;var l=this.ranges[a+i],u=this.ranges[a+s],f=c+l;if(t<=f){var p=l?t==c?-1:t==f?1:r:r,d=c+o+(p<0?0:u);if(n)return d;var h=t==(r<0?c:f)?null:Jc(a/3,t-c);return new gn(d,r<0?t!=c:t!=f,h)}o+=u-l}return n?t+o:new gn(t+o)};it.prototype.touches=function(t,r){for(var n=0,o=xi(r),i=this.inverted?2:1,s=this.inverted?1:2,a=0;at)break;var l=this.ranges[a+i],u=c+l;if(t<=u&&a==o*3)return!0;n+=this.ranges[a+s]-l}return!1};it.prototype.forEach=function(t){for(var r=this.inverted?2:1,n=this.inverted?1:2,o=0,i=0;o=0;r--){var o=t.getMirror(r);this.appendMap(t.maps[r].invert(),o!=null&&o>r?n-o-1:null)}};dt.prototype.invert=function(){var t=new dt;return t.appendMappingInverted(this),t};dt.prototype.map=function(t,r){if(r===void 0&&(r=1),this.mirror)return this._map(t,r,!0);for(var n=this.from;ni&&c0};X.prototype.addStep=function(t,r){this.docs.push(this.doc),this.steps.push(t),this.mapping.appendMap(t.getMap()),this.doc=r};Object.defineProperties(X.prototype,yn);function Er(){throw new Error("Override me")}var bn=Object.create(null),ht=function(){};ht.prototype.apply=function(t){return Er()};ht.prototype.getMap=function(){return it.empty};ht.prototype.invert=function(t){return Er()};ht.prototype.map=function(t){return Er()};ht.prototype.merge=function(t){return null};ht.prototype.toJSON=function(){return Er()};ht.fromJSON=function(t,r){if(!r||!r.stepType)throw new RangeError("Invalid input for Step.fromJSON");var n=bn[r.stepType];if(!n)throw new RangeError("No step type "+r.stepType+" defined");return n.fromJSON(t,r)};ht.jsonID=function(t,r){if(t in bn)throw new RangeError("Duplicate use of step JSON ID "+t);return bn[t]=r,r.prototype.jsonID=t,r};var bt=function(t,r){this.doc=t,this.failed=r};bt.ok=function(t){return new bt(t,null)};bt.fail=function(t){return new bt(null,t)};bt.fromReplace=function(t,r,n,o){try{return bt.ok(t.replace(r,n,o))}catch(i){if(i instanceof Jt)return bt.fail(i.message);throw i}};var te=function(e){function t(r,n,o,i){e.call(this),this.from=r,this.to=n,this.slice=o,this.structure=!!i}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.apply=function(n){return this.structure&&kn(n,this.from,this.to)?bt.fail("Structure replace would overwrite content"):bt.fromReplace(n,this.from,this.to,this.slice)},t.prototype.getMap=function(){return new it([this.from,this.to-this.from,this.slice.size])},t.prototype.invert=function(n){return new t(this.from,this.from+this.slice.size,n.slice(this.from,this.to))},t.prototype.map=function(n){var o=n.mapResult(this.from,1),i=n.mapResult(this.to,-1);return o.deleted&&i.deleted?null:new t(o.pos,Math.max(o.pos,i.pos),this.slice)},t.prototype.merge=function(n){if(!(n instanceof t)||n.structure||this.structure)return null;if(this.from+this.slice.size==n.from&&!this.slice.openEnd&&!n.slice.openStart){var o=this.slice.size+n.slice.size==0?C.empty:new C(this.slice.content.append(n.slice.content),this.slice.openStart,n.slice.openEnd);return new t(this.from,this.to+(n.to-n.from),o,this.structure)}else if(n.to==this.from&&!this.slice.openStart&&!n.slice.openEnd){var i=this.slice.size+n.slice.size==0?C.empty:new C(n.slice.content.append(this.slice.content),n.slice.openStart,this.slice.openEnd);return new t(n.from,this.to,i,this.structure)}else return null},t.prototype.toJSON=function(){var n={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(n.slice=this.slice.toJSON()),this.structure&&(n.structure=!0),n},t.fromJSON=function(n,o){if(typeof o.from!="number"||typeof o.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new t(o.from,o.to,C.fromJSON(n,o.slice),!!o.structure)},t}(ht);ht.jsonID("replace",te);var xt=function(e){function t(r,n,o,i,s,a,c){e.call(this),this.from=r,this.to=n,this.gapFrom=o,this.gapTo=i,this.slice=s,this.insert=a,this.structure=!!c}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.apply=function(n){if(this.structure&&(kn(n,this.from,this.gapFrom)||kn(n,this.gapTo,this.to)))return bt.fail("Structure gap-replace would overwrite content");var o=n.slice(this.gapFrom,this.gapTo);if(o.openStart||o.openEnd)return bt.fail("Gap is not a flat range");var i=this.slice.insertAt(this.insert,o.content);return i?bt.fromReplace(n,this.from,this.to,i):bt.fail("Content does not fit in gap")},t.prototype.getMap=function(){return new it([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])},t.prototype.invert=function(n){var o=this.gapTo-this.gapFrom;return new t(this.from,this.from+this.slice.size+o,this.from+this.insert,this.from+this.insert+o,n.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)},t.prototype.map=function(n){var o=n.mapResult(this.from,1),i=n.mapResult(this.to,-1),s=n.map(this.gapFrom,-1),a=n.map(this.gapTo,1);return o.deleted&&i.deleted||si.pos?null:new t(o.pos,i.pos,s,a,this.slice,this.insert,this.structure)},t.prototype.toJSON=function(){var n={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(n.slice=this.slice.toJSON()),this.structure&&(n.structure=!0),n},t.fromJSON=function(n,o){if(typeof o.from!="number"||typeof o.to!="number"||typeof o.gapFrom!="number"||typeof o.gapTo!="number"||typeof o.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new t(o.from,o.to,o.gapFrom,o.gapTo,C.fromJSON(n,o.slice),o.insert,!!o.structure)},t}(ht);ht.jsonID("replaceAround",xt);function kn(e,t,r){for(var n=e.resolve(t),o=r-t,i=n.depth;o>0&&i>0&&n.indexAfter(i)==n.node(i).childCount;)i--,o--;if(o>0)for(var s=n.node(i).maybeChild(n.indexAfter(i));o>0;){if(!s||s.isLeaf)return!0;s=s.firstChild,o--}return!1}function Kc(e,t,r){return(t==0||e.canReplace(t,e.childCount))&&(r==e.childCount||e.canReplace(0,r))}function Pe(e){for(var t=e.parent,r=t.content.cutByIndex(e.startIndex,e.endIndex),n=e.depth;;--n){var o=e.$from.node(n),i=e.$from.index(n),s=e.$to.indexAfter(n);if(nt;f--)p||r.index(f)>0?(p=!0,l=k.from(r.node(f).copy(l)),u++):a--;for(var d=k.empty,h=0,v=o,g=!1;v>t;v--)g||n.after(v+1)=0;n--)r=k.from(t[n].type.create(t[n].attrs,r));var o=e.start,i=e.end;return this.step(new xt(o,i,o,i,new C(r,0,0),t.length,!0))};X.prototype.setBlockType=function(e,t,r,n){var o=this;if(t===void 0&&(t=e),!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");var i=this.steps.length;return this.doc.nodesBetween(e,t,function(s,a){if(s.isTextblock&&!s.hasMarkup(r,n)&&Gc(o.doc,o.mapping.slice(i).map(a),r)){o.clearIncompatible(o.mapping.slice(i).map(a,1),r);var c=o.mapping.slice(i),l=c.map(a,1),u=c.map(a+s.nodeSize,1);return o.step(new xt(l,u,l+1,u-1,new C(k.from(r.create(n,null,s.marks)),0,0),1,!0)),!1}}),this};function Gc(e,t,r){var n=e.resolve(t),o=n.index();return n.parent.canReplaceWith(o,o+1,r)}X.prototype.setNodeMarkup=function(e,t,r,n){var o=this.doc.nodeAt(e);if(!o)throw new RangeError("No node at given position");t||(t=o.type);var i=t.create(r,null,n||o.marks);if(o.isLeaf)return this.replaceWith(e,e+o.nodeSize,i);if(!t.validContent(o.content))throw new RangeError("Invalid content for node type "+t.name);return this.step(new xt(e,e+o.nodeSize,e+1,e+o.nodeSize-1,new C(k.from(i),0,0),1,!0))};function ee(e,t,r,n){r===void 0&&(r=1);var o=e.resolve(t),i=o.depth-r,s=n&&n[n.length-1]||o.parent;if(i<0||o.parent.type.spec.isolating||!o.parent.canReplace(o.index(),o.parent.childCount)||!s.type.validContent(o.parent.content.cutByIndex(o.index(),o.parent.childCount)))return!1;for(var a=o.depth-1,c=r-2;a>i;a--,c--){var l=o.node(a),u=o.index(a);if(l.type.spec.isolating)return!1;var f=l.content.cutByIndex(u,l.childCount),p=n&&n[c]||l;if(p!=l&&(f=f.replaceChild(0,p.type.create(p.attrs))),!l.canReplace(u+1,l.childCount)||!p.type.validContent(f))return!1}var d=o.indexAfter(i),h=n&&n[0];return o.node(i).canReplaceWith(d,d,h?h.type:o.node(i+1).type)}X.prototype.split=function(e,t,r){t===void 0&&(t=1);for(var n=this.doc.resolve(e),o=k.empty,i=k.empty,s=n.depth,a=n.depth-t,c=t-1;s>a;s--,c--){o=k.from(n.node(s).copy(o));var l=r&&r[c];i=k.from(l?l.type.create(l.attrs,i):n.node(s).copy(i))}return this.step(new te(e,e,new C(o.append(i),t,t),!0))};function Mn(e,t){var r=e.resolve(t),n=r.index();return Yc(r.nodeBefore,r.nodeAfter)&&r.parent.canReplace(n,n+1)}function Yc(e,t){return e&&t&&!e.isLeaf&&e.canAppend(t)}X.prototype.join=function(e,t){t===void 0&&(t=1);var r=new te(e-t,e+t,C.empty,!0);return this.step(r)};function Xc(e,t,r){var n=e.resolve(t);if(n.parent.canReplaceWith(n.index(),n.index(),r))return t;if(n.parentOffset==0)for(var o=n.depth-1;o>=0;o--){var i=n.index(o);if(n.node(o).canReplaceWith(i,i,r))return n.before(o+1);if(i>0)return null}if(n.parentOffset==n.parent.content.size)for(var s=n.depth-1;s>=0;s--){var a=n.indexAfter(s);if(n.node(s).canReplaceWith(a,a,r))return n.after(s+1);if(a=0;a--){var c=a==n.depth?0:n.pos<=(n.start(a+1)+n.end(a+1))/2?-1:1,l=n.index(a)+(c>0?1:0),u=n.node(a),f=!1;if(s==1)f=u.canReplace(l,l,o);else{var p=u.contentMatchAt(l).findWrapping(o.firstChild.type);f=p&&u.canReplaceWith(l,l,p[0])}if(f)return c==0?n.pos:c<0?n.before(a+1):n.after(a+1)}return null}function xn(e,t,r){for(var n=[],o=0;o=i.pos?null:new t(o.pos,i.pos,this.mark)},t.prototype.merge=function(n){if(n instanceof t&&n.mark.eq(this.mark)&&this.from<=n.to&&this.to>=n.from)return new t(Math.min(this.from,n.from),Math.max(this.to,n.to),this.mark)},t.prototype.toJSON=function(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}},t.fromJSON=function(n,o){if(typeof o.from!="number"||typeof o.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new t(o.from,o.to,n.markFromJSON(o.mark))},t}(ht);ht.jsonID("addMark",Cn);var Qe=function(e){function t(r,n,o){e.call(this),this.from=r,this.to=n,this.mark=o}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.apply=function(n){var o=this,i=n.slice(this.from,this.to),s=new C(xn(i.content,function(a){return a.mark(o.mark.removeFromSet(a.marks))}),i.openStart,i.openEnd);return bt.fromReplace(n,this.from,this.to,s)},t.prototype.invert=function(){return new Cn(this.from,this.to,this.mark)},t.prototype.map=function(n){var o=n.mapResult(this.from,1),i=n.mapResult(this.to,-1);return o.deleted&&i.deleted||o.pos>=i.pos?null:new t(o.pos,i.pos,this.mark)},t.prototype.merge=function(n){if(n instanceof t&&n.mark.eq(this.mark)&&this.from<=n.to&&this.to>=n.from)return new t(Math.min(this.from,n.from),Math.max(this.to,n.to),this.mark)},t.prototype.toJSON=function(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}},t.fromJSON=function(n,o){if(typeof o.from!="number"||typeof o.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new t(o.from,o.to,n.markFromJSON(o.mark))},t}(ht);ht.jsonID("removeMark",Qe);X.prototype.addMark=function(e,t,r){var n=this,o=[],i=[],s=null,a=null;return this.doc.nodesBetween(e,t,function(c,l,u){if(!!c.isInline){var f=c.marks;if(!r.isInSet(f)&&u.type.allowsMarkType(r.type)){for(var p=Math.max(l,e),d=Math.min(l+c.nodeSize,t),h=r.addToSet(f),v=0;v=0;p--)this.step(o[p]);return this};function Qc(e,t,r,n){if(r===void 0&&(r=t),n===void 0&&(n=C.empty),t==r&&!n.size)return null;var o=e.resolve(t),i=e.resolve(r);return wi(o,i,n)?new te(t,r,n):new It(o,i,n).fit()}X.prototype.replace=function(e,t,r){t===void 0&&(t=e),r===void 0&&(r=C.empty);var n=Qc(this.doc,e,t,r);return n&&this.step(n),this};X.prototype.replaceWith=function(e,t,r){return this.replace(e,t,new C(k.from(r),0,0))};X.prototype.delete=function(e,t){return this.replace(e,t,C.empty)};X.prototype.insert=function(e,t){return this.replaceWith(e,e,t)};function wi(e,t,r){return!r.openStart&&!r.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),r.content)}var It=function(t,r,n){this.$to=r,this.$from=t,this.unplaced=n,this.frontier=[];for(var o=0;o<=t.depth;o++){var i=t.node(o);this.frontier.push({type:i.type,match:i.contentMatchAt(t.indexAfter(o))})}this.placed=k.empty;for(var s=t.depth;s>0;s--)this.placed=k.from(t.node(s).copy(this.placed))},Ti={depth:{configurable:!0}};Ti.depth.get=function(){return this.frontier.length-1};It.prototype.fit=function(){for(;this.unplaced.size;){var t=this.findFittable();t?this.placeNodes(t):this.openMore()||this.dropNode()}var r=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,o=this.$from,i=this.close(r<0?this.$to:o.doc.resolve(r));if(!i)return null;for(var s=this.placed,a=o.depth,c=i.depth;a&&c&&s.childCount==1;)s=s.firstChild.content,a--,c--;var l=new C(s,a,c);if(r>-1)return new xt(o.pos,r,this.$to.pos,this.$to.end(),l,n);if(l.size||o.pos!=this.$to.pos)return new te(o.pos,i.pos,l)};It.prototype.findFittable=function(){for(var t=1;t<=2;t++)for(var r=this.unplaced.openStart;r>=0;r--){var n=void 0,o=void 0;r?(o=On(this.unplaced.content,r-1).firstChild,n=o.content):n=this.unplaced.content;for(var i=n.firstChild,s=this.depth;s>=0;s--){var a=this.frontier[s],c=a.type,l=a.match,u=void 0,f=void 0;if(t==1&&(i?l.matchType(i.type)||(f=l.fillBefore(k.from(i),!1)):c.compatibleContent(o.type)))return{sliceDepth:r,frontierDepth:s,parent:o,inject:f};if(t==2&&i&&(u=l.findWrapping(i.type)))return{sliceDepth:r,frontierDepth:s,parent:o,wrap:u};if(o&&l.matchType(o.type))break}}};It.prototype.openMore=function(){var t=this.unplaced,r=t.content,n=t.openStart,o=t.openEnd,i=On(r,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new C(r,n+1,Math.max(o,i.size+n>=r.size-o?n+1:0)),!0)};It.prototype.dropNode=function(){var t=this.unplaced,r=t.content,n=t.openStart,o=t.openEnd,i=On(r,n);if(i.childCount<=1&&n>0){var s=r.size-n<=n+i.size;this.unplaced=new C(Ze(r,n-1,1),n-1,s?n-1:o)}else this.unplaced=new C(Ze(r,n,1),n,o)};It.prototype.placeNodes=function(t){for(var r=t.sliceDepth,n=t.frontierDepth,o=t.parent,i=t.inject,s=t.wrap;this.depth>n;)this.closeFrontierNode();if(s)for(var a=0;a1||u==0||y.content.size)&&(h=R,p.push(Ai(y.mark(v.allowedMarks(y.marks)),f==1?u:0,f==l.childCount?M:-1)))}var m=f==l.childCount;m||(M=-1),this.placed=tr(this.placed,n,k.from(p)),this.frontier[n].match=h,m&&M<0&&o&&o.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(var I=0,O=l;I1&&i==this.$to.end(--o);)++i;return i};It.prototype.findCloseLevel=function(t){t:for(var r=Math.min(this.depth,t.depth);r>=0;r--){var n=this.frontier[r],o=n.match,i=n.type,s=r=0;c--){var l=this.frontier[c],u=l.match,f=l.type,p=wn(t,c,f,u,!0);if(!p||p.childCount)continue t}return{depth:r,fit:a,move:s?t.doc.resolve(t.after(r+1)):t}}}};It.prototype.close=function(t){var r=this.findCloseLevel(t);if(!r)return null;for(;this.depth>r.depth;)this.closeFrontierNode();r.fit.childCount&&(this.placed=tr(this.placed,r.depth,r.fit)),t=r.move;for(var n=r.depth+1;n<=t.depth;n++){var o=t.node(n),i=o.type.contentMatch.fillBefore(o.content,!0,t.index(n));this.openFrontierNode(o.type,o.attrs,i)}return t};It.prototype.openFrontierNode=function(t,r,n){var o=this.frontier[this.depth];o.match=o.match.matchType(t),this.placed=tr(this.placed,this.depth,k.from(t.create(r,n))),this.frontier.push({type:t,match:t.contentMatch})};It.prototype.closeFrontierNode=function(){var t=this.frontier.pop(),r=t.match.fillBefore(k.empty,!0);r.childCount&&(this.placed=tr(this.placed,this.frontier.length,r))};Object.defineProperties(It.prototype,Ti);function Ze(e,t,r){return t==0?e.cutByIndex(r):e.replaceChild(0,e.firstChild.copy(Ze(e.firstChild.content,t-1,r)))}function tr(e,t,r){return t==0?e.append(r):e.replaceChild(e.childCount-1,e.lastChild.copy(tr(e.lastChild.content,t-1,r)))}function On(e,t){for(var r=0;r1&&(n=n.replaceChild(0,Ai(n.firstChild,t-1,n.childCount==1?r-1:0))),t>0&&(n=e.type.contentMatch.fillBefore(n).append(n),r<=0&&(n=n.append(e.type.contentMatch.matchFragment(n).fillBefore(k.empty,!0)))),e.copy(n)}function wn(e,t,r,n,o){var i=e.node(t),s=o?e.indexAfter(t):e.index(t);if(s==i.childCount&&!r.compatibleContent(i.type))return null;var a=n.fillBefore(i.content,!0,s);return a&&!Zc(r,i.content,s)?a:null}function Zc(e,t,r){for(var n=r;n0;a--,c--){var l=n.node(a).type.spec;if(l.defining||l.isolating)break;i.indexOf(a)>-1?s=a:n.before(a)==c&&i.splice(1,0,-a)}for(var u=i.indexOf(s),f=[],p=r.openStart,d=r.content,h=0;;h++){var v=d.firstChild;if(f.push(v),h==r.openStart)break;d=v.content}p>0&&f[p-1].type.spec.defining&&n.node(u).type!=f[p-1].type?p-=1:p>=2&&f[p-1].isTextblock&&f[p-2].type.spec.defining&&n.node(u).type!=f[p-2].type&&(p-=2);for(var g=r.openStart;g>=0;g--){var M=(g+p+1)%(r.openStart+1),y=f[M];if(!!y)for(var R=0;R=0&&(this.replace(e,t,r),!(this.steps.length>J));U--){var T=i[U];T<0||(e=n.before(T),t=o.after(T))}return this};function _i(e,t,r,n,o){if(tn){var s=o.contentMatchAt(0),a=s.fillBefore(e).append(e);e=a.append(s.matchFragment(a).fillBefore(k.empty,!0))}return e}X.prototype.replaceRangeWith=function(e,t,r){if(!r.isInline&&e==t&&this.doc.resolve(e).parent.content.size){var n=Xc(this.doc,e,r.type);n!=null&&(e=t=n)}return this.replaceRange(e,t,new C(k.from(r),0,0))};X.prototype.deleteRange=function(e,t){for(var r=this.doc.resolve(e),n=this.doc.resolve(t),o=Ni(r,n),i=0;i0&&(a||r.node(s-1).canReplace(r.index(s-1),n.indexAfter(s-1))))return this.delete(r.before(s),n.after(s))}for(var c=1;c<=r.depth&&c<=n.depth;c++)if(e-r.start(c)==r.depth-c&&t>r.end(c)&&n.end(c)-t!=n.depth-c)return this.delete(r.before(c),t);return this.delete(e,t)};function Ni(e,t){for(var r=[],n=Math.min(e.depth,t.depth),o=n;o>=0;o--){var i=e.start(o);if(it.pos+(t.depth-o)||e.node(o).type.spec.isolating||t.node(o).type.spec.isolating)break;i==t.start(o)&&r.push(o)}return r}var Tn=Object.create(null),D=function(t,r,n){this.ranges=n||[new tl(t.min(r),t.max(r))],this.$anchor=t,this.$head=r},se={anchor:{configurable:!0},head:{configurable:!0},from:{configurable:!0},to:{configurable:!0},$from:{configurable:!0},$to:{configurable:!0},empty:{configurable:!0}};se.anchor.get=function(){return this.$anchor.pos};se.head.get=function(){return this.$head.pos};se.from.get=function(){return this.$from.pos};se.to.get=function(){return this.$to.pos};se.$from.get=function(){return this.ranges[0].$from};se.$to.get=function(){return this.ranges[0].$to};se.empty.get=function(){for(var e=this.ranges,t=0;t=0;i--){var s=r<0?Be(t.node(0),t.node(i),t.before(i+1),t.index(i),r,n):Be(t.node(0),t.node(i),t.after(i+1),t.index(i)+1,r,n);if(s)return s}};D.near=function(t,r){return r===void 0&&(r=1),this.findFrom(t,r)||this.findFrom(t,-r)||new re(t.node(0))};D.atStart=function(t){return Be(t,t,0,0,1)||new re(t)};D.atEnd=function(t){return Be(t,t,t.content.size,t.childCount,-1)||new re(t)};D.fromJSON=function(t,r){if(!r||!r.type)throw new RangeError("Invalid input for Selection.fromJSON");var n=Tn[r.type];if(!n)throw new RangeError("No selection type "+r.type+" defined");return n.fromJSON(t,r)};D.jsonID=function(t,r){if(t in Tn)throw new RangeError("Duplicate use of selection JSON ID "+t);return Tn[t]=r,r.prototype.jsonID=t,r};D.prototype.getBookmark=function(){return H.between(this.$anchor,this.$head).getBookmark()};Object.defineProperties(D.prototype,se);D.prototype.visible=!0;var tl=function(t,r){this.$from=t,this.$to=r},H=function(e){function t(n,o){o===void 0&&(o=n),e.call(this,n,o)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={$cursor:{configurable:!0}};return r.$cursor.get=function(){return this.$anchor.pos==this.$head.pos?this.$head:null},t.prototype.map=function(o,i){var s=o.resolve(i.map(this.head));if(!s.parent.inlineContent)return e.near(s);var a=o.resolve(i.map(this.anchor));return new t(a.parent.inlineContent?a:s,s)},t.prototype.replace=function(o,i){if(i===void 0&&(i=C.empty),e.prototype.replace.call(this,o,i),i==C.empty){var s=this.$from.marksAcross(this.$to);s&&o.ensureMarks(s)}},t.prototype.eq=function(o){return o instanceof t&&o.anchor==this.anchor&&o.head==this.head},t.prototype.getBookmark=function(){return new er(this.anchor,this.head)},t.prototype.toJSON=function(){return{type:"text",anchor:this.anchor,head:this.head}},t.fromJSON=function(o,i){if(typeof i.anchor!="number"||typeof i.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new t(o.resolve(i.anchor),o.resolve(i.head))},t.create=function(o,i,s){s===void 0&&(s=i);var a=o.resolve(i);return new this(a,s==i?a:o.resolve(s))},t.between=function(o,i,s){var a=o.pos-i.pos;if((!s||a)&&(s=a>=0?1:-1),!i.parent.inlineContent){var c=e.findFrom(i,s,!0)||e.findFrom(i,-s,!0);if(c)i=c.$head;else return e.near(i,s)}return o.parent.inlineContent||(a==0?o=i:(o=(e.findFrom(o,-s,!0)||e.findFrom(o,s,!0)).$anchor,o.pos0?0:1);o>0?s=0;s+=o){var a=t.child(s);if(a.isAtom){if(!i&&E.isSelectable(a))return E.create(e,r-(o<0?a.nodeSize:0))}else{var c=Be(e,a,r+o,o<0?a.childCount:0,o,i);if(c)return c}r+=a.nodeSize*o}}function Ei(e,t,r){var n=e.steps.length-1;if(!(n0},t.prototype.setStoredMarks=function(o){return this.storedMarks=o,this.updated|=Ir,this},t.prototype.ensureMarks=function(o){return P.sameSet(this.storedMarks||this.selection.$from.marks(),o)||this.setStoredMarks(o),this},t.prototype.addStoredMark=function(o){return this.ensureMarks(o.addToSet(this.storedMarks||this.selection.$head.marks()))},t.prototype.removeStoredMark=function(o){return this.ensureMarks(o.removeFromSet(this.storedMarks||this.selection.$head.marks()))},r.storedMarksSet.get=function(){return(this.updated&Ir)>0},t.prototype.addStep=function(o,i){e.prototype.addStep.call(this,o,i),this.updated=this.updated&~Ir,this.storedMarks=null},t.prototype.setTime=function(o){return this.time=o,this},t.prototype.replaceSelection=function(o){return this.selection.replace(this,o),this},t.prototype.replaceSelectionWith=function(o,i){var s=this.selection;return i!==!1&&(o=o.mark(this.storedMarks||(s.empty?s.$from.marks():s.$from.marksAcross(s.$to)||P.none))),s.replaceWith(this,o),this},t.prototype.deleteSelection=function(){return this.selection.replace(this),this},t.prototype.insertText=function(o,i,s){s===void 0&&(s=i);var a=this.doc.type.schema;if(i==null)return o?this.replaceSelectionWith(a.text(o),!0):this.deleteSelection();if(!o)return this.deleteRange(i,s);var c=this.storedMarks;if(!c){var l=this.doc.resolve(i);c=s==i?l.marks():l.marksAcross(this.doc.resolve(s))}return this.replaceRangeWith(i,s,a.text(o,c)),this.selection.empty||this.setSelection(D.near(this.selection.$to)),this},t.prototype.setMeta=function(o,i){return this.meta[typeof o=="string"?o:o.key]=i,this},t.prototype.getMeta=function(o){return this.meta[typeof o=="string"?o:o.key]},r.isGeneric.get=function(){for(var n in this.meta)return!1;return!0},t.prototype.scrollIntoView=function(){return this.updated|=Ii,this},r.scrolledIntoView.get=function(){return(this.updated&Ii)>0},Object.defineProperties(t.prototype,r),t}(X);function Ri(e,t){return!t||!e?e:e.bind(t)}var rr=function(t,r,n){this.name=t,this.init=Ri(r.init,n),this.apply=Ri(r.apply,n)},nl=[new rr("doc",{init:function(t){return t.doc||t.schema.topNodeType.createAndFill()},apply:function(t){return t.doc}}),new rr("selection",{init:function(t,r){return t.selection||D.atStart(r.doc)},apply:function(t){return t.selection}}),new rr("storedMarks",{init:function(t){return t.storedMarks||null},apply:function(t,r,n,o){return o.selection.$cursor?t.storedMarks:null}}),new rr("scrollToSelection",{init:function(){return 0},apply:function(t,r){return t.scrolledIntoView?r+1:r}})],An=function(t,r){var n=this;this.schema=t,this.fields=nl.concat(),this.plugins=[],this.pluginsByKey=Object.create(null),r&&r.forEach(function(o){if(n.pluginsByKey[o.key])throw new RangeError("Adding different instances of a keyed plugin ("+o.key+")");n.plugins.push(o),n.pluginsByKey[o.key]=o,o.spec.state&&n.fields.push(new rr(o.key,o.spec.state,o))})},mt=function(t){this.config=t},Rr={schema:{configurable:!0},plugins:{configurable:!0},tr:{configurable:!0}};Rr.schema.get=function(){return this.config.schema};Rr.plugins.get=function(){return this.config.plugins};mt.prototype.apply=function(t){return this.applyTransaction(t).state};mt.prototype.filterTransaction=function(t,r){r===void 0&&(r=-1);for(var n=0;n-1&&nr.splice(r,1)};Object.defineProperties(mt.prototype,Rr);var nr=[];function Pi(e,t,r){for(var n in e){var o=e[n];o instanceof Function?o=o.bind(t):n=="handleDOMEvents"&&(o=Pi(o,t,{})),r[n]=o}return r}var Rt=function(t){this.props={},t.props&&Pi(t.props,this,this.props),this.spec=t,this.key=t.key?t.key.key:Bi("plugin")};Rt.prototype.getState=function(t){return t[this.key]};var _n=Object.create(null);function Bi(e){return e in _n?e+"$"+ ++_n[e]:(_n[e]=0,e+"$")}var Wt=function(t){t===void 0&&(t="key"),this.key=Bi(t)};Wt.prototype.get=function(t){return t.config.pluginsByKey[this.key]};Wt.prototype.getState=function(t){return t[this.key]};var x={};if(typeof navigator!="undefined"&&typeof document!="undefined"){var Nn=/Edge\/(\d+)/.exec(navigator.userAgent),zi=/MSIE \d/.test(navigator.userAgent),En=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);x.mac=/Mac/.test(navigator.platform);var Dn=x.ie=!!(zi||En||Nn);x.ie_version=zi?document.documentMode||6:En?+En[1]:Nn?+Nn[1]:null,x.gecko=!Dn&&/gecko\/(\d+)/i.test(navigator.userAgent),x.gecko_version=x.gecko&&+(/Firefox\/(\d+)/.exec(navigator.userAgent)||[0,0])[1];var In=!Dn&&/Chrome\/(\d+)/.exec(navigator.userAgent);x.chrome=!!In,x.chrome_version=In&&+In[1],x.safari=!Dn&&/Apple Computer/.test(navigator.vendor),x.ios=x.safari&&(/Mobile\/\w+/.test(navigator.userAgent)||navigator.maxTouchPoints>2),x.android=/Android \d/.test(navigator.userAgent),x.webkit="webkitFontSmoothing"in document.documentElement.style,x.webkit_version=x.webkit&&+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]}var Pt=function(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t},Rn=function(e){var t=e.assignedSlot||e.parentNode;return t&&t.nodeType==11?t.host:t},Li=null,ne=function(e,t,r){var n=Li||(Li=document.createRange());return n.setEnd(e,r==null?e.nodeValue.length:r),n.setStart(e,t||0),n},Pr=function(e,t,r,n){return r&&(Fi(e,t,r,n,-1)||Fi(e,t,r,n,1))},ol=/^(img|br|input|textarea|hr)$/i;function Fi(e,t,r,n,o){for(;;){if(e==r&&t==n)return!0;if(t==(o<0?0:Kt(e))){var i=e.parentNode;if(i.nodeType!=1||sl(e)||ol.test(e.nodeName)||e.contentEditable=="false")return!1;t=Pt(e)+(o<0?0:1),e=i}else if(e.nodeType==1){if(e=e.childNodes[t+(o<0?-1:0)],e.contentEditable=="false")return!1;t=o<0?Kt(e):0}else return!1}}function Kt(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function il(e,t,r){for(var n=t==0,o=t==Kt(e);n||o;){if(e==r)return!0;var i=Pt(e);if(e=e.parentNode,!e)return!1;n=n&&i==0,o=o&&i==Kt(e)}}function sl(e){for(var t,r=e;r&&!(t=r.pmViewDesc);r=r.parentNode);return t&&t.node&&t.node.isBlock&&(t.dom==e||t.contentDOM==e)}var Pn=function(e){var t=e.isCollapsed;return t&&x.chrome&&e.rangeCount&&!e.getRangeAt(0).collapsed&&(t=!1),t};function ze(e,t){var r=document.createEvent("Event");return r.initEvent("keydown",!0,!0),r.keyCode=e,r.key=r.code=t,r}function al(e){return{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function ae(e,t){return typeof e=="number"?e:e[t]}function cl(e){var t=e.getBoundingClientRect(),r=t.width/e.offsetWidth||1,n=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*r,top:t.top,bottom:t.top+e.clientHeight*n}}function Vi(e,t,r){for(var n=e.someProp("scrollThreshold")||0,o=e.someProp("scrollMargin")||5,i=e.dom.ownerDocument,s=r||e.dom;s;s=Rn(s))if(s.nodeType==1){var a=s==i.body||s.nodeType!=1,c=a?al(i):cl(s),l=0,u=0;if(t.topc.bottom-ae(n,"bottom")&&(u=t.bottom-c.bottom+ae(o,"bottom")),t.leftc.right-ae(n,"right")&&(l=t.right-c.right+ae(o,"right")),l||u)if(a)i.defaultView.scrollBy(l,u);else{var f=s.scrollLeft,p=s.scrollTop;u&&(s.scrollTop+=u),l&&(s.scrollLeft+=l);var d=s.scrollLeft-f,h=s.scrollTop-p;t={left:t.left-d,top:t.top-h,right:t.right-d,bottom:t.bottom-h}}if(a)break}}function ll(e){for(var t=e.dom.getBoundingClientRect(),r=Math.max(0,t.top),n,o,i=(t.left+t.right)/2,s=r+1;s=r-20){n=a,o=c.top;break}}}return{refDOM:n,refTop:o,stack:Hi(e.dom)}}function Hi(e){for(var t=[],r=e.ownerDocument;e&&(t.push({dom:e,top:e.scrollTop,left:e.scrollLeft}),e!=r);e=Rn(e));return t}function ul(e){var t=e.refDOM,r=e.refTop,n=e.stack,o=t?t.getBoundingClientRect().top:0;ji(n,o==0?0:o-r)}function ji(e,t){for(var r=0;r=a){s=Math.max(p.bottom,s),a=Math.min(p.top,a);var d=p.left>t.left?p.left-t.left:p.right=(p.left+p.right)/2?1:0));continue}}!r&&(t.left>=p.right&&t.top>=p.top||t.left>=p.left&&t.top>=p.bottom)&&(i=l+1)}}return r&&r.nodeType==3?pl(r,o):!r||n&&r.nodeType==1?{node:e,offset:i}:qi(r,o)}function pl(e,t){for(var r=e.nodeValue.length,n=document.createRange(),o=0;o=(i.left+i.right)/2?1:0)}}return{node:e,offset:0}}function Bn(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function dl(e,t){var r=e.parentNode;return r&&/^li$/i.test(r.nodeName)&&t.left(a.left+a.right)/2?1:-1}return e.docView.posFromDOM(o,i,s)}function ml(e,t,r,n){for(var o=-1,i=t;i!=e.dom;){var s=e.docView.nearestDesc(i,!0);if(!s)return null;if(s.node.isBlock&&s.parent){var a=s.dom.getBoundingClientRect();if(a.left>n.left||a.top>n.top)o=s.posBefore;else if(a.right-1?o:e.docView.posFromDOM(t,r)}function Ji(e,t,r){var n=e.childNodes.length;if(n&&r.topt.top&&s++}i==e.dom&&s==i.childNodes.length-1&&i.lastChild.nodeType==1&&t.top>i.lastChild.getBoundingClientRect().bottom?u=e.state.doc.content.size:(s==0||i.nodeType!=1||i.childNodes[s-1].nodeName!="BR")&&(u=ml(e,i,s,t))}u==null&&(u=hl(e,l,t));var v=e.docView.nearestDesc(l,!0);return{pos:u,inside:v?v.posAtStart-v.border:-1}}function ce(e,t){var r=e.getClientRects();return r.length?r[t<0?0:r.length-1]:e.getBoundingClientRect()}var gl=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;function Wi(e,t,r){var n=e.docView.domFromPos(t,r<0?-1:1),o=n.node,i=n.offset,s=x.webkit||x.gecko;if(o.nodeType==3)if(s&&(gl.test(o.nodeValue)||(r<0?!i:i==o.nodeValue.length))){var a=ce(ne(o,i,i),r);if(x.gecko&&i&&/\s/.test(o.nodeValue[i-1])&&i=0&&i==o.nodeValue.length?(u--,p=1):r<0?u--:f++,or(ce(ne(o,u,f),p),p<0)}if(!e.state.doc.resolve(t).parent.inlineContent){if(i&&(r<0||i==Kt(o))){var d=o.childNodes[i-1];if(d.nodeType==1)return zn(d.getBoundingClientRect(),!1)}if(i=0)}if(i&&(r<0||i==Kt(o))){var v=o.childNodes[i-1],g=v.nodeType==3?ne(v,Kt(v)-(s?0:1)):v.nodeType==1&&(v.nodeName!="BR"||!v.nextSibling)?v:null;if(g)return or(ce(g,1),!1)}if(i=0)}function or(e,t){if(e.width==0)return e;var r=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:r,right:r}}function zn(e,t){if(e.height==0)return e;var r=t?e.top:e.bottom;return{top:r,bottom:r,left:e.left,right:e.right}}function Ki(e,t,r){var n=e.state,o=e.root.activeElement;n!=t&&e.updateState(t),o!=e.dom&&e.focus();try{return r()}finally{n!=t&&e.updateState(n),o!=e.dom&&o&&o.focus()}}function yl(e,t,r){var n=t.selection,o=r=="up"?n.$from:n.$to;return Ki(e,t,function(){for(var i=e.docView.domFromPos(o.pos,r=="up"?-1:1),s=i.node;;){var a=e.docView.nearestDesc(s,!0);if(!a)break;if(a.node.isBlock){s=a.dom;break}s=a.dom.parentNode}for(var c=Wi(e,o.pos,1),l=s.firstChild;l;l=l.nextSibling){var u=void 0;if(l.nodeType==1)u=l.getClientRects();else if(l.nodeType==3)u=ne(l,0,l.nodeValue.length).getClientRects();else continue;for(var f=0;fp.top&&(r=="up"?p.bottomc.bottom-1))return!1}}return!0})}var bl=/[\u0590-\u08ac]/;function kl(e,t,r){var n=t.selection,o=n.$head;if(!o.parent.isTextblock)return!1;var i=o.parentOffset,s=!i,a=i==o.parent.content.size,c=e.root.getSelection();return!bl.test(o.parent.textContent)||!c.modify?r=="left"||r=="backward"?s:a:Ki(e,t,function(){var l=c.getRangeAt(0),u=c.focusNode,f=c.focusOffset,p=c.caretBidiLevel;c.modify("move",r,"character");var d=o.depth?e.docView.domAfterPos(o.before()):e.dom,h=!d.contains(c.focusNode.nodeType==1?c.focusNode:c.focusNode.parentNode)||u==c.focusNode&&f==c.focusOffset;return c.removeAllRanges(),c.addRange(l),p!=null&&(c.caretBidiLevel=p),h})}var $i=null,Ui=null,Gi=!1;function Sl(e,t,r){return $i==t&&Ui==r?Gi:($i=t,Ui=r,Gi=r=="up"||r=="down"?yl(e,t,r):kl(e,t,r))}var Ft=0,Yi=1,ir=2,le=3,W=function(t,r,n,o){this.parent=t,this.children=r,this.dom=n,n.pmViewDesc=this,this.contentDOM=o,this.dirty=Ft},$t={beforePosition:{configurable:!0},size:{configurable:!0},border:{configurable:!0},posBefore:{configurable:!0},posAtStart:{configurable:!0},posAfter:{configurable:!0},posAtEnd:{configurable:!0},contentLost:{configurable:!0},domAtom:{configurable:!0}};W.prototype.matchesWidget=function(){return!1};W.prototype.matchesMark=function(){return!1};W.prototype.matchesNode=function(){return!1};W.prototype.matchesHack=function(t){return!1};$t.beforePosition.get=function(){return!1};W.prototype.parseRule=function(){return null};W.prototype.stopEvent=function(){return!1};$t.size.get=function(){for(var e=0,t=0;tPt(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))c=t.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(r==0)for(var l=t;;l=l.parentNode){if(l==this.dom){c=!1;break}if(l.parentNode.firstChild!=l)break}if(c==null&&r==t.childNodes.length)for(var u=t;;u=u.parentNode){if(u==this.dom){c=!0;break}if(u.parentNode.lastChild!=u)break}}return(c==null?n>0:c)?this.posAtEnd:this.posAtStart};W.prototype.nearestDesc=function(t,r){for(var n=!0,o=t;o;o=o.parentNode){var i=this.getDesc(o);if(i&&(!r||i.node))if(n&&i.nodeDOM&&!(i.nodeDOM.nodeType==1?i.nodeDOM.contains(t.nodeType==1?t:t.parentNode):i.nodeDOM==t))n=!1;else return i}};W.prototype.getDesc=function(t){for(var r=t.pmViewDesc,n=r;n;n=n.parent)if(n==this)return r};W.prototype.posFromDOM=function(t,r,n){for(var o=t;o;o=o.parentNode){var i=this.getDesc(o);if(i)return i.localPosFromDOM(t,r,n)}return-1};W.prototype.descAt=function(t){for(var r=0,n=0;r=t:a>t)&&(a>t||o+1>=this.children.length||!this.children[o+1].beforePosition))return s.domFromPos(t-n-s.border,r);n=a}};W.prototype.parseRange=function(t,r,n){if(n===void 0&&(n=0),this.children.length==0)return{node:this.contentDOM,from:t,to:r,fromOffset:0,toOffset:this.contentDOM.childNodes.length};for(var o=-1,i=-1,s=n,a=0;;a++){var c=this.children[a],l=s+c.size;if(o==-1&&t<=l){var u=s+c.border;if(t>=u&&r<=l-c.border&&c.node&&c.contentDOM&&this.contentDOM.contains(c.contentDOM))return c.parseRange(t,r,u);t=s;for(var f=a;f>0;f--){var p=this.children[f-1];if(p.size&&p.dom.parentNode==this.contentDOM&&!p.emptyChildAt(1)){o=Pt(p.dom)+1;break}t-=p.size}o==-1&&(o=0)}if(o>-1&&(l>r||a==this.children.length-1)){r=l;for(var d=a+1;dc&&sr){var F=f;f=p,p=F}var J=document.createRange();J.setEnd(p.node,p.offset),J.setStart(f.node,f.offset),d.removeAllRanges(),d.addRange(J)}}};W.prototype.ignoreMutation=function(t){return!this.contentDOM&&t.type!="selection"};$t.contentLost.get=function(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)};W.prototype.markDirty=function(t,r){for(var n=0,o=0;o=n:tn){var a=n+i.border,c=s-i.border;if(t>=a&&r<=c){this.dirty=t==n||r==s?ir:Yi,t==a&&r==c&&(i.contentLost||i.dom.parentNode!=this.contentDOM)?i.dirty=le:i.markDirty(t-a,r-a);return}else i.dirty=i.dom==i.contentDOM&&i.dom.parentNode==this.contentDOM?ir:le}n=s}this.dirty=ir};W.prototype.markParentsDirty=function(){for(var t=1,r=this.parent;r;r=r.parent,t++){var n=t==1?ir:Yi;r.dirty0&&(a=Hn(a,0,n,i));for(var l=0;l-1?l:null,f=l&&l.pos<0,p=new Bt(this,u&&u.node);_l(this.node,this.innerDeco,function(d,h,v){d.spec.marks?p.syncToMarks(d.spec.marks,a,o):d.type.side>=0&&!v&&p.syncToMarks(h==s.node.childCount?P.none:s.node.child(h).marks,a,o),p.placeWidget(d,o,c)},function(d,h,v,g){p.syncToMarks(d.marks,a,o);var M;p.findNodeMatch(d,h,v,g)||f&&o.state.selection.from>c&&o.state.selection.to-1&&p.updateNodeAt(d,h,v,M,o)||p.updateNextNode(d,h,v,o,g)||p.addNode(d,h,v,o,c),c+=d.nodeSize}),p.syncToMarks(ue,a,o),this.node.isTextblock&&p.addTextblockHacks(),p.destroyRest(),(p.changed||this.dirty==ir)&&(u&&this.protectLocalComposition(o,u),Zi(this.contentDOM,this.children,o),x.ios&&Nl(this.dom))},t.prototype.localCompositionInfo=function(o,i){var s=o.state.selection,a=s.from,c=s.to;if(!(!(o.state.selection instanceof H)||ai+this.node.content.size)){var l=o.root.getSelection(),u=El(l.focusNode,l.focusOffset);if(!(!u||!this.dom.contains(u.parentNode)))if(this.node.inlineContent){var f=u.nodeValue,p=Dl(this.node.content,f,a-i,c-i);return p<0?null:{node:u,pos:p,text:f}}else return{node:u,pos:-1}}},t.prototype.protectLocalComposition=function(o,i){var s=i.node,a=i.pos,c=i.text;if(!this.getDesc(s)){for(var l=s;l.parentNode!=this.contentDOM;l=l.parentNode){for(;l.previousSibling;)l.parentNode.removeChild(l.previousSibling);for(;l.nextSibling;)l.parentNode.removeChild(l.nextSibling);l.pmViewDesc&&(l.pmViewDesc=null)}var u=new xl(this,l,s,c);o.compositionNodes.push(u),this.children=Hn(this.children,a,a+c.length,o,u)}},t.prototype.update=function(o,i,s,a){return this.dirty==le||!o.sameMarkup(this.node)?!1:(this.updateInner(o,i,s,a),!0)},t.prototype.updateInner=function(o,i,s,a){this.updateOuterDeco(i),this.node=o,this.innerDeco=s,this.contentDOM&&this.updateChildren(a,this.posAtStart),this.dirty=Ft},t.prototype.updateOuterDeco=function(o){if(!Vn(o,this.outerDeco)){var i=this.nodeDOM.nodeType!=1,s=this.dom;this.dom=ts(this.dom,this.nodeDOM,Fn(this.outerDeco,this.node,i),Fn(o,this.node,i)),this.dom!=s&&(s.pmViewDesc=null,this.dom.pmViewDesc=this),this.outerDeco=o}},t.prototype.selectNode=function(){this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.dom.draggable=!0)},t.prototype.deselectNode=function(){this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.dom.removeAttribute("draggable")},r.domAtom.get=function(){return this.node.isAtom},Object.defineProperties(t.prototype,r),t}(W);function Xi(e,t,r,n,o){return es(n,t,e),new sr(null,e,t,r,n,n,n,o,0)}var Qi=function(e){function t(n,o,i,s,a,c,l){e.call(this,n,o,i,s,a,null,c,l)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={domAtom:{configurable:!0}};return t.prototype.parseRule=function(){for(var o=this.nodeDOM.parentNode;o&&o!=this.dom&&!o.pmIsDeco;)o=o.parentNode;return{skip:o||!0}},t.prototype.update=function(o,i,s,a){return this.dirty==le||this.dirty!=Ft&&!this.inParent()||!o.sameMarkup(this.node)?!1:(this.updateOuterDeco(i),(this.dirty!=Ft||o.text!=this.node.text)&&o.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=o.text,a.trackWrites==this.nodeDOM&&(a.trackWrites=null)),this.node=o,this.dirty=Ft,!0)},t.prototype.inParent=function(){for(var o=this.parent.contentDOM,i=this.nodeDOM;i;i=i.parentNode)if(i==o)return!0;return!1},t.prototype.domFromPos=function(o){return{node:this.nodeDOM,offset:o}},t.prototype.localPosFromDOM=function(o,i,s){return o==this.nodeDOM?this.posAtStart+Math.min(i,this.node.text.length):e.prototype.localPosFromDOM.call(this,o,i,s)},t.prototype.ignoreMutation=function(o){return o.type!="characterData"&&o.type!="selection"},t.prototype.slice=function(o,i,s){var a=this.node.cut(o,i),c=document.createTextNode(a.text);return new t(this.parent,a,this.outerDeco,this.innerDeco,c,c,s)},t.prototype.markDirty=function(o,i){e.prototype.markDirty.call(this,o,i),this.dom!=this.nodeDOM&&(o==0||i==this.nodeDOM.nodeValue.length)&&(this.dirty=le)},r.domAtom.get=function(){return!1},Object.defineProperties(t.prototype,r),t}(sr),Cl=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={domAtom:{configurable:!0}};return t.prototype.parseRule=function(){return{ignore:!0}},t.prototype.matchesHack=function(o){return this.dirty==Ft&&this.dom.nodeName==o},r.domAtom.get=function(){return!0},Object.defineProperties(t.prototype,r),t}(W),Ol=function(e){function t(r,n,o,i,s,a,c,l,u,f){e.call(this,r,n,o,i,s,a,c,u,f),this.spec=l}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.update=function(n,o,i,s){if(this.dirty==le)return!1;if(this.spec.update){var a=this.spec.update(n,o,i);return a&&this.updateInner(n,o,i,s),a}else return!this.contentDOM&&!n.isLeaf?!1:e.prototype.update.call(this,n,o,i,s)},t.prototype.selectNode=function(){this.spec.selectNode?this.spec.selectNode():e.prototype.selectNode.call(this)},t.prototype.deselectNode=function(){this.spec.deselectNode?this.spec.deselectNode():e.prototype.deselectNode.call(this)},t.prototype.setSelection=function(n,o,i,s){this.spec.setSelection?this.spec.setSelection(n,o,i):e.prototype.setSelection.call(this,n,o,i,s)},t.prototype.destroy=function(){this.spec.destroy&&this.spec.destroy(),e.prototype.destroy.call(this)},t.prototype.stopEvent=function(n){return this.spec.stopEvent?this.spec.stopEvent(n):!1},t.prototype.ignoreMutation=function(n){return this.spec.ignoreMutation?this.spec.ignoreMutation(n):e.prototype.ignoreMutation.call(this,n)},t}(sr);function Zi(e,t,r){for(var n=e.firstChild,o=!1,i=0;i>1,s=Math.min(i,t.length);o-1)a>this.index&&(this.changed=!0,this.destroyBetween(this.index,a)),this.top=this.top.children[this.index];else{var l=Ln.create(this.top,t[i],r,n);this.top.children.splice(this.index,0,l),this.top=l,this.changed=!0}this.index=0,i++}};Bt.prototype.findNodeMatch=function(t,r,n,o){var i=this.top.children,s=-1;if(o>=this.preMatch.index){for(var a=this.index;a0&&n>0;n--){var i=t[n-1],s=i.node;if(!!s){if(s!=e.child(r-1))break;--r,o.set(i,r)}}return{index:r,matched:o}}function Al(e,t){return e.type.side-t.type.side}function _l(e,t,r,n){var o=t.locals(e),i=0;if(o.length==0){for(var s=0;si;)l.push(o[c++]);var y=i+v.nodeSize;if(v.isText){var R=y;c0){if(e.childNodes.length>t&&e.childNodes[t].nodeType==3)return e.childNodes[t];e=e.childNodes[t-1],t=Kt(e)}else if(e.nodeType==1&&t=r){var u=c.lastIndexOf(t,n-a);if(u>=0&&u+t.length+a>=r)return a+u}}}return-1}function Hn(e,t,r,n,o){for(var i=[],s=0,a=0;s=r||u<=t?i.push(c):(lr&&i.push(c.slice(r-l,c.size,n)))}return i}function ns(e,t){var r=e.root.getSelection(),n=e.state.doc;if(!r.focusNode)return null;var o=e.docView.nearestDesc(r.focusNode),i=o&&o.size==0,s=e.docView.posFromDOM(r.focusNode,r.focusOffset);if(s<0)return null;var a=n.resolve(s),c,l;if(Pn(r)){for(c=a;o&&!o.node;)o=o.parent;if(o&&o.node.isAtom&&E.isSelectable(o.node)&&o.parent&&!(o.node.isInline&&il(r.focusNode,r.focusOffset,o.dom))){var u=o.posBefore;l=new E(s==u?a:n.resolve(u))}}else{var f=e.docView.posFromDOM(r.anchorNode,r.anchorOffset);if(f<0)return null;c=n.resolve(f)}if(!l){var p=t=="pointer"||e.state.selection.head0?n.max(o):n.min(o),s=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return s&&D.findFrom(s,t)}function xe(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function fs(e,t,r){var n=e.state.selection;if(n instanceof H){if(!n.empty||r.indexOf("s")>-1)return!1;if(e.endOfTextblock(t>0?"right":"left")){var o=Wn(e.state,t);return o&&o instanceof E?xe(e,o):!1}else if(!(x.mac&&r.indexOf("m")>-1)){var i=n.$head,s=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter,a;if(!s||s.isText)return!1;var c=t<0?i.pos-s.nodeSize:i.pos;return s.isAtom||(a=e.docView.descAt(c))&&!a.contentDOM?E.isSelectable(s)?xe(e,new E(t<0?e.state.doc.resolve(i.pos-s.nodeSize):i)):x.webkit?xe(e,new H(e.state.doc.resolve(t<0?c:c+s.nodeSize))):!1:!1}}else{if(n instanceof E&&n.node.isInline)return xe(e,new H(t>0?n.$to:n.$from));var l=Wn(e.state,t);return l?xe(e,l):!1}}function Br(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function cr(e){var t=e.pmViewDesc;return t&&t.size==0&&(e.nextSibling||e.nodeName!="BR")}function Kn(e){var t=e.root.getSelection(),r=t.focusNode,n=t.focusOffset;if(!!r){var o,i,s=!1;for(x.gecko&&r.nodeType==1&&n0){if(r.nodeType!=1)break;var a=r.childNodes[n-1];if(cr(a))o=r,i=--n;else if(a.nodeType==3)r=a,n=r.nodeValue.length;else break}else{if(ps(r))break;for(var c=r.previousSibling;c&&cr(c);)o=r.parentNode,i=Pt(c),c=c.previousSibling;if(c)r=c,n=Br(r);else{if(r=r.parentNode,r==e.dom)break;n=0}}s?Un(e,t,r,n):o&&Un(e,t,o,i)}}function $n(e){var t=e.root.getSelection(),r=t.focusNode,n=t.focusOffset;if(!!r){for(var o=Br(r),i,s;;)if(n-1||x.mac&&r.indexOf("m")>-1)return!1;var o=n.$from,i=n.$to;if(!o.parent.inlineContent||e.endOfTextblock(t<0?"up":"down")){var s=Wn(e.state,t);if(s&&s instanceof E)return xe(e,s)}if(!o.parent.inlineContent){var a=t<0?o:i,c=n instanceof re?D.near(a,t):D.findFrom(a,t);return c?xe(e,c):!1}return!1}function hs(e,t){if(!(e.state.selection instanceof H))return!0;var r=e.state.selection,n=r.$head,o=r.$anchor,i=r.empty;if(!n.sameParent(o))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?"forward":"backward"))return!0;var s=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(s&&!s.isText){var a=e.state.tr;return t<0?a.delete(n.pos-s.nodeSize,n.pos):a.delete(n.pos,n.pos+s.nodeSize),e.dispatch(a),!0}return!1}function ms(e,t,r){e.domObserver.stop(),t.contentEditable=r,e.domObserver.start()}function zl(e){if(!(!x.safari||e.state.selection.$head.parentOffset>0)){var t=e.root.getSelection(),r=t.focusNode,n=t.focusOffset;if(r&&r.nodeType==1&&n==0&&r.firstChild&&r.firstChild.contentEditable=="false"){var o=r.firstChild;ms(e,o,!0),setTimeout(function(){return ms(e,o,!1)},20)}}}function Ll(e){var t="";return e.ctrlKey&&(t+="c"),e.metaKey&&(t+="m"),e.altKey&&(t+="a"),e.shiftKey&&(t+="s"),t}function Fl(e,t){var r=t.keyCode,n=Ll(t);return r==8||x.mac&&r==72&&n=="c"?hs(e,-1)||Kn(e):r==46||x.mac&&r==68&&n=="c"?hs(e,1)||$n(e):r==13||r==27?!0:r==37?fs(e,-1,n)||Kn(e):r==39?fs(e,1,n)||$n(e):r==38?ds(e,-1,n)||Kn(e):r==40?zl(e)||ds(e,1,n)||$n(e):n==(x.mac?"m":"c")&&(r==66||r==73||r==89||r==90)}function Vl(e,t,r){var n=e.docView.parseRange(t,r),o=n.node,i=n.fromOffset,s=n.toOffset,a=n.from,c=n.to,l=e.root.getSelection(),u=null,f=l.anchorNode;if(f&&e.dom.contains(f.nodeType==1?f:f.parentNode)&&(u=[{node:f,offset:l.anchorOffset}],Pn(l)||u.push({node:l.focusNode,offset:l.focusOffset})),x.chrome&&e.lastKeyCode===8)for(var p=s;p>i;p--){var d=o.childNodes[p-1],h=d.pmViewDesc;if(d.nodeName=="BR"&&!h){s=p;break}if(!h||h.size)break}var v=e.state.doc,g=e.someProp("domParser")||Lt.fromSchema(e.state.schema),M=v.resolve(a),y=null,R=g.parse(o,{topNode:M.parent,topMatch:M.parent.contentMatchAt(M.index()),topOpen:!0,from:i,to:s,preserveWhitespace:M.parent.type.spec.code?"full":!0,editableContent:!0,findPositions:u,ruleFromNode:Hl,context:M});if(u&&u[0].pos!=null){var m=u[0].pos,I=u[1]&&u[1].pos;I==null&&(I=m),y={anchor:m+a,head:I+a}}return{doc:R,sel:y,from:a,to:c}}function Hl(e){var t=e.pmViewDesc;if(t)return t.parseRule();if(e.nodeName=="BR"&&e.parentNode){if(x.safari&&/^(ul|ol)$/i.test(e.parentNode.nodeName)){var r=document.createElement("div");return r.appendChild(document.createElement("li")),{skip:r}}else if(e.parentNode.lastChild==e||x.safari&&/^(tr|table)$/i.test(e.parentNode.nodeName))return{ignore:!0}}else if(e.nodeName=="IMG"&&e.getAttribute("mark-placeholder"))return{ignore:!0}}function jl(e,t,r,n,o){if(t<0){var i=e.lastSelectionTime>Date.now()-50?e.lastSelectionOrigin:null,s=ns(e,i);if(s&&!e.state.selection.eq(s)){var a=e.state.tr.setSelection(s);i=="pointer"?a.setMeta("pointer",!0):i=="key"&&a.scrollIntoView(),e.dispatch(a)}return}var c=e.state.doc.resolve(t),l=c.sharedDepth(r);t=c.before(l+1),r=e.state.doc.resolve(r).after(l+1);var u=e.state.selection,f=Vl(e,t,r);if(x.chrome&&e.cursorWrapper&&f.sel&&f.sel.anchor==e.cursorWrapper.deco.from){var p=e.cursorWrapper.deco.type.toDOM.nextSibling,d=p&&p.nodeValue?p.nodeValue.length:1;f.sel={anchor:f.sel.anchor+d,head:f.sel.anchor+d}}var h=e.state.doc,v=h.slice(f.from,f.to),g,M;e.lastKeyCode===8&&Date.now()-100Date.now()-225||x.android)&&o.some(function(Y){return Y.nodeName=="DIV"||Y.nodeName=="P"})&&e.someProp("handleKeyDown",function(Y){return Y(e,ze(13,"Enter"))})){e.lastIOSEnter=0;return}else{if(f.sel){var R=vs(e,e.state.doc,f.sel);R&&!R.eq(e.state.selection)&&e.dispatch(e.state.tr.setSelection(R))}return}e.domChangeCount++,e.state.selection.frome.state.selection.from&&y.start<=e.state.selection.from+2?y.start=e.state.selection.from:y.endA=e.state.selection.to-2&&(y.endB+=e.state.selection.to-y.endA,y.endA=e.state.selection.to)),x.ie&&x.ie_version<=11&&y.endB==y.start+1&&y.endA==y.start&&y.start>f.from&&f.doc.textBetween(y.start-f.from-1,y.start-f.from+1)==" \xA0"&&(y.start--,y.endA--,y.endB--);var m=f.doc.resolveNoCache(y.start-f.from),I=f.doc.resolveNoCache(y.endB-f.from),O=m.sameParent(I)&&m.parent.inlineContent,F;if((x.ios&&e.lastIOSEnter>Date.now()-225&&(!O||o.some(function(Y){return Y.nodeName=="DIV"||Y.nodeName=="P"}))||!O&&m.posy.start&&Jl(h,y.start,y.endA,m,I)&&e.someProp("handleKeyDown",function(Y){return Y(e,ze(8,"Backspace"))})){x.android&&x.chrome&&e.domObserver.suppressSelectionUpdates();return}x.chrome&&x.android&&y.toB==y.from&&(e.lastAndroidDelete=Date.now()),x.android&&!O&&m.start()!=I.start()&&I.parentOffset==0&&m.depth==I.depth&&f.sel&&f.sel.anchor==f.sel.head&&f.sel.head==y.endA&&(y.endB-=2,I=f.doc.resolveNoCache(y.endB-f.from),setTimeout(function(){e.someProp("handleKeyDown",function(Y){return Y(e,ze(13,"Enter"))})},20));var J=y.start,U=y.endA,T,Qt,rt,ut;if(O){if(m.pos==I.pos)x.ie&&x.ie_version<=11&&m.parentOffset==0&&(e.domObserver.suppressSelectionUpdates(),setTimeout(function(){return fe(e)},20)),T=e.state.tr.delete(J,U),Qt=h.resolve(y.start).marksAcross(h.resolve(y.endA));else if(y.endA==y.endB&&(ut=h.resolve(y.start))&&(rt=ql(m.parent.content.cut(m.parentOffset,I.parentOffset),ut.parent.content.cut(ut.parentOffset,y.endA-ut.start()))))T=e.state.tr,rt.type=="add"?T.addMark(J,U,rt.mark):T.removeMark(J,U,rt.mark);else if(m.parent.child(m.index()).isText&&m.index()==I.index()-(I.textOffset?0:1)){var qt=m.parent.textBetween(m.parentOffset,I.parentOffset);if(e.someProp("handleTextInput",function(Y){return Y(e,J,U,qt)}))return;T=e.state.tr.insertText(qt,J,U)}}if(T||(T=e.state.tr.replace(J,U,f.doc.slice(y.start-f.from,y.endB-f.from))),f.sel){var G=vs(e,T.doc,f.sel);G&&!(x.chrome&&x.android&&e.composing&&G.empty&&(y.start!=y.endB||e.lastAndroidDeletet.content.size?null:qn(e,t.resolve(r.anchor),t.resolve(r.head))}function ql(e,t){for(var r=e.firstChild.marks,n=t.firstChild.marks,o=r,i=n,s,a,c,l=0;lr||Gn(s,!0,!1)0&&(t||e.indexAfter(n)==e.node(n).childCount);)n--,o++,t=!1;if(r)for(var i=e.node(n).maybeChild(e.indexAfter(n));i&&!i.isLeaf;)i=i.firstChild,o++;return o}function Wl(e,t,r,n,o){var i=e.findDiffStart(t,r);if(i==null)return null;var s=e.findDiffEnd(t,r+e.size,r+t.size),a=s.a,c=s.b;if(o=="end"){var l=Math.max(0,i-Math.min(a,c));n-=a+l-i}if(a=a?i-n:0;i-=u,c=i+(c-a),a=i}else if(c=c?i-n:0;i-=f,a=i+(a-c),c=i}return{start:i,endA:a,endB:c}}function gs(e,t){for(var r=[],n=t.content,o=t.openStart,i=t.openEnd;o>1&&i>1&&n.childCount==1&&n.firstChild.childCount==1;){o--,i--;var s=n.firstChild;r.push(s.type.name,s.attrs!=s.type.defaultAttrs?s.attrs:null),n=s.content}var a=e.someProp("clipboardSerializer")||ot.fromSchema(e.state.schema),c=Cs(),l=c.createElement("div");l.appendChild(a.serializeFragment(n,{document:c}));for(var u=l.firstChild,f;u&&u.nodeType==1&&(f=Ms[u.nodeName.toLowerCase()]);){for(var p=f.length-1;p>=0;p--){for(var d=c.createElement(f[p]);l.firstChild;)d.appendChild(l.firstChild);l.appendChild(d),f[p]!="tbody"&&(o++,i++)}u=l.firstChild}u&&u.nodeType==1&&u.setAttribute("data-pm-slice",o+" "+i+" "+JSON.stringify(r));var h=e.someProp("clipboardTextSerializer",function(v){return v(t)})||t.content.textBetween(0,t.content.size,` - -`);return{dom:l,text:h}}function ys(e,t,r,n,o){var i,s=o.parent.type.spec.code,a;if(!r&&!t)return null;var c=t&&(n||s||!r);if(c){if(e.someProp("transformPastedText",function(M){t=M(t,s||n)}),s)return new C(k.from(e.state.schema.text(t.replace(/\r\n?/g,` -`))),0,0);var l=e.someProp("clipboardTextParser",function(M){return M(t,o,n)});if(l)a=l;else{var u=o.marks(),f=e.state,p=f.schema,d=ot.fromSchema(p);i=document.createElement("div"),t.trim().split(/(?:\r\n?|\n)+/).forEach(function(M){i.appendChild(document.createElement("p")).appendChild(d.serializeNode(p.text(M,u)))})}}else e.someProp("transformPastedHTML",function(M){r=M(r)}),i=Ul(r),x.webkit&&Gl(i);var h=i&&i.querySelector("[data-pm-slice]"),v=h&&/^(\d+) (\d+) (.*)/.exec(h.getAttribute("data-pm-slice"));if(!a){var g=e.someProp("clipboardParser")||e.someProp("domParser")||Lt.fromSchema(e.state.schema);a=g.parseSlice(i,{preserveWhitespace:!!(c||v),context:o})}return v?a=Yl($l(a,+v[1],+v[2]),v[3]):a=C.maxOpen(Kl(a.content,o),!1),e.someProp("transformPasted",function(M){a=M(a)}),a}function Kl(e,t){if(e.childCount<2)return e;for(var r=function(i){var s=t.node(i),a=s.contentMatchAt(t.index(i)),c=void 0,l=[];if(e.forEach(function(u){if(!!l){var f=a.findWrapping(u.type),p;if(!f)return l=null;if(p=l.length&&c.length&&ks(f,c,u,l[l.length-1],0))l[l.length-1]=p;else{l.length&&(l[l.length-1]=Ss(l[l.length-1],c.length));var d=bs(u,f);l.push(d),a=a.matchType(d.type,d.attrs),c=f}}}),l)return{v:k.from(l)}},n=t.depth;n>=0;n--){var o=r(n);if(o)return o.v}return e}function bs(e,t,r){r===void 0&&(r=0);for(var n=t.length-1;n>=r;n--)e=t[n].create(null,k.from(e));return e}function ks(e,t,r,n,o){if(o=r&&(a=t<0?s.contentMatchAt(0).fillBefore(a,e.childCount>1||i<=o).append(a):a.append(s.contentMatchAt(s.childCount).fillBefore(k.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,s.copy(a))}function $l(e,t,r){return t]*>)*/.exec(e);t&&(e=e.slice(t[0].length));var r=Cs().createElement("div"),n=/<([a-z][^>\s]+)/i.exec(e),o;if((o=n&&Ms[n[1].toLowerCase()])&&(e=o.map(function(s){return"<"+s+">"}).join("")+e+o.map(function(s){return""}).reverse().join("")),r.innerHTML=e,o)for(var i=0;i=0;a-=2){var c=r.nodes[n[a]];if(!c||c.hasRequiredAttrs())break;o=k.from(c.create(n[a+1],o)),i++,s++}return new C(o,i,s)}var Xl={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Xn=x.ie&&x.ie_version<=11,Qn=function(){this.anchorNode=this.anchorOffset=this.focusNode=this.focusOffset=null};Qn.prototype.set=function(t){this.anchorNode=t.anchorNode,this.anchorOffset=t.anchorOffset,this.focusNode=t.focusNode,this.focusOffset=t.focusOffset};Qn.prototype.eq=function(t){return t.anchorNode==this.anchorNode&&t.anchorOffset==this.anchorOffset&&t.focusNode==this.focusNode&&t.focusOffset==this.focusOffset};var Nt=function(t,r){var n=this;this.view=t,this.handleDOMChange=r,this.queue=[],this.flushingSoon=-1,this.observer=window.MutationObserver&&new window.MutationObserver(function(o){for(var i=0;is.target.nodeValue.length})?n.flushSoon():n.flush()}),this.currentSelection=new Qn,Xn&&(this.onCharData=function(o){n.queue.push({target:o.target,type:"characterData",oldValue:o.prevValue}),n.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.suppressingSelectionUpdates=!1};Nt.prototype.flushSoon=function(){var t=this;this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(function(){t.flushingSoon=-1,t.flush()},20))};Nt.prototype.forceFlush=function(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())};Nt.prototype.start=function(){this.observer&&this.observer.observe(this.view.dom,Xl),Xn&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()};Nt.prototype.stop=function(){var t=this;if(this.observer){var r=this.observer.takeRecords();if(r.length){for(var n=0;n-1)){var t=this.observer?this.observer.takeRecords():[];this.queue.length&&(t=this.queue.concat(t),this.queue.length=0);var r=this.view.root.getSelection(),n=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&Jn(this.view)&&!this.ignoreSelectionChange(r),o=-1,i=-1,s=!1,a=[];if(this.view.editable)for(var c=0;c1){var u=a.filter(function(d){return d.nodeName=="BR"});if(u.length==2){var f=u[0],p=u[1];f.parentNode&&f.parentNode.parentNode==p.parentNode?p.remove():f.remove()}}(o>-1||n)&&(o>-1&&(this.view.docView.markDirty(o,i),Ql(this.view)),this.handleDOMChange(o,i,s,a),this.view.docView.dirty?this.view.updateState(this.view.state):this.currentSelection.eq(r)||fe(this.view),this.currentSelection.set(r))}};Nt.prototype.registerMutation=function(t,r){if(r.indexOf(t.target)>-1)return null;var n=this.view.docView.nearestDesc(t.target);if(t.type=="attributes"&&(n==this.view.docView||t.attributeName=="contenteditable"||t.attributeName=="style"&&!t.oldValue&&!t.target.getAttribute("style"))||!n||n.ignoreMutation(t))return null;if(t.type=="childList"){for(var o=0;oi.depth?u(e,r,i.nodeAfter,i.before(l),o,!0):u(e,r,i.node(l),i.before(l),o,!1)}))return{v:!0}},a=i.depth+1;a>0;a--){var c=s(a);if(c)return c.v}return!1}function Fe(e,t,r){e.focused||e.focus();var n=e.state.tr.setSelection(t);r=="pointer"&&n.setMeta("pointer",!0),e.dispatch(n)}function ou(e,t){if(t==-1)return!1;var r=e.state.doc.resolve(t),n=r.nodeAfter;return n&&n.isAtom&&E.isSelectable(n)?(Fe(e,new E(r),"pointer"),!0):!1}function iu(e,t){if(t==-1)return!1;var r=e.state.selection,n,o;r instanceof E&&(n=r.node);for(var i=e.state.doc.resolve(t),s=i.depth+1;s>0;s--){var a=s>i.depth?i.nodeAfter:i.node(s);if(E.isSelectable(a)){n&&r.$from.depth>0&&s>=r.$from.depth&&i.before(r.$from.depth+1)==r.$from.pos?o=i.before(r.$from.depth):o=i.before(s);break}}return o!=null?(Fe(e,E.create(e.state.doc,o),"pointer"),!0):!1}function su(e,t,r,n,o){return eo(e,"handleClickOn",t,r,n)||e.someProp("handleClick",function(i){return i(e,t,n)})||(o?iu(e,r):ou(e,r))}function au(e,t,r,n){return eo(e,"handleDoubleClickOn",t,r,n)||e.someProp("handleDoubleClick",function(o){return o(e,t,n)})}function cu(e,t,r,n){return eo(e,"handleTripleClickOn",t,r,n)||e.someProp("handleTripleClick",function(o){return o(e,t,n)})||lu(e,r,n)}function lu(e,t,r){if(r.button!=0)return!1;var n=e.state.doc;if(t==-1)return n.inlineContent?(Fe(e,H.create(n,0,n.content.size),"pointer"),!0):!1;for(var o=n.resolve(t),i=o.depth+1;i>0;i--){var s=i>o.depth?o.nodeAfter:o.node(i),a=o.before(i);if(s.inlineContent)Fe(e,H.create(n,a+1,a+1+s.content.size),"pointer");else if(E.isSelectable(s))Fe(e,E.create(n,a),"pointer");else continue;return!0}}function ro(e){return Fr(e)}var ws=x.mac?"metaKey":"ctrlKey";Ct.mousedown=function(e,t){e.shiftKey=t.shiftKey;var r=ro(e),n=Date.now(),o="singleClick";n-e.lastClick.time<500&&nu(t,e.lastClick)&&!t[ws]&&(e.lastClick.type=="singleClick"?o="doubleClick":e.lastClick.type=="doubleClick"&&(o="tripleClick")),e.lastClick={time:n,x:t.clientX,y:t.clientY,type:o};var i=e.posAtCoords(zr(t));!i||(o=="singleClick"?(e.mouseDown&&e.mouseDown.done(),e.mouseDown=new Lr(e,i,t,r)):(o=="doubleClick"?au:cu)(e,i.pos,i.inside,t)?t.preventDefault():Ce(e,"pointer"))};var Lr=function(t,r,n,o){var i=this;this.view=t,this.startDoc=t.state.doc,this.pos=r,this.event=n,this.flushed=o,this.selectNode=n[ws],this.allowDefault=n.shiftKey,this.delayedSelectionSync=!1;var s,a;if(r.inside>-1)s=t.state.doc.nodeAt(r.inside),a=r.inside;else{var c=t.state.doc.resolve(r.pos);s=c.parent,a=c.depth?c.before():0}this.mightDrag=null;var l=o?null:n.target,u=l?t.docView.nearestDesc(l,!0):null;this.target=u?u.dom:null;var f=t.state,p=f.selection;(n.button==0&&s.type.spec.draggable&&s.type.spec.selectable!==!1||p instanceof E&&p.from<=a&&p.to>a)&&(this.mightDrag={node:s,pos:a,addAttr:this.target&&!this.target.draggable,setUneditable:this.target&&x.gecko&&!this.target.hasAttribute("contentEditable")}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(function(){i.view.mouseDown==i&&i.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),t.root.addEventListener("mouseup",this.up=this.up.bind(this)),t.root.addEventListener("mousemove",this.move=this.move.bind(this)),Ce(t,"pointer")};Lr.prototype.done=function(){var t=this;this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(function(){return fe(t.view)}),this.view.mouseDown=null};Lr.prototype.up=function(t){if(this.done(),!!this.view.dom.contains(t.target.nodeType==3?t.target.parentNode:t.target)){var r=this.pos;this.view.state.doc!=this.startDoc&&(r=this.view.posAtCoords(zr(t))),this.allowDefault||!r?Ce(this.view,"pointer"):su(this.view,r.pos,r.inside,t,this.selectNode)?t.preventDefault():t.button==0&&(this.flushed||x.safari&&this.mightDrag&&!this.mightDrag.node.isAtom||x.chrome&&!(this.view.state.selection instanceof H)&&Math.min(Math.abs(r.pos-this.view.state.selection.from),Math.abs(r.pos-this.view.state.selection.to))<=2)?(Fe(this.view,D.near(this.view.state.doc.resolve(r.pos)),"pointer"),t.preventDefault()):Ce(this.view,"pointer")}};Lr.prototype.move=function(t){!this.allowDefault&&(Math.abs(this.event.x-t.clientX)>4||Math.abs(this.event.y-t.clientY)>4)&&(this.allowDefault=!0),Ce(this.view,"pointer"),t.buttons==0&&this.done()};Ct.touchdown=function(e){ro(e),Ce(e,"pointer")};Ct.contextmenu=function(e){return ro(e)};function Ts(e,t){return e.composing?!0:x.safari&&Math.abs(t.timeStamp-e.compositionEndedAt)<500?(e.compositionEndedAt=-2e8,!0):!1}var uu=x.android?5e3:-1;kt.compositionstart=kt.compositionupdate=function(e){if(!e.composing){e.domObserver.flush();var t=e.state,r=t.selection.$from;if(t.selection.empty&&(t.storedMarks||!r.textOffset&&r.parentOffset&&r.nodeBefore.marks.some(function(a){return a.type.spec.inclusive===!1})))e.markCursor=e.state.storedMarks||r.marks(),Fr(e,!0),e.markCursor=null;else if(Fr(e),x.gecko&&t.selection.empty&&r.parentOffset&&!r.textOffset&&r.nodeBefore.marks.length)for(var n=e.root.getSelection(),o=n.focusNode,i=n.focusOffset;o&&o.nodeType==1&&i!=0;){var s=i<0?o.lastChild:o.childNodes[i-1];if(!s)break;if(s.nodeType==3){n.collapse(s,s.nodeValue.length);break}else o=s,i=-1}e.composing=!0}As(e,uu)};kt.compositionend=function(e,t){e.composing&&(e.composing=!1,e.compositionEndedAt=t.timeStamp,As(e,20))};function As(e,t){clearTimeout(e.composingTimeout),t>-1&&(e.composingTimeout=setTimeout(function(){return Fr(e)},t))}function _s(e){for(e.composing&&(e.composing=!1,e.compositionEndedAt=fu());e.compositionNodes.length>0;)e.compositionNodes.pop().markParentsDirty()}function fu(){var e=document.createEvent("Event");return e.initEvent("event",!0,!0),e.timeStamp}function Fr(e,t){if(e.domObserver.forceFlush(),_s(e),t||e.docView.dirty){var r=ns(e);return r&&!r.eq(e.state.selection)?e.dispatch(e.state.tr.setSelection(r)):e.updateState(e.state),!0}return!1}function pu(e,t){if(!!e.dom.parentNode){var r=e.dom.parentNode.appendChild(document.createElement("div"));r.appendChild(t),r.style.cssText="position: fixed; left: -10000px; top: 10px";var n=getSelection(),o=document.createRange();o.selectNodeContents(t),e.dom.blur(),n.removeAllRanges(),n.addRange(o),setTimeout(function(){r.parentNode&&r.parentNode.removeChild(r),e.focus()},50)}}var Ve=x.ie&&x.ie_version<15||x.ios&&x.webkit_version<604;Ct.copy=kt.cut=function(e,t){var r=e.state.selection,n=t.type=="cut";if(!r.empty){var o=Ve?null:t.clipboardData,i=r.content(),s=gs(e,i),a=s.dom,c=s.text;o?(t.preventDefault(),o.clearData(),o.setData("text/html",a.innerHTML),o.setData("text/plain",c)):pu(e,a),n&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))}};function du(e){return e.openStart==0&&e.openEnd==0&&e.content.childCount==1?e.content.firstChild:null}function hu(e,t){if(!!e.dom.parentNode){var r=e.shiftKey||e.state.selection.$from.parent.type.spec.code,n=e.dom.parentNode.appendChild(document.createElement(r?"textarea":"div"));r||(n.contentEditable="true"),n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(function(){e.focus(),n.parentNode&&n.parentNode.removeChild(n),r?no(e,n.value,null,t):no(e,n.textContent,n.innerHTML,t)},50)}}function no(e,t,r,n){var o=ys(e,t,r,e.shiftKey,e.state.selection.$from);if(e.someProp("handlePaste",function(a){return a(e,n,o||C.empty)}))return!0;if(!o)return!1;var i=du(o),s=i?e.state.tr.replaceSelectionWith(i,e.shiftKey):e.state.tr.replaceSelection(o);return e.dispatch(s.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}kt.paste=function(e,t){var r=Ve?null:t.clipboardData;r&&no(e,r.getData("text/plain"),r.getData("text/html"),t)?t.preventDefault():hu(e,t)};var mu=function(t,r){this.slice=t,this.move=r},Ns=x.mac?"altKey":"ctrlKey";Ct.dragstart=function(e,t){var r=e.mouseDown;if(r&&r.done(),!!t.dataTransfer){var n=e.state.selection,o=n.empty?null:e.posAtCoords(zr(t));if(!(o&&o.pos>=n.from&&o.pos<=(n instanceof E?n.to-1:n.to))){if(r&&r.mightDrag)e.dispatch(e.state.tr.setSelection(E.create(e.state.doc,r.mightDrag.pos)));else if(t.target&&t.target.nodeType==1){var i=e.docView.nearestDesc(t.target,!0);i&&i.node.type.spec.draggable&&i!=e.docView&&e.dispatch(e.state.tr.setSelection(E.create(e.state.doc,i.posBefore)))}}var s=e.state.selection.content(),a=gs(e,s),c=a.dom,l=a.text;t.dataTransfer.clearData(),t.dataTransfer.setData(Ve?"Text":"text/html",c.innerHTML),t.dataTransfer.effectAllowed="copyMove",Ve||t.dataTransfer.setData("text/plain",l),e.dragging=new mu(s,!t[Ns])}};Ct.dragend=function(e){var t=e.dragging;window.setTimeout(function(){e.dragging==t&&(e.dragging=null)},50)};kt.dragover=kt.dragenter=function(e,t){return t.preventDefault()};kt.drop=function(e,t){var r=e.dragging;if(e.dragging=null,!!t.dataTransfer){var n=e.posAtCoords(zr(t));if(!!n){var o=e.state.doc.resolve(n.pos);if(!!o){var i=r&&r.slice;i?e.someProp("transformPasted",function(h){i=h(i)}):i=ys(e,t.dataTransfer.getData(Ve?"Text":"text/plain"),Ve?null:t.dataTransfer.getData("text/html"),!1,o);var s=r&&!t[Ns];if(e.someProp("handleDrop",function(h){return h(e,t,i||C.empty,s)})){t.preventDefault();return}if(!!i){t.preventDefault();var a=i?Oi(e.state.doc,o.pos,i):o.pos;a==null&&(a=o.pos);var c=e.state.tr;s&&c.deleteSelection();var l=c.mapping.map(a),u=i.openStart==0&&i.openEnd==0&&i.content.childCount==1,f=c.doc;if(u?c.replaceRangeWith(l,l,i.content.firstChild):c.replaceRange(l,l,i),!c.doc.eq(f)){var p=c.doc.resolve(l);if(u&&E.isSelectable(i.content.firstChild)&&p.nodeAfter&&p.nodeAfter.sameMarkup(i.content.firstChild))c.setSelection(new E(p));else{var d=c.mapping.map(a);c.mapping.maps[c.mapping.maps.length-1].forEach(function(h,v,g,M){return d=M}),c.setSelection(qn(e,p,c.doc.resolve(d)))}e.focus(),e.dispatch(c.setMeta("uiEvent","drop"))}}}}}};Ct.focus=function(e){e.focused||(e.domObserver.stop(),e.dom.classList.add("ProseMirror-focused"),e.domObserver.start(),e.focused=!0,setTimeout(function(){e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.root.getSelection())&&fe(e)},20))};Ct.blur=function(e,t){e.focused&&(e.domObserver.stop(),e.dom.classList.remove("ProseMirror-focused"),e.domObserver.start(),t.relatedTarget&&e.dom.contains(t.relatedTarget)&&e.domObserver.currentSelection.set({}),e.focused=!1)};Ct.beforeinput=function(e,t){if(x.chrome&&x.android&&t.inputType=="deleteContentBackward"){var r=e.domChangeCount;setTimeout(function(){if(e.domChangeCount==r&&(e.dom.blur(),e.focus(),!e.someProp("handleKeyDown",function(i){return i(e,ze(8,"Backspace"))}))){var n=e.state.selection,o=n.$cursor;o&&o.pos>0&&e.dispatch(e.state.tr.delete(o.pos-1,o.pos).scrollIntoView())}},50)}};for(var Es in kt)Ct[Es]=kt[Es];function lr(e,t){if(e==t)return!0;for(var r in e)if(e[r]!==t[r])return!1;for(var n in t)if(!(n in e))return!1;return!0}var ur=function(t,r){this.spec=r||Oe,this.side=this.spec.side||0,this.toDOM=t};ur.prototype.map=function(t,r,n,o){var i=t.mapResult(r.from+o,this.side<0?-1:1),s=i.pos,a=i.deleted;return a?null:new nt(s-n,s-n,this)};ur.prototype.valid=function(){return!0};ur.prototype.eq=function(t){return this==t||t instanceof ur&&(this.spec.key&&this.spec.key==t.spec.key||this.toDOM==t.toDOM&&lr(this.spec,t.spec))};var Vt=function(t,r){this.spec=r||Oe,this.attrs=t};Vt.prototype.map=function(t,r,n,o){var i=t.map(r.from+o,this.spec.inclusiveStart?-1:1)-n,s=t.map(r.to+o,this.spec.inclusiveEnd?1:-1)-n;return i>=s?null:new nt(i,s,this)};Vt.prototype.valid=function(t,r){return r.from=t&&(!i||i(a.spec))&&n.push(a.copy(a.from+o,a.to+o))}for(var c=0;ct){var l=this.children[c]+1;this.children[c+2].findInner(t-l,r-l,n,o+l,i)}};q.prototype.map=function(t,r,n){return this==st||t.maps.length==0?this:this.mapInner(t,r,0,0,n||Oe)};q.prototype.mapInner=function(t,r,n,o,i){for(var s,a=0;aa&&u.to=t){this.children[i]==t&&(n=this.children[i+2]);break}for(var s=t+1,a=s+r.content.size,c=0;cs&&l.type instanceof Vt){var u=Math.max(s,l.from)-s,f=Math.min(a,l.to)-s;uY+i||(rt>=a[G]+i?a[G+1]=-1:ut>=o&&(oe=qt-ut-(rt-Qt))&&(a[G]+=oe,a[G+1]+=oe))}},l=0;l=n.content.size){u=!0;continue}var h=r.map(e[f+1]+i,-1),v=h-o,g=n.content.findIndex(d),M=g.index,y=g.offset,R=n.maybeChild(M);if(R&&y==d&&y+R.nodeSize==v){var m=a[f+2].mapInner(r,R,p+1,e[f]+i+1,s);m!=st?(a[f]=d,a[f+1]=v,a[f+2]=m):(a[f+1]=-2,u=!0)}else u=!0}if(u){var I=gu(a,e,t||[],r,o,i,s),O=Hr(I,n,0,s);t=O.local;for(var F=0;Fr&&s.to0;)t++;e.splice(t,0,r)}function so(e){var t=[];return e.someProp("decorations",function(r){var n=r(e.state);n&&n!=st&&t.push(n)}),e.cursorWrapper&&t.push(q.create(e.state.doc,[e.cursorWrapper.deco])),zt.from(t)}var Z=function(t,r){this._props=r,this.state=r.state,this.dispatch=this.dispatch.bind(this),this._root=null,this.focused=!1,this.trackWrites=null,this.dom=t&&t.mount||document.createElement("div"),t&&(t.appendChild?t.appendChild(this.dom):t.apply?t(this.dom):t.mount&&(this.mounted=!0)),this.editable=Ls(this),this.markCursor=null,this.cursorWrapper=null,zs(this),this.nodeViews=Fs(this),this.docView=Xi(this.state.doc,Bs(this),so(this),this.dom,this),this.lastSelectedViewDesc=null,this.dragging=null,Zl(this),this.pluginViews=[],this.updatePluginViews()},ao={props:{configurable:!0},root:{configurable:!0}};ao.props.get=function(){if(this._props.state!=this.state){var e=this._props;this._props={};for(var t in e)this._props[t]=e[t];this._props.state=this.state}return this._props};Z.prototype.update=function(t){t.handleDOMEvents!=this._props.handleDOMEvents&&Zn(this),this._props=t,this.updateStateInner(t.state,!0)};Z.prototype.setProps=function(t){var r={};for(var n in this._props)r[n]=this._props[n];r.state=this.state;for(var o in t)r[o]=t[o];this.update(r)};Z.prototype.updateState=function(t){this.updateStateInner(t,this.state.plugins!=t.plugins)};Z.prototype.updateStateInner=function(t,r){var n=this,o=this.state,i=!1,s=!1;if(t.storedMarks&&this.composing&&(_s(this),s=!0),this.state=t,r){var a=Fs(this);bu(a,this.nodeViews)&&(this.nodeViews=a,i=!0),Zn(this)}this.editable=Ls(this),zs(this);var c=so(this),l=Bs(this),u=r?"reset":t.scrollToSelection>o.scrollToSelection?"to selection":"preserve",f=i||!this.docView.matchesNode(t.doc,l,c);(f||!t.selection.eq(o.selection))&&(s=!0);var p=u=="preserve"&&s&&this.dom.style.overflowAnchor==null&&ll(this);if(s){this.domObserver.stop();var d=f&&(x.ie||x.chrome)&&!this.composing&&!o.selection.empty&&!t.selection.empty&&yu(o.selection,t.selection);if(f){var h=x.chrome?this.trackWrites=this.root.getSelection().focusNode:null;(i||!this.docView.update(t.doc,l,c,this))&&(this.docView.updateOuterDeco([]),this.docView.destroy(),this.docView=Xi(t.doc,l,c,this.dom,this)),h&&!this.trackWrites&&(d=!0)}d||!(this.mouseDown&&this.domObserver.currentSelection.eq(this.root.getSelection())&&Bl(this))?fe(this,d):(ls(this,t.selection),this.domObserver.setCurSelection()),this.domObserver.start()}if(this.updatePluginViews(o),u=="reset")this.dom.scrollTop=0;else if(u=="to selection"){var v=this.root.getSelection().focusNode;this.someProp("handleScrollToSelection",function(g){return g(n)})||(t.selection instanceof E?Vi(this,this.docView.domAfterPos(t.selection.from).getBoundingClientRect(),v):Vi(this,this.coordsAtPos(t.selection.head,1),v))}else p&&ul(p)};Z.prototype.destroyPluginViews=function(){for(var t;t=this.pluginViews.pop();)t.destroy&&t.destroy()};Z.prototype.updatePluginViews=function(t){if(!t||t.plugins!=this.state.plugins){this.destroyPluginViews();for(var r=0;r",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},Vs=typeof navigator!="undefined"&&/Chrome\/(\d+)/.exec(navigator.userAgent),ku=typeof navigator!="undefined"&&/Apple Computer/.test(navigator.vendor),Su=typeof navigator!="undefined"&&/Gecko\/\d+/.test(navigator.userAgent),Hs=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),Mu=typeof navigator!="undefined"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),xu=Vs&&(Hs||+Vs[1]<57)||Su&&Hs;for(var at=0;at<10;at++)pe[48+at]=pe[96+at]=String(at);for(var at=1;at<=24;at++)pe[at+111]="F"+at;for(var at=65;at<=90;at++)pe[at]=String.fromCharCode(at+32),jr[at]=String.fromCharCode(at);for(var co in pe)jr.hasOwnProperty(co)||(jr[co]=pe[co]);function Cu(e){var t=xu&&(e.ctrlKey||e.altKey||e.metaKey)||(ku||Mu)&&e.shiftKey&&e.key&&e.key.length==1,r=!t&&e.key||(e.shiftKey?jr:pe)[e.keyCode]||e.key||"Unidentified";return r=="Esc"&&(r="Escape"),r=="Del"&&(r="Delete"),r=="Left"&&(r="ArrowLeft"),r=="Up"&&(r="ArrowUp"),r=="Right"&&(r="ArrowRight"),r=="Down"&&(r="ArrowDown"),r}var Ou=typeof navigator!="undefined"?/Mac/.test(navigator.platform):!1;function wu(e){var t=e.split(/-(?!$)/),r=t[t.length-1];r=="Space"&&(r=" ");for(var n,o,i,s,a=0;a127)&&(s=pe[n.keyCode])&&s!=o){var c=t[lo(s,n,!0)];if(c&&c(r.state,r.dispatch,r))return!0}else if(i&&n.shiftKey){var l=t[lo(o,n,!0)];if(l&&l(r.state,r.dispatch,r))return!0}return!1}}var Ut=function(t,r){this.match=t,this.handler=typeof r=="string"?_u(r):r};function _u(e){return function(t,r,n,o){var i=e;if(r[1]){var s=r[0].lastIndexOf(r[1]);i+=r[0].slice(s+r[1].length),n+=s;var a=n-o;a>0&&(i=r[0].slice(s-a,s)+i,n=o)}return t.tr.insertText(i,n,o)}}var Nu=500;function Eu(e){var t=e.rules,r=new Rt({state:{init:function(){return null},apply:function(o,i){var s=o.getMeta(this);return s||(o.selectionSet||o.docChanged?null:i)}},props:{handleTextInput:function(o,i,s,a){return qs(o,i,s,a,t,r)},handleDOMEvents:{compositionend:function(n){setTimeout(function(){var o=n.state.selection,i=o.$cursor;i&&qs(n,i.pos,i.pos,"",t,r)})}}},isInputRules:!0});return r}function qs(e,t,r,n,o,i){if(e.composing)return!1;var s=e.state,a=s.doc.resolve(t);if(a.parent.type.spec.code)return!1;for(var c=a.parent.textBetween(Math.max(0,a.parentOffset-Nu),a.parentOffset,null,"\uFFFC")+n,l=0;l=0;c--)s.step(a.steps[c].invert(a.docs[c]));if(i.text){var l=s.doc.resolve(i.from).marks();s.replaceWith(i.from,i.to,e.schema.text(i.text,l))}else s.delete(i.from,i.to);t(s)}return!0}}return!1}new Ut(/--$/,"\u2014");new Ut(/\.\.\.$/,"\u2026");new Ut(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/,"\u201C");new Ut(/"$/,"\u201D");new Ut(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/,"\u2018");new Ut(/'$/,"\u2019");function uo(e,t,r,n){return new Ut(e,function(o,i,s,a){var c=r instanceof Function?r(i):r,l=o.tr.delete(s,a),u=l.doc.resolve(s),f=u.blockRange(),p=f&&Sn(f,t,c);if(!p)return null;l.wrap(f,p);var d=l.doc.resolve(s-1).nodeBefore;return d&&d.type==t&&Mn(l.doc,s-1)&&(!n||n(i,d))&&l.join(s-1),l})}function fo(e,t,r){return new Ut(e,function(n,o,i,s){var a=n.doc.resolve(i),c=r instanceof Function?r(o):r;return a.node(-1).canReplaceWith(a.index(-1),a.indexAfter(-1),t)?n.tr.delete(i,s).setBlockType(i,i,t,c):null})}function po(e,t){return e.selection.empty?!1:(t&&t(e.tr.deleteSelection().scrollIntoView()),!0)}function Js(e,t,r){var n=e.selection,o=n.$cursor;if(!o||(r?!r.endOfTextblock("backward",e):o.parentOffset>0))return!1;var i=Ks(o);if(!i){var s=o.blockRange(),a=s&&Pe(s);return a==null?!1:(t&&t(e.tr.lift(s,a).scrollIntoView()),!0)}var c=i.nodeBefore;if(!c.type.spec.isolating&&ra(e,i,t))return!0;if(o.parent.content.size==0&&(He(c,"end")||E.isSelectable(c))){if(t){var l=e.tr.deleteRange(o.before(),o.after());l.setSelection(He(c,"end")?D.findFrom(l.doc.resolve(l.mapping.map(i.pos,-1)),-1):E.create(l.doc,i.pos-c.nodeSize)),t(l.scrollIntoView())}return!0}return c.isAtom&&i.depth==o.depth-1?(t&&t(e.tr.delete(i.pos-c.nodeSize,i.pos).scrollIntoView()),!0):!1}function He(e,t,r){for(;e;e=t=="start"?e.firstChild:e.lastChild){if(e.isTextblock)return!0;if(r&&e.childCount!=1)return!1}return!1}function Ws(e,t,r){var n=e.selection,o=n.$head,i=n.empty,s=o;if(!i)return!1;if(o.parent.isTextblock){if(r?!r.endOfTextblock("backward",e):o.parentOffset>0)return!1;s=Ks(o)}var a=s&&s.nodeBefore;return!a||!E.isSelectable(a)?!1:(t&&t(e.tr.setSelection(E.create(e.doc,s.pos-a.nodeSize)).scrollIntoView()),!0)}function Ks(e){if(!e.parent.type.spec.isolating)for(var t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function $s(e,t,r){var n=e.selection,o=n.$cursor;if(!o||(r?!r.endOfTextblock("forward",e):o.parentOffset=0;t--){var r=e.node(t);if(e.index(t)+11&&n.after()!=n.end(-1)){var o=n.before();if(ee(e.doc,o))return t&&t(e.tr.split(o).scrollIntoView()),!0}var i=n.blockRange(),s=i&&Pe(i);return s==null?!1:(t&&t(e.tr.lift(i,s).scrollIntoView()),!0)}function Iu(e,t){var r=e.selection,n=r.$from,o=r.$to;if(e.selection instanceof E&&e.selection.node.isBlock)return!n.parentOffset||!ee(e.doc,n.pos)?!1:(t&&t(e.tr.split(n.pos).scrollIntoView()),!0);if(!n.parent.isBlock)return!1;if(t){var i=o.parentOffset==o.parent.content.size,s=e.tr;(e.selection instanceof H||e.selection instanceof re)&&s.deleteSelection();var a=n.depth==0?null:ho(n.node(-1).contentMatchAt(n.indexAfter(-1))),c=i&&a?[{type:a}]:null,l=ee(s.doc,s.mapping.map(n.pos),1,c);if(!c&&!l&&ee(s.doc,s.mapping.map(n.pos),1,a&&[{type:a}])&&(c=[{type:a}],l=!0),l&&(s.split(s.mapping.map(n.pos),1,c),!i&&!n.parentOffset&&n.parent.type!=a)){var u=s.mapping.map(n.before()),f=s.doc.resolve(u);n.node(-1).canReplaceWith(f.index(),f.index()+1,a)&&s.setNodeMarkup(s.mapping.map(n.before()),a)}t(s.scrollIntoView())}return!0}function Ru(e,t){var r=e.selection,n=r.$from,o=r.to,i,s=n.sharedDepth(o);return s==0?!1:(i=n.before(s),t&&t(e.tr.setSelection(E.create(e.doc,i))),!0)}function ea(e,t){return t&&t(e.tr.setSelection(new re(e.doc))),!0}function Pu(e,t,r){var n=t.nodeBefore,o=t.nodeAfter,i=t.index();return!n||!o||!n.type.compatibleContent(o.type)?!1:!n.content.size&&t.parent.canReplace(i-1,i)?(r&&r(e.tr.delete(t.pos-n.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(i,i+1)||!(o.isTextblock||Mn(e.doc,t.pos))?!1:(r&&r(e.tr.clearIncompatible(t.pos,n.type,n.contentMatchAt(n.childCount)).join(t.pos).scrollIntoView()),!0)}function ra(e,t,r){var n=t.nodeBefore,o=t.nodeAfter,i,s;if(n.type.spec.isolating||o.type.spec.isolating)return!1;if(Pu(e,t,r))return!0;var a=t.parent.canReplace(t.index(),t.index()+1);if(a&&(i=(s=n.contentMatchAt(n.childCount)).findWrapping(o.type))&&s.matchType(i[0]||o.type).validEnd){if(r){for(var c=t.pos+o.nodeSize,l=k.empty,u=i.length-1;u>=0;u--)l=k.from(i[u].create(null,l));l=k.from(n.copy(l));var f=e.tr.step(new xt(t.pos-1,c,t.pos,c,new C(l,1,0),i.length,!0)),p=c+2*i.length;Mn(f.doc,p)&&f.join(p),r(f.scrollIntoView())}return!0}var d=D.findFrom(t,1),h=d&&d.$from.blockRange(d.$to),v=h&&Pe(h);if(v!=null&&v>=t.depth)return r&&r(e.tr.lift(h,v).scrollIntoView()),!0;if(a&&He(o,"start",!0)&&He(n,"end")){for(var g=n,M=[];M.push(g),!g.isTextblock;)g=g.lastChild;for(var y=o,R=1;!y.isTextblock;y=y.firstChild)R++;if(g.canReplace(g.childCount,g.childCount,y.content)){if(r){for(var m=k.empty,I=M.length-1;I>=0;I--)m=k.from(M[I].copy(m));var O=e.tr.step(new xt(t.pos-M.length,t.pos+o.nodeSize,t.pos+R,t.pos+o.nodeSize-R,new C(m,M.length,0),0,!0));r(O.scrollIntoView())}return!0}}return!1}function na(e,t){return function(r,n){var o=r.selection,i=o.$from,s=o.$to,a=i.blockRange(s),c=a&&Sn(a,e,t);return c?(n&&n(r.tr.wrap(a,c).scrollIntoView()),!0):!1}}function Bu(e,t){return function(r,n){var o=r.selection,i=o.from,s=o.to,a=!1;return r.doc.nodesBetween(i,s,function(c,l){if(a)return!1;if(!(!c.isTextblock||c.hasMarkup(e,t)))if(c.type==e)a=!0;else{var u=r.doc.resolve(l),f=u.index();a=u.parent.canReplaceWith(f,f+1,e)}}),a?(n&&n(r.tr.setBlockType(i,s,e,t).scrollIntoView()),!0):!1}}function mo(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return function(r,n,o){for(var i=0;i=2&&i.node(a.depth-1).type.compatibleContent(e)&&a.startIndex==0){if(i.index(a.depth-1)==0)return!1;var u=r.doc.resolve(a.start-2);l=new Ge(u,u,a.depth),a.endIndex=0;s--)i=k.from(r[s].type.create(r[s].attrs,i));e.step(new xt(t.start-(n?2:0),t.end,t.start,t.end,new C(i,0,0),r.length,!0));for(var a=0,c=0;ca;s--)i-=o.child(s).nodeSize,n.delete(i-1,i+1);var c=n.doc.resolve(r.start),l=c.nodeAfter,u=r.startIndex==0,f=r.endIndex==o.childCount,p=c.node(-1),d=c.index(-1);if(!p.canReplace(d+(u?0:1),d+1,l.content.append(f?k.empty:k.from(o))))return!1;var h=c.pos,v=h+l.nodeSize;return n.step(new xt(h-(u?1:0),v+(f?1:0),h+1,v-1,new C((u?k.empty:k.from(o.copy(k.empty))).append(f?k.empty:k.from(o.copy(k.empty))),u?0:1,f?0:1),u?0:1)),t(n.scrollIntoView()),!0}function qu(e){return function(t,r){var n=t.selection,o=n.$from,i=n.$to,s=o.blockRange(i,function(v){return v.childCount&&v.firstChild.type==e});if(!s)return!1;var a=s.startIndex;if(a==0)return!1;var c=s.parent,l=c.child(a-1);if(l.type!=e)return!1;if(r){var u=l.lastChild&&l.lastChild.type==c.type,f=k.from(u?e.create():null),p=new C(k.from(e.create(null,k.from(c.type.create(null,f)))),u?3:1,0),d=s.start,h=s.end;r(t.tr.step(new xt(d-(u?3:1),h,d,h,p,1,!0)).scrollIntoView())}return!0}}function qr(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function tt(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}function Ju(e,t){const r=tt(t,e.schema),{from:n,to:o}=e.selection;let i=[];e.doc.nodesBetween(n,o,a=>{i=[...i,a]});const s=i.reverse().find(a=>a.type.name===r.name);return s?S({},s.attrs):{}}function he(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}function aa(e,t){const r=he(t,e.schema),{from:n,to:o,empty:i}=e.selection;let s=[];i?s=e.selection.$head.marks():e.doc.nodesBetween(n,o,c=>{s=[...s,...c.marks]});const a=s.find(c=>c.type.name===r.name);return a?S({},a.attrs):{}}function Wu(e,t){const r=qr(typeof t=="string"?t:t.name,e.schema);return r==="node"?Ju(e,t):r==="mark"?aa(e,t):{}}function pr(e,t){const r=Object.keys(t);return r.length?!!r.filter(n=>t[n]===e[n]).length:!0}function je(e,t,r={}){const{from:n,to:o,empty:i}=e.selection,s=t?tt(t,e.schema):null;let a=[];if(e.doc.nodesBetween(n,o,(u,f)=>{if(!u.isText){const p=Math.max(n,f),d=Math.min(o,f+u.nodeSize);a=[...a,{node:u,from:p,to:d}]}}),i)return!!a.filter(u=>s?s.name===u.node.type.name:!0).find(u=>pr(u.node.attrs,r));const c=o-n;return a.filter(u=>s?s.name===u.node.type.name:!0).filter(u=>pr(u.node.attrs,r)).reduce((u,f)=>{const p=f.to-f.from;return u+p},0)>=c}function vo(e,t,r={}){const{from:n,to:o,empty:i}=e.selection,s=t?he(t,e.schema):null;if(i)return!!(e.storedMarks||e.selection.$from.marks()).filter(p=>s?s.name===p.type.name:!0).find(p=>pr(p.attrs,r));let a=0,c=[];if(e.doc.nodesBetween(n,o,(p,d)=>{if(p.isText){const h=Math.max(n,d),v=Math.min(o,d+p.nodeSize);a+=v-h,c=[...c,...p.marks.map(M=>({mark:M,from:h,to:v}))]}}),a===0)return!1;const l=c.filter(p=>s?s.name===p.mark.type.name:!0).filter(p=>pr(p.mark.attrs,r)).reduce((p,d)=>{const h=d.to-d.from;return p+h},0),u=c.filter(p=>s?p.mark.type!==s&&p.mark.type.excludes(s):!0).reduce((p,d)=>{const h=d.to-d.from;return p+h},0);return(l>0?l+u:l)>=a}function Ku(e,t,r={}){if(!t)return je(e,null,r)||vo(e,null,r);const n=qr(t,e.schema);return n==="node"?je(e,t,r):n==="mark"?vo(e,t,r):!1}function $u(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function ca(e){const t=`${e}`;return new window.DOMParser().parseFromString(t,"text/html").body}function Jr(e,t,r){if(r=S({slice:!0,parseOptions:{}},r),typeof e=="object"&&e!==null)try{return Array.isArray(e)?k.fromArray(e.map(n=>t.nodeFromJSON(n))):t.nodeFromJSON(e)}catch(n){return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",n),Jr("",t,r)}if(typeof e=="string"){const n=Lt.fromSchema(t);return r.slice?n.parseSlice(ca(e),r.parseOptions).content:n.parse(ca(e),r.parseOptions)}return Jr("",t,r)}function la(e,t,r={}){return Jr(e,t,{slice:!1,parseOptions:r})}function Uu(e,t){const r=ot.fromSchema(t).serializeFragment(e.content),o=document.implementation.createHTMLDocument().createElement("div");return o.appendChild(r),o.innerHTML}function Gu(e){var t;const r=(t=e.type.createAndFill())===null||t===void 0?void 0:t.toJSON(),n=e.toJSON();return JSON.stringify(r)===JSON.stringify(n)}function Yu(e){const t=document.querySelector("style[data-tiptap-style]");if(t!==null)return t;const r=document.createElement("style");return r.setAttribute("data-tiptap-style",""),r.innerHTML=e,document.getElementsByTagName("head")[0].appendChild(r),r}class Xu{constructor(t,r){this.editor=t,this.commands=r}createCommands(){const{commands:t,editor:r}=this,{state:n,view:o}=r,{tr:i}=n,s=this.buildProps(i);return Object.fromEntries(Object.entries(t).map(([a,c])=>[a,(...u)=>{const f=c(...u)(s);return i.getMeta("preventDispatch")||o.dispatch(i),f}]))}createChain(t,r=!0){const{commands:n,editor:o}=this,{state:i,view:s}=o,a=[],c=!!t,l=t||i.tr,u=()=>(!c&&r&&!l.getMeta("preventDispatch")&&s.dispatch(l),a.every(p=>p===!0)),f=Tt(S({},Object.fromEntries(Object.entries(n).map(([p,d])=>[p,(...v)=>{const g=this.buildProps(l,r),M=d(...v)(g);return a.push(M),f}]))),{run:u});return f}createCan(t){const{commands:r,editor:n}=this,{state:o}=n,i=void 0,s=t||o.tr,a=this.buildProps(s,i),c=Object.fromEntries(Object.entries(r).map(([l,u])=>[l,(...f)=>u(...f)(Tt(S({},a),{dispatch:i}))]));return Tt(S({},c),{chain:()=>this.createChain(s,i)})}buildProps(t,r=!0){const{editor:n,commands:o}=this,{state:i,view:s}=n;i.storedMarks&&t.setStoredMarks(i.storedMarks);const a={tr:t,editor:n,view:s,state:this.chainableState(t,i),dispatch:r?()=>{}:void 0,chain:()=>this.createChain(t),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(o).map(([c,l])=>[c,(...u)=>l(...u)(a)]))}};return a}chainableState(t,r){let{selection:n}=t,{doc:o}=t,{storedMarks:i}=t;return Tt(S({},r),{schema:r.schema,plugins:r.plugins,apply:r.apply.bind(r),applyTransaction:r.applyTransaction.bind(r),reconfigure:r.reconfigure.bind(r),toJSON:r.toJSON.bind(r),get storedMarks(){return i},get selection(){return n},get doc(){return o},get tr(){return n=t.selection,o=t.doc,i=t.storedMarks,t}})}}function _(e,t,r={}){return e.config[t]===void 0&&e.parent?_(e.parent,t,r):typeof e.config[t]=="function"?e.config[t].bind(Tt(S({},r),{parent:e.parent?_(e.parent,t,r):null})):e.config[t]}function dr(e){const t=e.filter(o=>o.type==="extension"),r=e.filter(o=>o.type==="node"),n=e.filter(o=>o.type==="mark");return{baseExtensions:t,nodeExtensions:r,markExtensions:n}}function ua(e){const t=[],{nodeExtensions:r,markExtensions:n}=dr(e),o=[...r,...n],i={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0};return e.forEach(s=>{const a={name:s.name,options:s.options},c=_(s,"addGlobalAttributes",a);if(!c)return;c().forEach(u=>{u.types.forEach(f=>{Object.entries(u.attributes).forEach(([p,d])=>{t.push({type:f,name:p,attribute:S(S({},i),d)})})})})}),o.forEach(s=>{const a={name:s.name,options:s.options},c=_(s,"addAttributes",a);if(!c)return;const l=c();Object.entries(l).forEach(([u,f])=>{t.push({type:s.name,name:u,attribute:S(S({},i),f)})})}),t}function Ot(...e){return e.filter(t=>!!t).reduce((t,r)=>{const n=S({},t);return Object.entries(r).forEach(([o,i])=>{if(!n[o]){n[o]=i;return}o==="class"?n[o]=[n[o],i].join(" "):o==="style"?n[o]=[n[o],i].join("; "):n[o]=i}),n},{})}function go(e,t){return t.filter(r=>r.attribute.rendered).map(r=>r.attribute.renderHTML?r.attribute.renderHTML(e.attrs)||{}:{[r.name]:e.attrs[r.name]}).reduce((r,n)=>Ot(r,n),{})}function Qu(e={}){return Object.keys(e).length===0&&e.constructor===Object}function Zu(e){return typeof e!="string"?e:e.match(/^\d*(\.\d+)?$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function fa(e,t){return e.style?e:Tt(S({},e),{getAttrs:r=>{const n=e.getAttrs?e.getAttrs(r):e.attrs;if(n===!1)return!1;const o=t.filter(i=>i.attribute.rendered).reduce((i,s)=>{const a=s.attribute.parseHTML?s.attribute.parseHTML(r)||{}:{[s.name]:Zu(r.getAttribute(s.name))},c=Object.fromEntries(Object.entries(a).filter(([,l])=>l!=null));return S(S({},i),c)},{});return S(S({},n),o)}})}function et(e,t=void 0,...r){return typeof e=="function"?t?e.bind(t)(...r):e(...r):e}function pa(e){return Object.fromEntries(Object.entries(e).filter(([t,r])=>t==="attrs"&&Qu(r)?!1:r!=null))}function tf(e){var t;const r=ua(e),{nodeExtensions:n,markExtensions:o}=dr(e),i=(t=n.find(c=>_(c,"topNode")))===null||t===void 0?void 0:t.name,s=Object.fromEntries(n.map(c=>{const l=r.filter(v=>v.type===c.name),u={name:c.name,options:c.options},f=e.reduce((v,g)=>{const M=_(g,"extendNodeSchema",u);return S(S({},v),M?M(c):{})},{}),p=pa(Tt(S({},f),{content:et(_(c,"content",u)),marks:et(_(c,"marks",u)),group:et(_(c,"group",u)),inline:et(_(c,"inline",u)),atom:et(_(c,"atom",u)),selectable:et(_(c,"selectable",u)),draggable:et(_(c,"draggable",u)),code:et(_(c,"code",u)),defining:et(_(c,"defining",u)),isolating:et(_(c,"isolating",u)),attrs:Object.fromEntries(l.map(v=>{var g;return[v.name,{default:(g=v==null?void 0:v.attribute)===null||g===void 0?void 0:g.default}]}))})),d=et(_(c,"parseHTML",u));d&&(p.parseDOM=d.map(v=>fa(v,l)));const h=_(c,"renderHTML",u);return h&&(p.toDOM=v=>h({node:v,HTMLAttributes:go(v,l)})),[c.name,p]})),a=Object.fromEntries(o.map(c=>{const l=r.filter(v=>v.type===c.name),u={name:c.name,options:c.options},f=e.reduce((v,g)=>{const M=_(g,"extendMarkSchema",u);return S(S({},v),M?M(c):{})},{}),p=pa(Tt(S({},f),{inclusive:et(_(c,"inclusive",u)),excludes:et(_(c,"excludes",u)),group:et(_(c,"group",u)),spanning:et(_(c,"spanning",u)),attrs:Object.fromEntries(l.map(v=>{var g;return[v.name,{default:(g=v==null?void 0:v.attribute)===null||g===void 0?void 0:g.default}]}))})),d=et(_(c,"parseHTML",u));d&&(p.parseDOM=d.map(v=>fa(v,l)));const h=_(c,"renderHTML",u);return h&&(p.toDOM=v=>h({mark:v,HTMLAttributes:go(v,l)})),[c.name,p]}));return new Se({topNode:i,nodes:s,marks:a})}function yo(e,t){return t.nodes[e]?t.nodes[e]:t.marks[e]?t.marks[e]:null}class hr{constructor(t,r){this.splittableMarks=[],this.editor=r,this.extensions=hr.resolve(t),this.schema=tf(this.extensions),this.extensions.forEach(n=>{var o;const i={name:n.name,options:n.options,editor:this.editor,type:yo(n.name,this.schema)};n.type==="mark"&&((o=et(_(n,"keepOnSplit",i)))!==null&&o!==void 0?o:!0)&&this.splittableMarks.push(n.name);const s=_(n,"onBeforeCreate",i);s&&this.editor.on("beforeCreate",s);const a=_(n,"onCreate",i);a&&this.editor.on("create",a);const c=_(n,"onUpdate",i);c&&this.editor.on("update",c);const l=_(n,"onSelectionUpdate",i);l&&this.editor.on("selectionUpdate",l);const u=_(n,"onTransaction",i);u&&this.editor.on("transaction",u);const f=_(n,"onFocus",i);f&&this.editor.on("focus",f);const p=_(n,"onBlur",i);p&&this.editor.on("blur",p);const d=_(n,"onDestroy",i);d&&this.editor.on("destroy",d)})}static resolve(t){return hr.sort(hr.flatten(t))}static flatten(t){return t.map(r=>{const n={name:r.name,options:r.options},o=_(r,"addExtensions",n);return o?[r,...this.flatten(o())]:r}).flat(10)}static sort(t){const r=100;return t.sort((n,o)=>{const i=_(n,"priority")||r,s=_(o,"priority")||r;return i>s?-1:i{const n={name:r.name,options:r.options,editor:this.editor,type:yo(r.name,this.schema)},o=_(r,"addCommands",n);return o?S(S({},t),o()):t},{})}get plugins(){return[...this.extensions].reverse().map(t=>{const r={name:t.name,options:t.options,editor:this.editor,type:yo(t.name,this.schema)},n=[],o=_(t,"addKeyboardShortcuts",r);if(o){const c=Object.fromEntries(Object.entries(o()).map(([u,f])=>[u,()=>f({editor:this.editor})])),l=Au(c);n.push(l)}const i=_(t,"addInputRules",r);if(this.editor.options.enableInputRules&&i){const c=i(),l=c.length?[Eu({rules:c})]:[];n.push(...l)}const s=_(t,"addPasteRules",r);if(this.editor.options.enablePasteRules&&s){const c=s();n.push(...c)}const a=_(t,"addProseMirrorPlugins",r);if(a){const c=a();n.push(...c)}return n}).flat()}get attributes(){return ua(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:r}=dr(this.extensions);return Object.fromEntries(r.filter(n=>!!_(n,"addNodeView")).map(n=>{const o=this.attributes.filter(c=>c.type===n.name),i={name:n.name,options:n.options,editor:t,type:tt(n.name,this.schema)},s=_(n,"addNodeView",i);if(!s)return[];const a=(c,l,u,f)=>{const p=go(c,o);return s()({editor:t,node:c,getPos:u,decorations:f,HTMLAttributes:p,extension:n})};return[n.name,a]}))}get textSerializers(){const{editor:t}=this,{nodeExtensions:r}=dr(this.extensions);return Object.fromEntries(r.filter(n=>!!_(n,"renderText")).map(n=>{const o={name:n.name,options:n.options,editor:t,type:tt(n.name,this.schema)},i=_(n,"renderText",o);if(!i)return[];const s=a=>i(a);return[n.name,s]}))}}class ef{constructor(){this.callbacks={}}on(t,r){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(r),this}emit(t,...r){const n=this.callbacks[t];return n&&n.forEach(o=>o.apply(this,r)),this}off(t,r){const n=this.callbacks[t];return n&&(r?this.callbacks[t]=n.filter(o=>o!==r):delete this.callbacks[t]),this}removeAllListeners(){this.callbacks={}}}function rf(e){return Object.prototype.toString.call(e).slice(8,-1)}function bo(e){return rf(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function Wr(e,t){const r=S({},e);return bo(e)&&bo(t)&&Object.keys(t).forEach(n=>{bo(t[n])?n in e?r[n]=Wr(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}class St{constructor(t={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config=S(S({},this.config),t),this.name=this.config.name,this.options=this.config.defaultOptions}static create(t={}){return new St(t)}configure(t={}){const r=this.extend();return r.options=Wr(this.options,t),r}extend(t={}){const r=new St(t);return r.parent=this,this.child=r,r.name=t.name?t.name:r.parent.name,r.options=t.defaultOptions?t.defaultOptions:r.parent.options,r}}const nf=(e,t,r,n,o)=>{let i="",s=!0;return e.state.doc.nodesBetween(t,r,(a,c)=>{var l;const u=e.extensionManager.textSerializers[a.type.name];u?(i+=u({node:a}),s=!n):a.isText?(i+=(l=a==null?void 0:a.text)===null||l===void 0?void 0:l.slice(Math.max(t,c)-c,r-c),s=!n):a.isLeaf&&o?(i+=o,s=!n):!s&&a.isBlock&&(i+=n,s=!0)},0),i},of=St.create({name:"editable",addProseMirrorPlugins(){return[new Rt({key:new Wt("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:e}=this,{from:t,to:r}=e.state.selection;return nf(e,t,r,` -`)}}})]}}),sf=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{e.isDestroyed||t.dom.blur()}),!0);var af=Object.freeze({__proto__:null,blur:sf});const cf=(e=!1)=>({commands:t})=>t.setContent("",e);var lf=Object.freeze({__proto__:null,clearContent:cf});const uf=()=>({state:e,tr:t,dispatch:r})=>{const{selection:n}=t,{ranges:o}=n;return o.forEach(i=>{e.doc.nodesBetween(i.$from.pos,i.$to.pos,(s,a)=>{if(s.type.isText)return;const c=t.doc.resolve(t.mapping.map(a)),l=t.doc.resolve(t.mapping.map(a+s.nodeSize)),u=c.blockRange(l);if(!u)return;const f=Pe(u);if(s.type.isTextblock&&r){const{defaultType:p}=c.parent.contentMatchAt(c.index());t.setNodeMarkup(u.start,p)}(f||f===0)&&r&&t.lift(u,f)})}),!0};var ff=Object.freeze({__proto__:null,clearNodes:uf});const pf=e=>t=>e(t);var df=Object.freeze({__proto__:null,command:pf});const hf=()=>({state:e,dispatch:t})=>Zs(e,t);var mf=Object.freeze({__proto__:null,createParagraphNear:hf});const vf=e=>({tr:t,state:r,dispatch:n})=>{const o=tt(e,r.schema),i=t.selection.$anchor;for(let s=i.depth;s>0;s-=1)if(i.node(s).type===o){if(n){const c=i.before(s),l=i.after(s);t.delete(c,l).scrollIntoView()}return!0}return!1};var gf=Object.freeze({__proto__:null,deleteNode:vf});const yf=e=>({tr:t,dispatch:r})=>{const{from:n,to:o}=e;return r&&t.delete(n,o),!0};var bf=Object.freeze({__proto__:null,deleteRange:yf});const kf=()=>({state:e,dispatch:t})=>po(e,t);var Sf=Object.freeze({__proto__:null,deleteSelection:kf});const Mf=()=>({commands:e})=>e.keyboardShortcut("Enter");var xf=Object.freeze({__proto__:null,enter:Mf});const Cf=()=>({state:e,dispatch:t})=>Qs(e,t);var Of=Object.freeze({__proto__:null,exitCode:Cf});function ko(e,t,r={}){return e.find(n=>n.type===t&&pr(n.attrs,r))}function wf(e,t,r={}){return!!ko(e,t,r)}function da(e,t,r={}){if(!e||!t)return;const n=e.parent.childAfter(e.parentOffset);if(!n.node)return;const o=ko(n.node.marks,t,r);if(!o)return;let i=e.index(),s=e.start()+n.offset,a=i+1,c=s+n.node.nodeSize;for(ko(n.node.marks,t,r);i>0&&o.isInSet(e.parent.child(i-1).marks);)i-=1,s-=e.parent.child(i).nodeSize;for(;a({tr:r,state:n,dispatch:o})=>{const i=he(e,n.schema),{doc:s,selection:a}=r,{$from:c,from:l,to:u}=a;if(o){const f=da(c,i,t);if(f&&f.from<=l&&f.to>=u){const p=H.create(s,f.from,f.to);r.setSelection(p)}}return!0};var Af=Object.freeze({__proto__:null,extendMarkRange:Tf});const _f=e=>t=>{const r=typeof e=="function"?e(t):e;for(let n=0;n({editor:t,view:r,tr:n,dispatch:o})=>{const i=()=>{requestAnimationFrame(()=>{t.isDestroyed||r.focus()})};if(r.hasFocus()&&e===null||e===!1)return!0;if(o&&e===null&&!ma(t.state.selection))return i(),!0;const{from:s,to:a}=Df(t.state,e)||t.state.selection,{doc:c,storedMarks:l}=n,u=D.atStart(c).from,f=D.atEnd(c).to,p=mr(s,u,f),d=mr(a,u,f),h=H.create(c,p,d),v=t.state.selection.eq(h);return o&&(v||n.setSelection(h),v&&l&&n.setStoredMarks(l),i()),!0};var Rf=Object.freeze({__proto__:null,focus:If});const Pf=(e,t)=>r=>e.every((n,o)=>t(n,Tt(S({},r),{index:o})));var Bf=Object.freeze({__proto__:null,forEach:Pf});const zf=(e,t)=>({tr:r,commands:n})=>n.insertContentAt({from:r.selection.from,to:r.selection.to},e,t);var Lf=Object.freeze({__proto__:null,insertContent:zf});function Ff(e,t,r){const n=e.steps.length-1;if(n{s===0&&(s=u)}),e.setSelection(D.near(e.doc.resolve(s),r))}const Vf=(e,t,r)=>({tr:n,dispatch:o,editor:i})=>{if(o){const s=Jr(t,i.schema,S({parseOptions:{preserveWhitespace:"full"}},r||{}));if(s.toString()==="<>")return!0;const{from:a,to:c}=typeof e=="number"?{from:e,to:e}:e;n.replaceWith(a,c,s),Ff(n,n.steps.length-1,1)}return!0};var Hf=Object.freeze({__proto__:null,insertContentAt:Vf});const jf=()=>({state:e,dispatch:t})=>Js(e,t);var qf=Object.freeze({__proto__:null,joinBackward:jf});const Jf=()=>({state:e,dispatch:t})=>$s(e,t);var Wf=Object.freeze({__proto__:null,joinForward:Jf});const Kf=typeof navigator!="undefined"?/Mac/.test(navigator.platform):!1;function $f(e){const t=e.split(/-(?!$)/);let r=t[t.length-1];r==="Space"&&(r=" ");let n,o,i,s;for(let a=0;a({editor:t,view:r,tr:n,dispatch:o})=>{const i=$f(e).split(/-(?!$)/),s=i.find(l=>!["Alt","Ctrl","Meta","Shift"].includes(l)),a=new KeyboardEvent("keydown",{key:s==="Space"?" ":s,altKey:i.includes("Alt"),ctrlKey:i.includes("Ctrl"),metaKey:i.includes("Meta"),shiftKey:i.includes("Shift"),bubbles:!0,cancelable:!0}),c=t.captureTransaction(()=>{r.someProp("handleKeyDown",l=>l(r,a))});return c==null||c.steps.forEach(l=>{const u=l.map(n.mapping);u&&o&&n.maybeStep(u)}),!0};var Gf=Object.freeze({__proto__:null,keyboardShortcut:Uf});const Yf=(e,t={})=>({state:r,dispatch:n})=>{const o=tt(e,r.schema);return je(r,o,t)?Ys(r,n):!1};var Xf=Object.freeze({__proto__:null,lift:Yf});const Qf=()=>({state:e,dispatch:t})=>ta(e,t);var Zf=Object.freeze({__proto__:null,liftEmptyBlock:Qf});const tp=e=>({state:t,dispatch:r})=>{const n=tt(e,t.schema);return Vu(n)(t,r)};var ep=Object.freeze({__proto__:null,liftListItem:tp});const rp=()=>({state:e,dispatch:t})=>Xs(e,t);var np=Object.freeze({__proto__:null,newlineInCode:rp});function va(e,t){const r=typeof t=="string"?[t]:t;return Object.keys(e).reduce((n,o)=>(r.includes(o)||(n[o]=e[o]),n),{})}const op=(e,t)=>({tr:r,state:n,dispatch:o})=>{let i=null,s=null;const a=qr(typeof e=="string"?e:e.name,n.schema);return a?(a==="node"&&(i=tt(e,n.schema)),a==="mark"&&(s=he(e,n.schema)),o&&r.selection.ranges.forEach(c=>{n.doc.nodesBetween(c.$from.pos,c.$to.pos,(l,u)=>{i&&i===l.type&&r.setNodeMarkup(u,void 0,va(l.attrs,t)),s&&l.marks.length&&l.marks.forEach(f=>{s===f.type&&r.addMark(u,u+l.nodeSize,s.create(va(f.attrs,t)))})})}),!0):!1};var ip=Object.freeze({__proto__:null,resetAttributes:op});const sp=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0);var ap=Object.freeze({__proto__:null,scrollIntoView:sp});const cp=()=>({state:e,dispatch:t})=>ea(e,t);var lp=Object.freeze({__proto__:null,selectAll:cp});const up=()=>({state:e,dispatch:t})=>Ws(e,t);var fp=Object.freeze({__proto__:null,selectNodeBackward:up});const pp=()=>({state:e,dispatch:t})=>Us(e,t);var dp=Object.freeze({__proto__:null,selectNodeForward:pp});const hp=()=>({state:e,dispatch:t})=>Ru(e,t);var mp=Object.freeze({__proto__:null,selectParentNode:hp});const vp=(e,t=!1,r={})=>({tr:n,editor:o,dispatch:i})=>{const{doc:s}=n,a=la(e,o.schema,r),c=H.create(s,0,s.content.size);return i&&n.setSelection(c).replaceSelectionWith(a,!1).setMeta("preventUpdate",!t),!0};var gp=Object.freeze({__proto__:null,setContent:vp});const yp=(e,t={})=>({tr:r,state:n,dispatch:o})=>{const{selection:i}=r,{empty:s,ranges:a}=i,c=he(e,n.schema);if(o)if(s){const l=aa(n,c);r.addStoredMark(c.create(S(S({},l),t)))}else a.forEach(l=>{const u=l.$from.pos,f=l.$to.pos;n.doc.nodesBetween(u,f,(p,d)=>{const h=Math.max(d,u),v=Math.min(d+p.nodeSize,f);p.marks.find(M=>M.type===c)?p.marks.forEach(M=>{c===M.type&&r.addMark(h,v,c.create(S(S({},M.attrs),t)))}):r.addMark(h,v,c.create(t))})});return!0};var bp=Object.freeze({__proto__:null,setMark:yp});const kp=(e,t)=>({tr:r})=>(r.setMeta(e,t),!0);var Sp=Object.freeze({__proto__:null,setMeta:kp});const Mp=(e,t={})=>({state:r,dispatch:n})=>{const o=tt(e,r.schema);return Bu(o,t)(r,n)};var xp=Object.freeze({__proto__:null,setNode:Mp});const Cp=e=>({tr:t,dispatch:r})=>{if(r){const{doc:n}=t,o=D.atStart(n).from,i=D.atEnd(n).to,s=mr(e,o,i),a=E.create(n,s);t.setSelection(a)}return!0};var Op=Object.freeze({__proto__:null,setNodeSelection:Cp});const wp=e=>({tr:t,dispatch:r})=>{if(r){const{doc:n}=t,{from:o,to:i}=typeof e=="number"?{from:e,to:e}:e,s=D.atStart(n).from,a=D.atEnd(n).to,c=mr(o,s,a),l=mr(i,s,a),u=H.create(n,c,l);t.setSelection(u)}return!0};var Tp=Object.freeze({__proto__:null,setTextSelection:wp});const Ap=e=>({state:t,dispatch:r})=>{const n=tt(e,t.schema);return qu(n)(t,r)};var _p=Object.freeze({__proto__:null,sinkListItem:Ap});function Kr(e,t,r){return Object.fromEntries(Object.entries(r).filter(([n])=>{const o=e.find(i=>i.type===t&&i.name===n);return o?o.attribute.keepOnSplit:!1}))}function Np(e){for(let t=0;tt==null?void 0:t.includes(o.type.name));e.tr.ensureMarks(n)}}const Ep=({keepMarks:e=!0}={})=>({tr:t,state:r,dispatch:n,editor:o})=>{const{selection:i,doc:s}=t,{$from:a,$to:c}=i,l=o.extensionManager.attributes,u=Kr(l,a.node().type.name,a.node().attrs);if(i instanceof E&&i.node.isBlock)return!a.parentOffset||!ee(s,a.pos)?!1:(n&&(e&&ga(r,o.extensionManager.splittableMarks),t.split(a.pos).scrollIntoView()),!0);if(!a.parent.isBlock)return!1;if(n){const f=c.parentOffset===c.parent.content.size;i instanceof H&&t.deleteSelection();const p=a.depth===0?void 0:Np(a.node(-1).contentMatchAt(a.indexAfter(-1)));let d=f&&p?[{type:p,attrs:u}]:void 0,h=ee(t.doc,t.mapping.map(a.pos),1,d);if(!d&&!h&&ee(t.doc,t.mapping.map(a.pos),1,p?[{type:p}]:void 0)&&(h=!0,d=p?[{type:p,attrs:u}]:void 0),h&&(t.split(t.mapping.map(a.pos),1,d),p&&!f&&!a.parentOffset&&a.parent.type!==p)){const v=t.mapping.map(a.before()),g=t.doc.resolve(v);a.node(-1).canReplaceWith(g.index(),g.index()+1,p)&&t.setNodeMarkup(t.mapping.map(a.before()),p)}e&&ga(r,o.extensionManager.splittableMarks),t.scrollIntoView()}return!0};var Dp=Object.freeze({__proto__:null,splitBlock:Ep});const Ip=e=>({tr:t,state:r,dispatch:n,editor:o})=>{var i;const s=tt(e,r.schema),{$from:a,$to:c}=r.selection,l=r.selection.node;if(l&&l.isBlock||a.depth<2||!a.sameParent(c))return!1;const u=a.node(-1);if(u.type!==s)return!1;const f=o.extensionManager.attributes;if(a.parent.content.size===0&&a.node(-1).childCount===a.indexAfter(-1)){if(a.depth===2||a.node(-3).type!==s||a.index(-2)!==a.node(-2).childCount-1)return!1;if(n){let g=k.empty;const M=a.index(-1)?1:a.index(-2)?2:3;for(let F=a.depth-M;F>=a.depth-3;F-=1)g=k.from(a.node(F).copy(g));const y=a.indexAfter(-1){if(O>-1)return!1;F.isTextblock&&F.content.size===0&&(O=J+1)}),O>-1&&t.setSelection(H.near(t.doc.resolve(O))),t.scrollIntoView()}return!0}const p=c.pos===a.end()?u.contentMatchAt(0).defaultType:null,d=Kr(f,u.type.name,u.attrs),h=Kr(f,a.node().type.name,a.node().attrs);t.delete(a.pos,c.pos);const v=p?[{type:s,attrs:d},{type:p,attrs:h}]:[{type:s,attrs:d}];return ee(t.doc,a.pos,2)?(n&&t.split(a.pos,2,v).scrollIntoView(),!0):!1};var Rp=Object.freeze({__proto__:null,splitListItem:Ip});function Pp(e,t){for(let r=e.depth;r>0;r-=1){const n=e.node(r);if(t(n))return{pos:r>0?e.before(r):0,start:e.start(r),depth:r,node:n}}}function Bp(e){return t=>Pp(t.$from,e)}function ya(e,t){const{nodeExtensions:r}=dr(t),n=r.find(s=>s.name===e);if(!n)return!1;const o={name:n.name,options:n.options},i=et(_(n,"group",o));return typeof i!="string"?!1:i.split(" ").includes("list")}const zp=(e,t)=>({editor:r,tr:n,state:o,dispatch:i,chain:s,commands:a,can:c})=>{const{extensions:l}=r.extensionManager,u=tt(e,o.schema),f=tt(t,o.schema),{selection:p}=o,{$from:d,$to:h}=p,v=d.blockRange(h);if(!v)return!1;const g=Bp(y=>ya(y.type.name,l))(p);if(v.depth>=1&&g&&v.depth-g.depth<=1){if(g.node.type===u)return a.liftListItem(f);if(ya(g.node.type.name,l)&&u.validContent(g.node.content)&&i)return n.setNodeMarkup(g.pos,u),!0}return c().wrapInList(u)?a.wrapInList(u):s().clearNodes().wrapInList(u).run()};var Lp=Object.freeze({__proto__:null,toggleList:zp});const Fp=(e,t={})=>({state:r,commands:n})=>{const o=he(e,r.schema);return vo(r,o,t)?n.unsetMark(o):n.setMark(o,t)};var Vp=Object.freeze({__proto__:null,toggleMark:Fp});const Hp=(e,t,r={})=>({state:n,commands:o})=>{const i=tt(e,n.schema),s=tt(t,n.schema);return je(n,i,r)?o.setNode(s):o.setNode(i,r)};var jp=Object.freeze({__proto__:null,toggleNode:Hp});const qp=(e,t={})=>({state:r,dispatch:n})=>{const o=tt(e,r.schema);return je(r,o,t)?Ys(r,n):na(o,t)(r,n)};var Jp=Object.freeze({__proto__:null,toggleWrap:qp});const Wp=()=>({state:e,dispatch:t})=>Du(e,t);var Kp=Object.freeze({__proto__:null,undoInputRule:Wp});const $p=()=>({tr:e,state:t,dispatch:r})=>{const{selection:n}=e,{empty:o,ranges:i}=n;return o||r&&Object.entries(t.schema.marks).forEach(([,s])=>{i.forEach(a=>{e.removeMark(a.$from.pos,a.$to.pos,s)})}),!0};var Up=Object.freeze({__proto__:null,unsetAllMarks:$p});const Gp=e=>({tr:t,state:r,dispatch:n})=>{const{selection:o}=t,i=he(e,r.schema),{$from:s,empty:a,ranges:c}=o;if(n){if(a){let{from:l,to:u}=o;const f=da(s,i);f&&(l=f.from,u=f.to),t.removeMark(l,u,i)}else c.forEach(l=>{t.removeMark(l.$from.pos,l.$to.pos,i)});t.removeStoredMark(i)}return!0};var Yp=Object.freeze({__proto__:null,unsetMark:Gp});const Xp=(e,t={})=>({tr:r,state:n,dispatch:o})=>{let i=null,s=null;const a=qr(typeof e=="string"?e:e.name,n.schema);return a?(a==="node"&&(i=tt(e,n.schema)),a==="mark"&&(s=he(e,n.schema)),o&&r.selection.ranges.forEach(c=>{const l=c.$from.pos,u=c.$to.pos;n.doc.nodesBetween(l,u,(f,p)=>{i&&i===f.type&&r.setNodeMarkup(p,void 0,S(S({},f.attrs),t)),s&&f.marks.length&&f.marks.forEach(d=>{if(s===d.type){const h=Math.max(p,l),v=Math.min(p+f.nodeSize,u);r.addMark(h,v,s.create(S(S({},d.attrs),t)))}})})}),!0):!1};var Qp=Object.freeze({__proto__:null,updateAttributes:Xp});const Zp=(e,t={})=>({state:r,dispatch:n})=>{const o=tt(e,r.schema);return je(r,o,t)?!1:na(o,t)(r,n)};var td=Object.freeze({__proto__:null,wrapIn:Zp});const ed=(e,t={})=>({state:r,dispatch:n})=>{const o=tt(e,r.schema);return Lu(o,t)(r,n)};var rd=Object.freeze({__proto__:null,wrapInList:ed});const nd=St.create({name:"commands",addCommands(){return S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S(S({},af),lf),ff),df),mf),gf),bf),Sf),xf),Of),Af),Nf),Rf),Bf),Lf),Hf),qf),Wf),Gf),Xf),Zf),ep),np),ip),ap),lp),fp),dp),mp),gp),bp),Sp),xp),Op),Tp),_p),Dp),Rp),Lp),Vp),jp),Jp),Kp),Up),Yp),Qp),td),rd)}}),od=St.create({name:"editable",addProseMirrorPlugins(){return[new Rt({key:new Wt("editable"),props:{editable:()=>this.editor.options.editable}})]}}),id=St.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:e}=this;return[new Rt({key:new Wt("focusEvents"),props:{attributes:{tabindex:"0"},handleDOMEvents:{focus:(t,r)=>{e.isFocused=!0;const n=e.state.tr.setMeta("focus",{event:r}).setMeta("addToHistory",!1);return t.dispatch(n),!1},blur:(t,r)=>{e.isFocused=!1;const n=e.state.tr.setMeta("blur",{event:r}).setMeta("addToHistory",!1);return t.dispatch(n),!1}}}})]}}),sd=St.create({name:"keymap",addKeyboardShortcuts(){const e=()=>this.editor.commands.first(({commands:r})=>[()=>r.undoInputRule(),()=>r.deleteSelection(),()=>r.joinBackward(),()=>r.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:r})=>[()=>r.deleteSelection(),()=>r.joinForward(),()=>r.selectNodeForward()]);return{Enter:()=>this.editor.commands.first(({commands:r})=>[()=>r.newlineInCode(),()=>r.createParagraphNear(),()=>r.liftEmptyBlock(),()=>r.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:()=>e(),"Mod-Backspace":()=>e(),Delete:()=>t(),"Mod-Delete":()=>t()}}});var ad=Object.freeze({__proto__:null,ClipboardTextSerializer:of,Commands:nd,Editable:od,FocusEvents:id,Keymap:sd});const cd=`.ProseMirror { - position: relative; -} - -.ProseMirror { - word-wrap: break-word; - white-space: pre-wrap; - -webkit-font-variant-ligatures: none; - font-variant-ligatures: none; -} - -.ProseMirror [contenteditable="false"] { - white-space: normal; -} - -.ProseMirror [contenteditable="false"] [contenteditable="true"] { - white-space: pre-wrap; -} - -.ProseMirror pre { - white-space: pre-wrap; -} - -.ProseMirror-gapcursor { - display: none; - pointer-events: none; - position: absolute; -} - -.ProseMirror-gapcursor:after { - content: ""; - display: block; - position: absolute; - top: -2px; - width: 20px; - border-top: 1px solid black; - animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite; -} - -@keyframes ProseMirror-cursor-blink { - to { - visibility: hidden; - } -} - -.ProseMirror-hideselection *::selection { - background: transparent; -} - -.ProseMirror-hideselection *::-moz-selection { - background: transparent; -} - -.ProseMirror-hideselection * { - caret-color: transparent; -} - -.ProseMirror-focused .ProseMirror-gapcursor { - display: block; -} - -.tippy-box[data-animation=fade][data-state=hidden] { - opacity: 0 -}`;class ld extends ef{constructor(t={}){super();this.isFocused=!1,this.options={element:document.createElement("div"),content:"",injectCSS:!0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},enableInputRules:!0,enablePasteRules:!0,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),window.setTimeout(()=>{this.isDestroyed||(this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}))},0)}get commands(){return this.commandManager.createCommands()}chain(){return this.commandManager.createChain()}can(){return this.commandManager.createCan()}injectCSS(){this.options.injectCSS&&document&&(this.css=Yu(cd))}setOptions(t={}){this.options=S(S({},this.options),t),!(!this.view||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t){this.setOptions({editable:t})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(t,r){const n=typeof r=="function"?r(t,this.state.plugins):[...this.state.plugins,t],o=this.state.reconfigure({plugins:n});this.view.updateState(o)}unregisterPlugin(t){if(this.isDestroyed)return;const r=typeof t=="string"?`${t}$`:t.key,n=this.state.reconfigure({plugins:this.state.plugins.filter(o=>!o.key.startsWith(r))});this.view.updateState(n)}createExtensionManager(){const r=[...Object.entries(ad).map(([,n])=>n),...this.options.extensions].filter(n=>["extension","node","mark"].includes(n==null?void 0:n.type));this.extensionManager=new hr(r,this)}createCommandManager(){this.commandManager=new Xu(this,this.extensionManager.commands)}createSchema(){this.schema=this.extensionManager.schema}createView(){this.view=new Z(this.options.element,Tt(S({},this.options.editorProps),{dispatchTransaction:this.dispatchTransaction.bind(this),state:mt.create({doc:la(this.options.content,this.schema,this.options.parseOptions)})}));const t=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(t),this.createNodeViews();const r=this.view.dom;r.editor=this}createNodeViews(){this.view.setProps({nodeViews:this.extensionManager.nodeViews})}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const r=this.capturedTransaction;return this.capturedTransaction=null,r}dispatchTransaction(t){if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(s=>{var a;return(a=this.capturedTransaction)===null||a===void 0?void 0:a.step(s)});return}const r=this.state.apply(t),n=!this.state.selection.eq(r.selection);this.view.updateState(r),this.emit("transaction",{editor:this,transaction:t}),n&&this.emit("selectionUpdate",{editor:this,transaction:t});const o=t.getMeta("focus"),i=t.getMeta("blur");o&&this.emit("focus",{editor:this,event:o.event,transaction:t}),i&&this.emit("blur",{editor:this,event:i.event,transaction:t}),!(!t.docChanged||t.getMeta("preventUpdate"))&&this.emit("update",{editor:this,transaction:t})}getAttributes(t){return Wu(this.state,t)}isActive(t,r){const n=typeof t=="string"?t:null,o=typeof t=="string"?r:t;return Ku(this.state,n,o)}getJSON(){return this.state.doc.toJSON()}getHTML(){return Uu(this.state.doc,this.schema)}get isEmpty(){return Gu(this.state.doc)}getCharacterCount(){return this.state.doc.content.size-2}destroy(){this.emit("destroy"),this.view&&this.view.destroy(),this.removeAllListeners(),$u(this.css)}get isDestroyed(){var t;return!((t=this.view)===null||t===void 0?void 0:t.docView)}}class wt{constructor(t={}){this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config=S(S({},this.config),t),this.name=this.config.name,this.options=this.config.defaultOptions}static create(t={}){return new wt(t)}configure(t={}){const r=this.extend();return r.options=Wr(this.options,t),r}extend(t={}){const r=new wt(t);return r.parent=this,this.child=r,r.name=t.name?t.name:r.parent.name,r.options=t.defaultOptions?t.defaultOptions:r.parent.options,r}}class Te{constructor(t={}){this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config=S(S({},this.config),t),this.name=this.config.name,this.options=this.config.defaultOptions}static create(t={}){return new Te(t)}configure(t={}){const r=this.extend();return r.options=Wr(this.options,t),r}extend(t={}){const r=new Te(t);return r.parent=this,this.child=r,r.name=t.name?t.name:r.parent.name,r.options=t.defaultOptions?t.defaultOptions:r.parent.options,r}}function ud(e,t,r){return new Ut(e,(n,o,i,s)=>{const a=r instanceof Function?r(o):r,{tr:c}=n;return o[0]&&c.replaceWith(i-1,s,t.create(a)),c})}function fd(e,t,r){let n=[];return r.doc.nodesBetween(e,t,(o,i)=>{n=[...n,...o.marks.map(s=>({from:i,to:i+o.nodeSize,mark:s}))]}),n}function qe(e,t,r){return new Ut(e,(n,o,i,s)=>{const a=r instanceof Function?r(o):r,{tr:c}=n,l=o[o.length-1],u=o[0];let f=s;if(l){const p=u.search(/\S/),d=i+u.indexOf(l),h=d+l.length;if(fd(i,s,n).filter(g=>{const{excluded:M}=g.mark.type;return M.find(y=>y.name===t.name)}).filter(g=>g.to>d).length)return null;hi&&c.delete(i+p,d),f=i+p+l.length,c.addMark(i+p,f,t.create(a)),c.removeStoredMark(t)}return c})}function Je(e,t,r){const n=(o,i)=>{const s=[];return o.forEach(a=>{if(a.isText&&a.text){const{text:c}=a;let l=0,u;for(;(u=e.exec(c))!==null;){const f=Math.max(u.length-2,0),p=Math.max(u.length-1,0);if(i==null?void 0:i.type.allowsMarkType(t)){const h=u.index+u[0].indexOf(u[f]),v=h+u[f].length,g=h+u[f].lastIndexOf(u[p]),M=g+u[p].length,y=r instanceof Function?r(u):r;if(!y&&y!==void 0)continue;h>0&&s.push(a.cut(l,h)),s.push(a.cut(g,M).mark(t.create(y).addToSet(a.marks))),l=v}}lnew C(n(o.content),o.openStart,o.openEnd)}})}function pd(e){return ha(e)&&e instanceof E}function ba(e,t,r){const n=e.coordsAtPos(t),o=e.coordsAtPos(r,-1),i=Math.min(n.top,o.top),s=Math.max(n.bottom,o.bottom),a=Math.min(n.left,o.left),c=Math.max(n.right,o.right),l=c-a,u=s-i,d={top:i,bottom:s,left:a,right:c,width:l,height:u,x:a,y:i};return Tt(S({},d),{toJSON:()=>d})}var dd="tippy-box",ka="tippy-content",hd="tippy-backdrop",Sa="tippy-arrow",Ma="tippy-svg-arrow",Ae={passive:!0,capture:!0};function So(e,t,r){if(Array.isArray(e)){var n=e[t];return n==null?Array.isArray(r)?r[t]:r:n}return e}function Mo(e,t){var r={}.toString.call(e);return r.indexOf("[object")===0&&r.indexOf(t+"]")>-1}function xa(e,t){return typeof e=="function"?e.apply(void 0,t):e}function Ca(e,t){if(t===0)return e;var r;return function(n){clearTimeout(r),r=setTimeout(function(){e(n)},t)}}function md(e){return e.split(/\s+/).filter(Boolean)}function vr(e){return[].concat(e)}function Oa(e,t){e.indexOf(t)===-1&&e.push(t)}function vd(e){return e.filter(function(t,r){return e.indexOf(t)===r})}function gd(e){return e.split("-")[0]}function $r(e){return[].slice.call(e)}function yd(e){return Object.keys(e).reduce(function(t,r){return e[r]!==void 0&&(t[r]=e[r]),t},{})}function gr(){return document.createElement("div")}function Ur(e){return["Element","Fragment"].some(function(t){return Mo(e,t)})}function bd(e){return Mo(e,"NodeList")}function kd(e){return Mo(e,"MouseEvent")}function Sd(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Md(e){return Ur(e)?[e]:bd(e)?$r(e):Array.isArray(e)?e:$r(document.querySelectorAll(e))}function xo(e,t){e.forEach(function(r){r&&(r.style.transitionDuration=t+"ms")})}function wa(e,t){e.forEach(function(r){r&&r.setAttribute("data-state",t)})}function xd(e){var t,r=vr(e),n=r[0];return(n==null||(t=n.ownerDocument)==null?void 0:t.body)?n.ownerDocument:document}function Cd(e,t){var r=t.clientX,n=t.clientY;return e.every(function(o){var i=o.popperRect,s=o.popperState,a=o.props,c=a.interactiveBorder,l=gd(s.placement),u=s.modifiersData.offset;if(!u)return!0;var f=l==="bottom"?u.top.y:0,p=l==="top"?u.bottom.y:0,d=l==="right"?u.left.x:0,h=l==="left"?u.right.x:0,v=i.top-n+f>c,g=n-i.bottom-p>c,M=i.left-r+d>c,y=r-i.right-h>c;return v||g||M||y})}function Co(e,t,r){var n=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(o){e[n](o,r)})}var Gt={isTouch:!1},Ta=0;function Od(){Gt.isTouch||(Gt.isTouch=!0,window.performance&&document.addEventListener("mousemove",Aa))}function Aa(){var e=performance.now();e-Ta<20&&(Gt.isTouch=!1,document.removeEventListener("mousemove",Aa)),Ta=e}function wd(){var e=document.activeElement;if(Sd(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Td(){document.addEventListener("touchstart",Od,Ae),window.addEventListener("blur",wd)}var Ad=typeof window!="undefined"&&typeof document!="undefined",_d=Ad?navigator.userAgent:"",Nd=/MSIE |Trident\//.test(_d),Ed={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Dd={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ht=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},Ed,{},Dd),Id=Object.keys(Ht),Rd=function(t){var r=Object.keys(t);r.forEach(function(n){Ht[n]=t[n]})};function _a(e){var t=e.plugins||[],r=t.reduce(function(n,o){var i=o.name,s=o.defaultValue;return i&&(n[i]=e[i]!==void 0?e[i]:s),n},{});return Object.assign({},e,{},r)}function Pd(e,t){var r=t?Object.keys(_a(Object.assign({},Ht,{plugins:t}))):Id,n=r.reduce(function(o,i){var s=(e.getAttribute("data-tippy-"+i)||"").trim();if(!s)return o;if(i==="content")o[i]=s;else try{o[i]=JSON.parse(s)}catch{o[i]=s}return o},{});return n}function Na(e,t){var r=Object.assign({},t,{content:xa(t.content,[e])},t.ignoreAttributes?{}:Pd(e,t.plugins));return r.aria=Object.assign({},Ht.aria,{},r.aria),r.aria={expanded:r.aria.expanded==="auto"?t.interactive:r.aria.expanded,content:r.aria.content==="auto"?t.interactive?null:"describedby":r.aria.content},r}var Bd=function(){return"innerHTML"};function Oo(e,t){e[Bd()]=t}function Ea(e){var t=gr();return e===!0?t.className=Sa:(t.className=Ma,Ur(e)?t.appendChild(e):Oo(t,e)),t}function Da(e,t){Ur(t.content)?(Oo(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?Oo(e,t.content):e.textContent=t.content)}function wo(e){var t=e.firstElementChild,r=$r(t.children);return{box:t,content:r.find(function(n){return n.classList.contains(ka)}),arrow:r.find(function(n){return n.classList.contains(Sa)||n.classList.contains(Ma)}),backdrop:r.find(function(n){return n.classList.contains(hd)})}}function Ia(e){var t=gr(),r=gr();r.className=dd,r.setAttribute("data-state","hidden"),r.setAttribute("tabindex","-1");var n=gr();n.className=ka,n.setAttribute("data-state","hidden"),Da(n,e.props),t.appendChild(r),r.appendChild(n),o(e.props,e.props);function o(i,s){var a=wo(t),c=a.box,l=a.content,u=a.arrow;s.theme?c.setAttribute("data-theme",s.theme):c.removeAttribute("data-theme"),typeof s.animation=="string"?c.setAttribute("data-animation",s.animation):c.removeAttribute("data-animation"),s.inertia?c.setAttribute("data-inertia",""):c.removeAttribute("data-inertia"),c.style.maxWidth=typeof s.maxWidth=="number"?s.maxWidth+"px":s.maxWidth,s.role?c.setAttribute("role",s.role):c.removeAttribute("role"),(i.content!==s.content||i.allowHTML!==s.allowHTML)&&Da(l,e.props),s.arrow?u?i.arrow!==s.arrow&&(c.removeChild(u),c.appendChild(Ea(s.arrow))):c.appendChild(Ea(s.arrow)):u&&c.removeChild(u)}return{popper:t,onUpdate:o}}Ia.$$tippy=!0;var zd=1,Gr=[],To=[];function Ld(e,t){var r=Na(e,Object.assign({},Ht,{},_a(yd(t)))),n,o,i,s=!1,a=!1,c=!1,l=!1,u,f,p,d=[],h=Ca(Lo,r.interactiveDebounce),v,g=zd++,M=null,y=vd(r.plugins),R={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},m={id:g,reference:e,popper:gr(),popperInstance:M,props:r,state:R,plugins:y,clearDelayTimeouts:Ua,setProps:Ga,setContent:Ya,show:Xa,hide:Qa,hideWithInteractivity:Za,enable:Ka,disable:$a,unmount:tc,destroy:ec};if(!r.render)return m;var I=r.render(m),O=I.popper,F=I.onUpdate;O.setAttribute("data-tippy-root",""),O.id="tippy-"+m.id,m.popper=O,e._tippy=m,O._tippy=m;var J=y.map(function(b){return b.fn(m)}),U=e.hasAttribute("aria-expanded");return Po(),Ke(),oe(),Et("onCreate",[m]),r.showOnCreate&&Jo(),O.addEventListener("mouseenter",function(){m.props.interactive&&m.state.isVisible&&m.clearDelayTimeouts()}),O.addEventListener("mouseleave",function(b){m.props.interactive&&m.props.trigger.indexOf("mouseenter")>=0&&(qt().addEventListener("mousemove",h),h(b))}),m;function T(){var b=m.props.touch;return Array.isArray(b)?b:[b,0]}function Qt(){return T()[0]==="hold"}function rt(){var b;return!!((b=m.props.render)==null?void 0:b.$$tippy)}function ut(){return v||e}function qt(){var b=ut().parentNode;return b?xd(b):document}function G(){return wo(O)}function Y(b){return m.state.isMounted&&!m.state.isVisible||Gt.isTouch||u&&u.type==="focus"?0:So(m.props.delay,b?0:1,Ht.delay)}function oe(){O.style.pointerEvents=m.props.interactive&&m.state.isVisible?"":"none",O.style.zIndex=""+m.props.zIndex}function Et(b,w,N){if(N===void 0&&(N=!0),J.forEach(function(z){z[b]&&z[b].apply(void 0,w)}),N){var j;(j=m.props)[b].apply(j,w)}}function No(){var b=m.props.aria;if(!!b.content){var w="aria-"+b.content,N=O.id,j=vr(m.props.triggerTarget||e);j.forEach(function(z){var vt=z.getAttribute(w);if(m.state.isVisible)z.setAttribute(w,vt?vt+" "+N:N);else{var Dt=vt&&vt.replace(N,"").trim();Dt?z.setAttribute(w,Dt):z.removeAttribute(w)}})}}function Ke(){if(!(U||!m.props.aria.expanded)){var b=vr(m.props.triggerTarget||e);b.forEach(function(w){m.props.interactive?w.setAttribute("aria-expanded",m.state.isVisible&&w===ut()?"true":"false"):w.removeAttribute("aria-expanded")})}}function tn(){qt().removeEventListener("mousemove",h),Gr=Gr.filter(function(b){return b!==h})}function yr(b){if(!(Gt.isTouch&&(c||b.type==="mousedown"))&&!(m.props.interactive&&O.contains(b.target))){if(ut().contains(b.target)){if(Gt.isTouch||m.state.isVisible&&m.props.trigger.indexOf("click")>=0)return}else Et("onClickOutside",[m,b]);m.props.hideOnClick===!0&&(m.clearDelayTimeouts(),m.hide(),a=!0,setTimeout(function(){a=!1}),m.state.isMounted||en())}}function Eo(){c=!0}function Do(){c=!1}function Io(){var b=qt();b.addEventListener("mousedown",yr,!0),b.addEventListener("touchend",yr,Ae),b.addEventListener("touchstart",Do,Ae),b.addEventListener("touchmove",Eo,Ae)}function en(){var b=qt();b.removeEventListener("mousedown",yr,!0),b.removeEventListener("touchend",yr,Ae),b.removeEventListener("touchstart",Do,Ae),b.removeEventListener("touchmove",Eo,Ae)}function qa(b,w){Ro(b,function(){!m.state.isVisible&&O.parentNode&&O.parentNode.contains(O)&&w()})}function Ja(b,w){Ro(b,w)}function Ro(b,w){var N=G().box;function j(z){z.target===N&&(Co(N,"remove",j),w())}if(b===0)return w();Co(N,"remove",f),Co(N,"add",j),f=j}function _e(b,w,N){N===void 0&&(N=!1);var j=vr(m.props.triggerTarget||e);j.forEach(function(z){z.addEventListener(b,w,N),d.push({node:z,eventType:b,handler:w,options:N})})}function Po(){Qt()&&(_e("touchstart",zo,{passive:!0}),_e("touchend",Fo,{passive:!0})),md(m.props.trigger).forEach(function(b){if(b!=="manual")switch(_e(b,zo),b){case"mouseenter":_e("mouseleave",Fo);break;case"focus":_e(Nd?"focusout":"blur",Vo);break;case"focusin":_e("focusout",Vo);break}})}function Bo(){d.forEach(function(b){var w=b.node,N=b.eventType,j=b.handler,z=b.options;w.removeEventListener(N,j,z)}),d=[]}function zo(b){var w,N=!1;if(!(!m.state.isEnabled||Ho(b)||a)){var j=((w=u)==null?void 0:w.type)==="focus";u=b,v=b.currentTarget,Ke(),!m.state.isVisible&&kd(b)&&Gr.forEach(function(z){return z(b)}),b.type==="click"&&(m.props.trigger.indexOf("mouseenter")<0||s)&&m.props.hideOnClick!==!1&&m.state.isVisible?N=!0:Jo(b),b.type==="click"&&(s=!N),N&&!j&&br(b)}}function Lo(b){var w=b.target,N=ut().contains(w)||O.contains(w);if(!(b.type==="mousemove"&&N)){var j=rn().concat(O).map(function(z){var vt,Dt=z._tippy,Ne=(vt=Dt.popperInstance)==null?void 0:vt.state;return Ne?{popperRect:z.getBoundingClientRect(),popperState:Ne,props:r}:null}).filter(Boolean);Cd(j,b)&&(tn(),br(b))}}function Fo(b){var w=Ho(b)||m.props.trigger.indexOf("click")>=0&&s;if(!w){if(m.props.interactive){m.hideWithInteractivity(b);return}br(b)}}function Vo(b){m.props.trigger.indexOf("focusin")<0&&b.target!==ut()||m.props.interactive&&b.relatedTarget&&O.contains(b.relatedTarget)||br(b)}function Ho(b){return Gt.isTouch?Qt()!==b.type.indexOf("touch")>=0:!1}function jo(){qo();var b=m.props,w=b.popperOptions,N=b.placement,j=b.offset,z=b.getReferenceClientRect,vt=b.moveTransition,Dt=rt()?wo(O).arrow:null,Ne=z?{getBoundingClientRect:z,contextElement:z.contextElement||ut()}:e,Wo={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(kr){var Ee=kr.state;if(rt()){var rc=G(),on=rc.box;["placement","reference-hidden","escaped"].forEach(function(Sr){Sr==="placement"?on.setAttribute("data-placement",Ee.placement):Ee.attributes.popper["data-popper-"+Sr]?on.setAttribute("data-"+Sr,""):on.removeAttribute("data-"+Sr)}),Ee.attributes.popper={}}}},ge=[{name:"offset",options:{offset:j}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!vt}},Wo];rt()&&Dt&&ge.push({name:"arrow",options:{element:Dt,padding:3}}),ge.push.apply(ge,(w==null?void 0:w.modifiers)||[]),m.popperInstance=ac(Ne,O,Object.assign({},w,{placement:N,onFirstUpdate:p,modifiers:ge}))}function qo(){m.popperInstance&&(m.popperInstance.destroy(),m.popperInstance=null)}function Wa(){var b=m.props.appendTo,w,N=ut();m.props.interactive&&b===Ht.appendTo||b==="parent"?w=N.parentNode:w=xa(b,[N]),w.contains(O)||w.appendChild(O),jo()}function rn(){return $r(O.querySelectorAll("[data-tippy-root]"))}function Jo(b){m.clearDelayTimeouts(),b&&Et("onTrigger",[m,b]),Io();var w=Y(!0),N=T(),j=N[0],z=N[1];Gt.isTouch&&j==="hold"&&z&&(w=z),w?n=setTimeout(function(){m.show()},w):m.show()}function br(b){if(m.clearDelayTimeouts(),Et("onUntrigger",[m,b]),!m.state.isVisible){en();return}if(!(m.props.trigger.indexOf("mouseenter")>=0&&m.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(b.type)>=0&&s)){var w=Y(!1);w?o=setTimeout(function(){m.state.isVisible&&m.hide()},w):i=requestAnimationFrame(function(){m.hide()})}}function Ka(){m.state.isEnabled=!0}function $a(){m.hide(),m.state.isEnabled=!1}function Ua(){clearTimeout(n),clearTimeout(o),cancelAnimationFrame(i)}function Ga(b){if(!m.state.isDestroyed){Et("onBeforeUpdate",[m,b]),Bo();var w=m.props,N=Na(e,Object.assign({},m.props,{},b,{ignoreAttributes:!0}));m.props=N,Po(),w.interactiveDebounce!==N.interactiveDebounce&&(tn(),h=Ca(Lo,N.interactiveDebounce)),w.triggerTarget&&!N.triggerTarget?vr(w.triggerTarget).forEach(function(j){j.removeAttribute("aria-expanded")}):N.triggerTarget&&e.removeAttribute("aria-expanded"),Ke(),oe(),F&&F(w,N),m.popperInstance&&(jo(),rn().forEach(function(j){requestAnimationFrame(j._tippy.popperInstance.forceUpdate)})),Et("onAfterUpdate",[m,b])}}function Ya(b){m.setProps({content:b})}function Xa(){var b=m.state.isVisible,w=m.state.isDestroyed,N=!m.state.isEnabled,j=Gt.isTouch&&!m.props.touch,z=So(m.props.duration,0,Ht.duration);if(!(b||w||N||j)&&!ut().hasAttribute("disabled")&&(Et("onShow",[m],!1),m.props.onShow(m)!==!1)){if(m.state.isVisible=!0,rt()&&(O.style.visibility="visible"),oe(),Io(),m.state.isMounted||(O.style.transition="none"),rt()){var vt=G(),Dt=vt.box,Ne=vt.content;xo([Dt,Ne],0)}p=function(){var ge;if(!(!m.state.isVisible||l)){if(l=!0,O.offsetHeight,O.style.transition=m.props.moveTransition,rt()&&m.props.animation){var nn=G(),kr=nn.box,Ee=nn.content;xo([kr,Ee],z),wa([kr,Ee],"visible")}No(),Ke(),Oa(To,m),(ge=m.popperInstance)==null||ge.forceUpdate(),m.state.isMounted=!0,Et("onMount",[m]),m.props.animation&&rt()&&Ja(z,function(){m.state.isShown=!0,Et("onShown",[m])})}},Wa()}}function Qa(){var b=!m.state.isVisible,w=m.state.isDestroyed,N=!m.state.isEnabled,j=So(m.props.duration,1,Ht.duration);if(!(b||w||N)&&(Et("onHide",[m],!1),m.props.onHide(m)!==!1)){if(m.state.isVisible=!1,m.state.isShown=!1,l=!1,s=!1,rt()&&(O.style.visibility="hidden"),tn(),en(),oe(),rt()){var z=G(),vt=z.box,Dt=z.content;m.props.animation&&(xo([vt,Dt],j),wa([vt,Dt],"hidden"))}No(),Ke(),m.props.animation?rt()&&qa(j,m.unmount):m.unmount()}}function Za(b){qt().addEventListener("mousemove",h),Oa(Gr,h),h(b)}function tc(){m.state.isVisible&&m.hide(),!!m.state.isMounted&&(qo(),rn().forEach(function(b){b._tippy.unmount()}),O.parentNode&&O.parentNode.removeChild(O),To=To.filter(function(b){return b!==m}),m.state.isMounted=!1,Et("onHidden",[m]))}function ec(){m.state.isDestroyed||(m.clearDelayTimeouts(),m.unmount(),Bo(),delete e._tippy,m.state.isDestroyed=!0,Et("onDestroy",[m]))}}function We(e,t){t===void 0&&(t={});var r=Ht.plugins.concat(t.plugins||[]);Td();var n=Object.assign({},t,{plugins:r}),o=Md(e),i=o.reduce(function(s,a){var c=a&&Ld(a,n);return c&&s.push(c),s},[]);return Ur(e)?i[0]:i}We.defaultProps=Ht;We.setDefaultProps=Rd;We.currentInput=Gt;Object.assign({},sc,{effect:function(t){var r=t.state,n={popper:{position:r.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(r.elements.popper.style,n.popper),r.styles=n,r.elements.arrow&&Object.assign(r.elements.arrow.style,n.arrow)}});We.setDefaultProps({render:Ia});class Fd{constructor({editor:t,element:r,view:n,tippyOptions:o,shouldShow:i}){this.preventHide=!1,this.shouldShow=({state:s,from:a,to:c})=>{const{doc:l,selection:u}=s,{empty:f}=u,p=!l.textBetween(a,c).length&&ma(s.selection);return!(f||p)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:s})=>{var a;if(this.preventHide){this.preventHide=!1;return}(s==null?void 0:s.relatedTarget)&&((a=this.element.parentNode)===null||a===void 0?void 0:a.contains(s.relatedTarget))||this.hide()},this.editor=t,this.element=r,this.view=n,i&&(this.shouldShow=i),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener("dragstart",this.dragstartHandler),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.element.style.visibility="visible",requestAnimationFrame(()=>{this.createTooltip(o)})}createTooltip(t={}){this.tippy=We(this.editor.options.element,S({duration:0,getReferenceClientRect:null,content:this.element,interactive:!0,trigger:"manual",placement:"top",hideOnClick:"toggle"},t))}update(t,r){var n;const{state:o,composing:i}=t,{doc:s,selection:a}=o,c=r&&r.doc.eq(s)&&r.selection.eq(a);if(i||c)return;const{ranges:l}=a,u=Math.min(...l.map(d=>d.$from.pos)),f=Math.max(...l.map(d=>d.$to.pos));if(!this.shouldShow({editor:this.editor,view:t,state:o,oldState:r,from:u,to:f})){this.hide();return}(n=this.tippy)===null||n===void 0||n.setProps({getReferenceClientRect:()=>{if(pd(o.selection)){const d=t.nodeDOM(u);if(d)return d.getBoundingClientRect()}return ba(t,u,f)}}),this.show()}show(){var t;(t=this.tippy)===null||t===void 0||t.show()}hide(){var t;(t=this.tippy)===null||t===void 0||t.hide()}destroy(){var t;(t=this.tippy)===null||t===void 0||t.destroy(),this.element.removeEventListener("mousedown",this.mousedownHandler),this.view.dom.removeEventListener("dragstart",this.dragstartHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler)}}const Ra=e=>new Rt({key:typeof e.pluginKey=="string"?new Wt(e.pluginKey):e.pluginKey,view:t=>new Fd(S({view:t},e))});St.create({name:"bubbleMenu",defaultOptions:{element:null,tippyOptions:{},pluginKey:"bubbleMenu",shouldShow:null},addProseMirrorPlugins(){return this.options.element?[Ra({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,shouldShow:this.options.shouldShow})]:[]}});class Vd{constructor({editor:t,element:r,view:n,tippyOptions:o,shouldShow:i}){this.preventHide=!1,this.shouldShow=({state:s})=>{const{selection:a}=s,{$anchor:c,empty:l}=a,u=c.depth===1,f=c.parent.isTextblock&&!c.parent.type.spec.code&&!c.parent.textContent;return!(!l||!u||!f)},this.mousedownHandler=()=>{this.preventHide=!0},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:s})=>{var a;if(this.preventHide){this.preventHide=!1;return}(s==null?void 0:s.relatedTarget)&&((a=this.element.parentNode)===null||a===void 0?void 0:a.contains(s.relatedTarget))||this.hide()},this.editor=t,this.element=r,this.view=n,i&&(this.shouldShow=i),this.element.addEventListener("mousedown",this.mousedownHandler,{capture:!0}),this.editor.on("focus",this.focusHandler),this.editor.on("blur",this.blurHandler),this.element.style.visibility="visible",requestAnimationFrame(()=>{this.createTooltip(o)})}createTooltip(t={}){this.tippy=We(this.editor.options.element,S({duration:0,getReferenceClientRect:null,content:this.element,interactive:!0,trigger:"manual",placement:"right",hideOnClick:"toggle"},t))}update(t,r){var n;const{state:o,composing:i}=t,{doc:s,selection:a}=o,{from:c,to:l}=a,u=r&&r.doc.eq(s)&&r.selection.eq(a);if(i||u)return;if(!this.shouldShow({editor:this.editor,view:t,state:o,oldState:r})){this.hide();return}(n=this.tippy)===null||n===void 0||n.setProps({getReferenceClientRect:()=>ba(t,c,l)}),this.show()}show(){var t;(t=this.tippy)===null||t===void 0||t.show()}hide(){var t;(t=this.tippy)===null||t===void 0||t.hide()}destroy(){var t;(t=this.tippy)===null||t===void 0||t.destroy(),this.element.removeEventListener("mousedown",this.mousedownHandler),this.editor.off("focus",this.focusHandler),this.editor.off("blur",this.blurHandler)}}const Pa=e=>new Rt({key:typeof e.pluginKey=="string"?new Wt(e.pluginKey):e.pluginKey,view:t=>new Vd(S({view:t},e))});St.create({name:"floatingMenu",defaultOptions:{element:null,tippyOptions:{},pluginKey:"floatingMenu",shouldShow:null},addProseMirrorPlugins(){return this.options.element?[Pa({pluginKey:this.options.pluginKey,editor:this.editor,element:this.options.element,tippyOptions:this.options.tippyOptions,shouldShow:this.options.shouldShow})]:[]}});$e({name:"BubbleMenu",props:{pluginKey:{type:[String,Object],default:"bubbleMenu"},editor:{type:Object,required:!0},tippyOptions:{type:Object,default:()=>({})},shouldShow:{type:Function,default:null}},setup(e,{slots:t}){const r=xr(null);return sn(()=>{const{pluginKey:n,editor:o,tippyOptions:i,shouldShow:s}=e;o.registerPlugin(Ra({pluginKey:n,editor:o,element:r.value,tippyOptions:i,shouldShow:s}))}),Cr(()=>{const{pluginKey:n,editor:o}=e;o.unregisterPlugin(n)}),()=>{var n;return ye("div",{ref:r},(n=t.default)===null||n===void 0?void 0:n.call(t))}}});function Hd(e){return hc((t,r)=>({get(){return t(),e},set(n){e=n,requestAnimationFrame(()=>{requestAnimationFrame(()=>{r()})})}}))}class jd extends ld{constructor(t={}){super(t);return this.vueRenderers=dc(new Map),this.contentComponent=null,this.reactiveState=Hd(this.view.state),this.on("transaction",()=>{this.reactiveState.value=this.view.state}),mc(this)}get state(){return this.reactiveState?this.reactiveState.value:this.view.state}registerPlugin(t,r){super.registerPlugin(t,r),this.reactiveState.value=this.view.state}unregisterPlugin(t){super.unregisterPlugin(t),this.reactiveState.value=this.view.state}}const qd=$e({name:"EditorContent",props:{editor:{default:null,type:Object}},setup(e){const t=xr(),r=cc();return lc(()=>{const n=e.editor;n&&n.options.element&&t.value&&uc(()=>{if(!t.value||!n.options.element.firstChild)return;const o=fc(t.value);t.value.append(...n.options.element.childNodes),n.contentComponent=r.ctx._,n.setOptions({element:o}),n.createNodeViews()})}),Cr(()=>{const n=e.editor;if(!n||(n.isDestroyed||n.view.setProps({nodeViews:{}}),n.contentComponent=null,!n.options.element.firstChild))return;const o=document.createElement("div");o.append(...n.options.element.childNodes),n.setOptions({element:o})}),{rootEl:t}},render(){const e=[];return this.editor&&this.editor.vueRenderers.forEach(t=>{const r=ye(pc,{to:t.teleportElement,key:t.id},ye(t.component,S({ref:t.id},t.props)));e.push(r)}),ye("div",{ref:t=>{this.rootEl=t}},...e)}});$e({name:"FloatingMenu",props:{pluginKey:{type:[String,Object],default:"floatingMenu"},editor:{type:Object,required:!0},tippyOptions:{type:Object,default:()=>({})},shouldShow:{type:Function,default:null}},setup(e,{slots:t}){const r=xr(null);return sn(()=>{const{pluginKey:n,editor:o,tippyOptions:i,shouldShow:s}=e;o.registerPlugin(Pa({pluginKey:n,editor:o,element:r.value,tippyOptions:i,shouldShow:s}))}),Cr(()=>{const{pluginKey:n,editor:o}=e;o.unregisterPlugin(n)}),()=>{var n;return ye("div",{ref:r},(n=t.default)===null||n===void 0?void 0:n.call(t))}}});const Jd=(e={})=>{const t=xr();return sn(()=>{t.value=new jd(e)}),Cr(()=>{var r;(r=t.value)===null||r===void 0||r.destroy()}),t};$e({props:{as:{type:String,default:"div"}},inject:["onDragStart","decorationClasses"],render(){var e,t;return ye(this.as,{class:this.decorationClasses.value,style:{whiteSpace:"normal"},"data-node-view-wrapper":"",onDragStart:this.onDragStart},(t=(e=this.$slots).default)===null||t===void 0?void 0:t.call(e))}});$e({props:{as:{type:String,default:"div"}},render(){return ye(this.as,{style:{whiteSpace:"pre-wrap"},"data-node-view-content":""})}});const Wd=/^\s*>\s$/gm,Kd=wt.create({name:"blockquote",defaultOptions:{HTMLAttributes:{}},content:"block*",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:e}){return["blockquote",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setBlockquote:()=>({commands:e})=>e.wrapIn("blockquote"),toggleBlockquote:()=>({commands:e})=>e.toggleWrap("blockquote"),unsetBlockquote:()=>({commands:e})=>e.lift("blockquote")}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[uo(Wd,this.type)]}}),$d=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))$/gm,Ud=/(?:^|\s)((?:\*\*)((?:[^*]+))(?:\*\*))/gm,Gd=/(?:^|\s)((?:__)((?:[^__]+))(?:__))$/gm,Yd=/(?:^|\s)((?:__)((?:[^__]+))(?:__))/gm,Xd=Te.create({name:"bold",defaultOptions:{HTMLAttributes:{}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:e=>e.style.fontWeight!=="normal"&&null},{style:"font-weight",getAttrs:e=>/^(bold(er)?|[5-9]\d{2,})$/.test(e)&&null}]},renderHTML({HTMLAttributes:e}){return["strong",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setBold:()=>({commands:e})=>e.setMark("bold"),toggleBold:()=>({commands:e})=>e.toggleMark("bold"),unsetBold:()=>({commands:e})=>e.unsetMark("bold")}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold()}},addInputRules(){return[qe($d,this.type),qe(Gd,this.type)]},addPasteRules(){return[Je(Ud,this.type),Je(Yd,this.type)]}}),Qd=/^\s*([-+*])\s$/,Zd=wt.create({name:"bulletList",defaultOptions:{HTMLAttributes:{}},group:"block list",content:"listItem+",parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:e}){return["ul",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleBulletList:()=>({commands:e})=>e.toggleList("bulletList","listItem")}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){return[uo(Qd,this.type)]}}),th=/(?:^|\s)((?:`)((?:[^`]+))(?:`))$/gm,eh=/(?:^|\s)((?:`)((?:[^`]+))(?:`))/gm,rh=Te.create({name:"code",defaultOptions:{HTMLAttributes:{}},excludes:"_",parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:e}){return["code",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setCode:()=>({commands:e})=>e.setMark("code"),toggleCode:()=>({commands:e})=>e.toggleMark("code"),unsetCode:()=>({commands:e})=>e.unsetMark("code")}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[qe(th,this.type)]},addPasteRules(){return[Je(eh,this.type)]}}),nh=/^```(?[a-z]*)? $/,oh=/^~~~(?[a-z]*)? $/,ih=wt.create({name:"codeBlock",defaultOptions:{languageClassPrefix:"language-",HTMLAttributes:{}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:null,parseHTML:e=>{var t;const r=(t=e.firstElementChild)===null||t===void 0?void 0:t.getAttribute("class");if(!r)return null;const n=new RegExp(`^(${this.options.languageClassPrefix})`);return{language:r.replace(n,"")}},renderHTML:e=>e.language?{class:this.options.languageClassPrefix+e.language}:null}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({HTMLAttributes:e}){return["pre",this.options.HTMLAttributes,["code",e,0]]},addCommands(){return{setCodeBlock:e=>({commands:t})=>t.setNode("codeBlock",e),toggleCodeBlock:e=>({commands:t})=>t.toggleNode("codeBlock","paragraph",e)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:e,$anchor:t}=this.editor.state.selection,r=t.pos===1;return!e||t.parent.type.name!==this.name?!1:r||!t.parent.textContent.length?this.editor.commands.clearNodes():!1}}},addInputRules(){return[fo(nh,this.type,({groups:e})=>e),fo(oh,this.type,({groups:e})=>e)]}}),sh=wt.create({name:"doc",topNode:!0,content:"block+"});function ah(e){return e===void 0&&(e={}),new Rt({view:function(r){return new Yt(r,e)}})}var Yt=function(t,r){var n=this;this.editorView=t,this.width=r.width||1,this.color=r.color||"black",this.class=r.class,this.cursorPos=null,this.element=null,this.timeout=null,this.handlers=["dragover","dragend","drop","dragleave"].map(function(o){var i=function(s){return n[o](s)};return t.dom.addEventListener(o,i),{name:o,handler:i}})};Yt.prototype.destroy=function(){var t=this;this.handlers.forEach(function(r){var n=r.name,o=r.handler;return t.editorView.dom.removeEventListener(n,o)})};Yt.prototype.update=function(t,r){this.cursorPos!=null&&r.doc!=t.state.doc&&(this.cursorPos>t.state.doc.content.size?this.setCursor(null):this.updateOverlay())};Yt.prototype.setCursor=function(t){t!=this.cursorPos&&(this.cursorPos=t,t==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())};Yt.prototype.updateOverlay=function(){var t=this.editorView.state.doc.resolve(this.cursorPos),r;if(!t.parent.inlineContent){var n=t.nodeBefore,o=t.nodeAfter;if(n||o){var i=this.editorView.nodeDOM(this.cursorPos-(n?n.nodeSize:0)).getBoundingClientRect(),s=n?i.bottom:i.top;n&&o&&(s=(s+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2),r={left:i.left,right:i.right,top:s-this.width/2,bottom:s+this.width/2}}}if(!r){var a=this.editorView.coordsAtPos(this.cursorPos);r={left:a.left-this.width/2,right:a.left+this.width/2,top:a.top,bottom:a.bottom}}var c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none; background-color: "+this.color);var l,u;if(!c||c==document.body&&getComputedStyle(c).position=="static")l=-pageXOffset,u=-pageYOffset;else{var f=c.getBoundingClientRect();l=f.left-c.scrollLeft,u=f.top-c.scrollTop}this.element.style.left=r.left-l+"px",this.element.style.top=r.top-u+"px",this.element.style.width=r.right-r.left+"px",this.element.style.height=r.bottom-r.top+"px"};Yt.prototype.scheduleRemoval=function(t){var r=this;clearTimeout(this.timeout),this.timeout=setTimeout(function(){return r.setCursor(null)},t)};Yt.prototype.dragover=function(t){if(!!this.editorView.editable){var r=this.editorView.posAtCoords({left:t.clientX,top:t.clientY});if(r){var n=r.pos;if(this.editorView.dragging&&this.editorView.dragging.slice&&(n=Oi(this.editorView.state.doc,n,this.editorView.dragging.slice),n==null))return this.setCursor(null);this.setCursor(n),this.scheduleRemoval(5e3)}}};Yt.prototype.dragend=function(){this.scheduleRemoval(20)};Yt.prototype.drop=function(){this.scheduleRemoval(20)};Yt.prototype.dragleave=function(t){(t.target==this.editorView.dom||!this.editorView.dom.contains(t.relatedTarget))&&this.setCursor(null)};const ch=St.create({name:"dropCursor",defaultOptions:{color:"currentColor",width:1,class:null},addProseMirrorPlugins(){return[ah(this.options)]}});var jt=function(e){function t(r){e.call(this,r,r)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.map=function(n,o){var i=n.resolve(o.map(this.head));return t.valid(i)?new t(i):e.near(i)},t.prototype.content=function(){return C.empty},t.prototype.eq=function(n){return n instanceof t&&n.head==this.head},t.prototype.toJSON=function(){return{type:"gapcursor",pos:this.head}},t.fromJSON=function(n,o){if(typeof o.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new t(n.resolve(o.pos))},t.prototype.getBookmark=function(){return new Yr(this.anchor)},t.valid=function(n){var o=n.parent;if(o.isTextblock||!lh(n)||!uh(n))return!1;var i=o.type.spec.allowGapCursor;if(i!=null)return i;var s=o.contentMatchAt(n.index()).defaultType;return s&&s.isTextblock},t.findFrom=function(n,o,i){t:for(;;){if(!i&&t.valid(n))return n;for(var s=n.pos,a=null,c=n.depth;;c--){var l=n.node(c);if(o>0?n.indexAfter(c)0){a=l.child(o>0?n.indexAfter(c):n.index(c)-1);break}else if(c==0)return null;s+=o;var u=n.doc.resolve(s);if(t.valid(u))return u}for(;;){var f=o>0?a.firstChild:a.lastChild;if(!f){if(a.isAtom&&!a.isText&&!E.isSelectable(a)){n=n.doc.resolve(s+a.nodeSize*o),i=!1;continue t}break}a=f,s+=o;var p=n.doc.resolve(s);if(t.valid(p))return p}return null}},t}(D);jt.prototype.visible=!1;D.jsonID("gapcursor",jt);var Yr=function(t){this.pos=t};Yr.prototype.map=function(t){return new Yr(t.map(this.pos))};Yr.prototype.resolve=function(t){var r=t.resolve(this.pos);return jt.valid(r)?new jt(r):D.near(r)};function lh(e){for(var t=e.depth;t>=0;t--){var r=e.index(t);if(r!=0)for(var n=e.node(t).child(r-1);;n=n.lastChild){if(n.childCount==0&&!n.inlineContent||n.isAtom||n.type.spec.isolating)return!0;if(n.inlineContent)return!1}}return!0}function uh(e){for(var t=e.depth;t>=0;t--){var r=e.indexAfter(t),n=e.node(t);if(r!=n.childCount)for(var o=n.child(r);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||o.isAtom||o.type.spec.isolating)return!0;if(o.inlineContent)return!1}}return!0}var fh=function(){return new Rt({props:{decorations:hh,createSelectionBetween:function(t,r,n){if(r.pos==n.pos&&jt.valid(n))return new jt(n)},handleClick:dh,handleKeyDown:ph}})},ph=js({ArrowLeft:Xr("horiz",-1),ArrowRight:Xr("horiz",1),ArrowUp:Xr("vert",-1),ArrowDown:Xr("vert",1)});function Xr(e,t){var r=e=="vert"?t>0?"down":"up":t>0?"right":"left";return function(n,o,i){var s=n.selection,a=t>0?s.$to:s.$from,c=s.empty;if(s instanceof H){if(!i.endOfTextblock(r)||a.depth==0)return!1;c=!1,a=n.doc.resolve(t>0?a.after():a.before())}var l=jt.findFrom(a,t,c);return l?(o&&o(n.tr.setSelection(new jt(l))),!0):!1}}function dh(e,t,r){if(!e.editable)return!1;var n=e.state.doc.resolve(t);if(!jt.valid(n))return!1;var o=e.posAtCoords({left:r.clientX,top:r.clientY}),i=o.inside;return i>-1&&E.isSelectable(e.state.doc.nodeAt(i))?!1:(e.dispatch(e.state.tr.setSelection(new jt(n))),!0)}function hh(e){if(!(e.selection instanceof jt))return null;var t=document.createElement("div");return t.className="ProseMirror-gapcursor",q.create(e.doc,[nt.widget(e.selection.head,t,{key:"gapcursor"})])}const mh=St.create({name:"gapCursor",addProseMirrorPlugins(){return[fh()]},extendNodeSchema(e){var t;const r={name:e.name,options:e.options};return{allowGapCursor:(t=et(_(e,"allowGapCursor",r)))!==null&&t!==void 0?t:null}}}),vh=wt.create({name:"hardBreak",defaultOptions:{HTMLAttributes:{}},inline:!0,group:"inline",selectable:!1,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:e}){return["br",Ot(this.options.HTMLAttributes,e)]},addCommands(){return{setHardBreak:()=>({commands:e})=>e.first([()=>e.exitCode(),()=>e.insertContent({type:this.name})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),gh=wt.create({name:"heading",defaultOptions:{levels:[1,2,3,4,5,6],HTMLAttributes:{}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(e=>({tag:`h${e}`,attrs:{level:e}}))},renderHTML({node:e,HTMLAttributes:t}){return[`h${this.options.levels.includes(e.attrs.level)?e.attrs.level:this.options.levels[0]}`,Ot(this.options.HTMLAttributes,t),0]},addCommands(){return{setHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.setNode("heading",e):!1,toggleHeading:e=>({commands:t})=>this.options.levels.includes(e.level)?t.toggleNode("heading","paragraph",e):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((e,t)=>Tt(S({},e),{[`Mod-Alt-${t}`]:()=>this.editor.commands.toggleHeading({level:t})}),{})},addInputRules(){return this.options.levels.map(e=>fo(new RegExp(`^(#{1,${e}})\\s$`),this.type,{level:e}))}});var Qr=200,ct=function(){};ct.prototype.append=function(t){return t.length?(t=ct.from(t),!this.length&&t||t.length=r?ct.empty:this.sliceInner(Math.max(0,t),Math.min(this.length,r))};ct.prototype.get=function(t){if(!(t<0||t>=this.length))return this.getInner(t)};ct.prototype.forEach=function(t,r,n){r===void 0&&(r=0),n===void 0&&(n=this.length),r<=n?this.forEachInner(t,r,n,0):this.forEachInvertedInner(t,r,n,0)};ct.prototype.map=function(t,r,n){r===void 0&&(r=0),n===void 0&&(n=this.length);var o=[];return this.forEach(function(i,s){return o.push(t(i,s))},r,n),o};ct.from=function(t){return t instanceof ct?t:t&&t.length?new Ba(t):ct.empty};var Ba=function(e){function t(n){e.call(this),this.values=n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(o,i){return o==0&&i==this.length?this:new t(this.values.slice(o,i))},t.prototype.getInner=function(o){return this.values[o]},t.prototype.forEachInner=function(o,i,s,a){for(var c=i;c=s;c--)if(o(this.values[c],a+c)===!1)return!1},t.prototype.leafAppend=function(o){if(this.length+o.length<=Qr)return new t(this.values.concat(o.flatten()))},t.prototype.leafPrepend=function(o){if(this.length+o.length<=Qr)return new t(o.flatten().concat(this.values))},r.length.get=function(){return this.values.length},r.depth.get=function(){return 0},Object.defineProperties(t.prototype,r),t}(ct);ct.empty=new Ba([]);var yh=function(e){function t(r,n){e.call(this),this.left=r,this.right=n,this.length=r.length+n.length,this.depth=Math.max(r.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(n){return na&&this.right.forEachInner(n,Math.max(o-a,0),Math.min(this.length,i)-a,s+a)===!1)return!1},t.prototype.forEachInvertedInner=function(n,o,i,s){var a=this.left.length;if(o>a&&this.right.forEachInvertedInner(n,o-a,Math.max(i,a)-a,s+a)===!1||i=i?this.right.slice(n-i,o-i):this.left.slice(n,i).append(this.right.slice(0,o-i))},t.prototype.leafAppend=function(n){var o=this.right.leafAppend(n);if(o)return new t(this.left,o)},t.prototype.leafPrepend=function(n){var o=this.left.leafPrepend(n);if(o)return new t(o,this.right)},t.prototype.appendInner=function(n){return this.left.depth>=Math.max(this.right.depth,n.depth)+1?new t(this.left,new t(this.right,n)):new t(this,n)},t}(ct),za=ct,bh=500,lt=function(t,r){this.items=t,this.eventCount=r};lt.prototype.popEvent=function(t,r){var n=this;if(this.eventCount==0)return null;for(var o=this.items.length;;o--){var i=this.items.get(o-1);if(i.selection){--o;break}}var s,a;r&&(s=this.remapping(o,this.items.length),a=s.maps.length);var c=t.tr,l,u,f=[],p=[];return this.items.forEach(function(d,h){if(!d.step){s||(s=n.remapping(o,h+1),a=s.maps.length),a--,p.push(d);return}if(s){p.push(new Xt(d.map));var v=d.step.map(s.slice(a)),g;v&&c.maybeStep(v).doc&&(g=c.mapping.maps[c.mapping.maps.length-1],f.push(new Xt(g,null,null,f.length+p.length))),a--,g&&s.appendMap(g,a)}else c.maybeStep(d.step);if(d.selection)return l=s?d.selection.map(s.slice(a)):d.selection,u=new lt(n.items.slice(0,o).append(p.reverse().concat(f)),n.eventCount-1),!1},this.items.length,0),{remaining:u,transform:c,selection:l}};lt.prototype.addTransform=function(t,r,n,o){for(var i=[],s=this.eventCount,a=this.items,c=!o&&a.length?a.get(a.length-1):null,l=0;lSh&&(a=kh(a,d),s-=d),new lt(a.append(i),s)};lt.prototype.remapping=function(t,r){var n=new dt;return this.items.forEach(function(o,i){var s=o.mirrorOffset!=null&&i-o.mirrorOffset>=t?n.maps.length-o.mirrorOffset:null;n.appendMap(o.map,s)},t,r),n};lt.prototype.addMaps=function(t){return this.eventCount==0?this:new lt(this.items.append(t.map(function(r){return new Xt(r)})),this.eventCount)};lt.prototype.rebased=function(t,r){if(!this.eventCount)return this;var n=[],o=Math.max(0,this.items.length-r),i=t.mapping,s=t.steps.length,a=this.eventCount;this.items.forEach(function(d){d.selection&&a--},o);var c=r;this.items.forEach(function(d){var h=i.getMirror(--c);if(h!=null){s=Math.min(s,h);var v=i.maps[h];if(d.step){var g=t.steps[h].invert(t.docs[h]),M=d.selection&&d.selection.map(i.slice(c+1,h));M&&a++,n.push(new Xt(v,g,M))}else n.push(new Xt(v))}},o);for(var l=[],u=r;ubh&&(p=p.compress(this.items.length-n.length)),p};lt.prototype.emptyItemCount=function(){var t=0;return this.items.forEach(function(r){r.step||t++}),t};lt.prototype.compress=function(t){t===void 0&&(t=this.items.length);var r=this.remapping(0,t),n=r.maps.length,o=[],i=0;return this.items.forEach(function(s,a){if(a>=t)o.push(s),s.selection&&i++;else if(s.step){var c=s.step.map(r.slice(n)),l=c&&c.getMap();if(n--,l&&r.appendMap(l,n),c){var u=s.selection&&s.selection.map(r.slice(n));u&&i++;var f=new Xt(l.invert(),c,u),p,d=o.length-1;(p=o.length&&o[d].merge(f))?o[d]=p:o.push(f)}}else s.map&&n--},this.items.length,0),new lt(za.from(o.reverse()),i)};lt.empty=new lt(za.empty,0);function kh(e,t){var r;return e.forEach(function(n,o){if(n.selection&&t--==0)return r=o,!1}),e.slice(r)}var Xt=function(t,r,n,o){this.map=t,this.step=r,this.selection=n,this.mirrorOffset=o};Xt.prototype.merge=function(t){if(this.step&&t.step&&!t.selection){var r=t.step.merge(this.step);if(r)return new Xt(r.getMap().invert(),r,this.selection)}};var me=function(t,r,n,o){this.done=t,this.undone=r,this.prevRanges=n,this.prevTime=o},Sh=20;function Mh(e,t,r,n){var o=r.getMeta(ve),i;if(o)return o.historyState;r.getMeta(Ch)&&(e=new me(e.done,e.undone,null,0));var s=r.getMeta("appendedTransaction");if(r.steps.length==0)return e;if(s&&s.getMeta(ve))return s.getMeta(ve).redo?new me(e.done.addTransform(r,null,n,Zr(t)),e.undone,La(r.mapping.maps[r.steps.length-1]),e.prevTime):new me(e.done,e.undone.addTransform(r,null,n,Zr(t)),null,e.prevTime);if(r.getMeta("addToHistory")!==!1&&!(s&&s.getMeta("addToHistory")===!1)){var a=e.prevTime==0||!s&&(e.prevTime<(r.time||0)-n.newGroupDelay||!xh(r,e.prevRanges)),c=s?Ao(e.prevRanges,r.mapping):La(r.mapping.maps[r.steps.length-1]);return new me(e.done.addTransform(r,a?t.selection.getBookmark():null,n,Zr(t)),lt.empty,c,r.time)}else return(i=r.getMeta("rebased"))?new me(e.done.rebased(r,i),e.undone.rebased(r,i),Ao(e.prevRanges,r.mapping),e.prevTime):new me(e.done.addMaps(r.mapping.maps),e.undone.addMaps(r.mapping.maps),Ao(e.prevRanges,r.mapping),e.prevTime)}function xh(e,t){if(!t)return!1;if(!e.docChanged)return!0;var r=!1;return e.mapping.maps[0].forEach(function(n,o){for(var i=0;i=t[i]&&(r=!0)}),r}function La(e){var t=[];return e.forEach(function(r,n,o,i){return t.push(o,i)}),t}function Ao(e,t){if(!e)return null;for(var r=[],n=0;n({state:e,dispatch:t})=>Ha(e,t),redo:()=>({state:e,dispatch:t})=>ja(e,t)}},addProseMirrorPlugins(){return[Oh(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Mod-y":()=>this.editor.commands.redo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-\u044F":()=>this.editor.commands.undo(),"Shift-Mod-\u044F":()=>this.editor.commands.redo()}}}),Th=wt.create({name:"horizontalRule",defaultOptions:{HTMLAttributes:{}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:e}){return["hr",Ot(this.options.HTMLAttributes,e)]},addCommands(){return{setHorizontalRule:()=>({chain:e})=>e().command(({tr:t,dispatch:r})=>{const{selection:n}=t,{empty:o,$anchor:i}=n,s=i.parent.isTextblock&&!i.parent.type.spec.code&&!i.parent.textContent;if(!o||!s||!r)return!0;const a=i.before();return t.deleteRange(a,a+1),!0}).insertContent({type:this.name}).command(({tr:t,dispatch:r})=>{var n;if(r){const{parent:o,pos:i}=t.selection.$from,s=i+1;if(!t.doc.nodeAt(s)){const c=(n=o.type.contentMatch.defaultType)===null||n===void 0?void 0:n.create();c&&(t.insert(s,c),t.setSelection(H.create(t.doc,s)))}t.scrollIntoView()}return!0}).run()}},addInputRules(){return[ud(/^(?:---|—-|___\s|\*\*\*\s)$/,this.type)]}}),Ah=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))$/gm,_h=/(?:^|\s)((?:\*)((?:[^*]+))(?:\*))/gm,Nh=/(?:^|\s)((?:_)((?:[^_]+))(?:_))$/gm,Eh=/(?:^|\s)((?:_)((?:[^_]+))(?:_))/gm,Dh=Te.create({name:"italic",defaultOptions:{HTMLAttributes:{}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:e=>e.style.fontStyle!=="normal"&&null},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:e}){return["em",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setItalic:()=>({commands:e})=>e.setMark("italic"),toggleItalic:()=>({commands:e})=>e.toggleMark("italic"),unsetItalic:()=>({commands:e})=>e.unsetMark("italic")}},addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[qe(Ah,this.type),qe(Nh,this.type)]},addPasteRules(){return[Je(_h,this.type),Je(Eh,this.type)]}}),Ih=wt.create({name:"listItem",defaultOptions:{HTMLAttributes:{}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:e}){return["li",Ot(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem("listItem"),Tab:()=>this.editor.commands.sinkListItem("listItem"),"Shift-Tab":()=>this.editor.commands.liftListItem("listItem")}}}),Rh=/^(\d+)\.\s$/,Ph=wt.create({name:"orderedList",defaultOptions:{HTMLAttributes:{}},group:"block list",content:"listItem+",addAttributes(){return{start:{default:1,parseHTML:e=>({start:e.hasAttribute("start")?parseInt(e.getAttribute("start")||"",10):1})}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:e}){const n=e,{start:t}=n,r=Go(n,["start"]);return t===1?["ol",Ot(this.options.HTMLAttributes,r),0]:["ol",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{toggleOrderedList:()=>({commands:e})=>e.toggleList("orderedList","listItem")}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){return[uo(Rh,this.type,e=>({start:+e[1]}),(e,t)=>t.childCount+t.attrs.start===+e[1])]}}),Bh=wt.create({name:"paragraph",priority:1e3,defaultOptions:{HTMLAttributes:{}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:e}){return["p",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode("paragraph")}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),zh=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/gm,Lh=/(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/gm,Fh=Te.create({name:"strike",defaultOptions:{HTMLAttributes:{}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["s",Ot(this.options.HTMLAttributes,e),0]},addCommands(){return{setStrike:()=>({commands:e})=>e.setMark("strike"),toggleStrike:()=>({commands:e})=>e.toggleMark("strike"),unsetStrike:()=>({commands:e})=>e.unsetMark("strike")}},addKeyboardShortcuts(){return{"Mod-Shift-x":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[qe(zh,this.type)]},addPasteRules(){return[Je(Lh,this.type)]}}),Vh=wt.create({name:"text",group:"inline"}),Hh=St.create({name:"starterKit",addExtensions(){var e,t,r,n,o,i,s,a,c,l,u,f,p,d,h,v,g,M;const y=[];return this.options.blockquote!==!1&&y.push(Kd.configure((e=this.options)===null||e===void 0?void 0:e.blockquote)),this.options.bold!==!1&&y.push(Xd.configure((t=this.options)===null||t===void 0?void 0:t.bold)),this.options.bulletList!==!1&&y.push(Zd.configure((r=this.options)===null||r===void 0?void 0:r.bulletList)),this.options.code!==!1&&y.push(rh.configure((n=this.options)===null||n===void 0?void 0:n.code)),this.options.codeBlock!==!1&&y.push(ih.configure((o=this.options)===null||o===void 0?void 0:o.codeBlock)),this.options.document!==!1&&y.push(sh.configure((i=this.options)===null||i===void 0?void 0:i.document)),this.options.dropcursor!==!1&&y.push(ch.configure((s=this.options)===null||s===void 0?void 0:s.dropcursor)),this.options.gapcursor!==!1&&y.push(mh.configure((a=this.options)===null||a===void 0?void 0:a.gapcursor)),this.options.hardBreak!==!1&&y.push(vh.configure((c=this.options)===null||c===void 0?void 0:c.hardBreak)),this.options.heading!==!1&&y.push(gh.configure((l=this.options)===null||l===void 0?void 0:l.heading)),this.options.history!==!1&&y.push(wh.configure((u=this.options)===null||u===void 0?void 0:u.history)),this.options.horizontalRule!==!1&&y.push(Th.configure((f=this.options)===null||f===void 0?void 0:f.horizontalRule)),this.options.italic!==!1&&y.push(Dh.configure((p=this.options)===null||p===void 0?void 0:p.italic)),this.options.listItem!==!1&&y.push(Ih.configure((d=this.options)===null||d===void 0?void 0:d.listItem)),this.options.orderedList!==!1&&y.push(Ph.configure((h=this.options)===null||h===void 0?void 0:h.orderedList)),this.options.paragraph!==!1&&y.push(Bh.configure((v=this.options)===null||v===void 0?void 0:v.paragraph)),this.options.strike!==!1&&y.push(Fh.configure((g=this.options)===null||g===void 0?void 0:g.strike)),this.options.text!==!1&&y.push(Vh.configure((M=this.options)===null||M===void 0?void 0:M.text)),y}}),jh=St.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.every(r=>t.updateAttributes(r,{textAlign:e})):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),qh={},Jh={viewBox:"0 0 24 24"},Wh=A("path",{d:"M17.194 10.962A6.271 6.271 0 0012.844.248H4.3a1.25 1.25 0 000 2.5h1.013a.25.25 0 01.25.25V21a.25.25 0 01-.25.25H4.3a1.25 1.25 0 100 2.5h9.963a6.742 6.742 0 002.93-12.786zm-4.35-8.214a3.762 3.762 0 010 7.523H8.313a.25.25 0 01-.25-.25V3a.25.25 0 01.25-.25zm1.42 18.5H8.313a.25.25 0 01-.25-.25v-7.977a.25.25 0 01.25-.25h5.951a4.239 4.239 0 010 8.477z"},null,-1),Kh=[Wh];function $h(e,t){return gt(),Mt("svg",Jh,Kh)}var Uh=At(qh,[["render",$h]]);const Gh={},Yh={viewBox:"0 0 24 24"},Xh=A("path",{d:"M9.147 21.552a1.244 1.244 0 01-.895-.378L.84 13.561a2.257 2.257 0 010-3.125l7.412-7.613a1.25 1.25 0 011.791 1.744l-6.9 7.083a.5.5 0 000 .7l6.9 7.082a1.25 1.25 0 01-.9 2.122zm5.707 0a1.25 1.25 0 01-.9-2.122l6.9-7.083a.5.5 0 000-.7l-6.9-7.082a1.25 1.25 0 011.791-1.744l7.411 7.612a2.257 2.257 0 010 3.125l-7.412 7.614a1.244 1.244 0 01-.89.38zm6.514-9.373z"},null,-1),Qh=[Xh];function Zh(e,t){return gt(),Mt("svg",Yh,Qh)}var tm=At(Gh,[["render",Zh]]);const em={},rm={viewBox:"0 0 24 24"},nm=A("path",{d:"M22.5.248h-7.637a1.25 1.25 0 000 2.5h1.086a.25.25 0 01.211.384L4.78 21.017a.5.5 0 01-.422.231H1.5a1.25 1.25 0 000 2.5h7.637a1.25 1.25 0 000-2.5H8.051a.25.25 0 01-.211-.384L19.22 2.98a.5.5 0 01.422-.232H22.5a1.25 1.25 0 000-2.5z"},null,-1),om=[nm];function im(e,t){return gt(),Mt("svg",rm,om)}var sm=At(em,[["render",im]]);const am={},cm={viewBox:"0 0 24 24"},lm=A("path",{d:"M7.75 4.5h15a1 1 0 000-2h-15a1 1 0 000 2zm15 6.5h-15a1 1 0 100 2h15a1 1 0 000-2zm0 8.5h-15a1 1 0 000 2h15a1 1 0 000-2zM2.212 17.248a2 2 0 00-1.933 1.484.75.75 0 101.45.386.5.5 0 11.483.63.75.75 0 100 1.5.5.5 0 11-.482.635.75.75 0 10-1.445.4 2 2 0 103.589-1.648.251.251 0 010-.278 2 2 0 00-1.662-3.111zm2.038-6.5a2 2 0 00-4 0 .75.75 0 001.5 0 .5.5 0 011 0 1.031 1.031 0 01-.227.645L.414 14.029A.75.75 0 001 15.248h2.5a.75.75 0 000-1.5h-.419a.249.249 0 01-.195-.406L3.7 12.33a2.544 2.544 0 00.55-1.582zM4 5.248h-.25A.25.25 0 013.5 5V1.623A1.377 1.377 0 002.125.248H1.5a.75.75 0 000 1.5h.25A.25.25 0 012 2v3a.25.25 0 01-.25.25H1.5a.75.75 0 000 1.5H4a.75.75 0 000-1.5z"},null,-1),um=[lm];function fm(e,t){return gt(),Mt("svg",cm,um)}var pm=At(am,[["render",fm]]);const dm={},hm={viewBox:"0 0 24 24"},mm=vc('',6),vm=[mm];function gm(e,t){return gt(),Mt("svg",hm,vm)}var ym=At(dm,[["render",gm]]);const bm={},km={viewBox:"0 0 24 24"},Sm=A("path",{d:"M22.5.248H7.228a6.977 6.977 0 100 13.954h2.318a.25.25 0 01.25.25V22.5a1.25 1.25 0 002.5 0V3a.25.25 0 01.25-.25h3.682a.25.25 0 01.25.25v19.5a1.25 1.25 0 002.5 0V3a.249.249 0 01.25-.25H22.5a1.25 1.25 0 000-2.5zM9.8 11.452a.25.25 0 01-.25.25H7.228a4.477 4.477 0 110-8.954h2.318A.25.25 0 019.8 3z"},null,-1),Mm=[Sm];function xm(e,t){return gt(),Mt("svg",km,Mm)}var Cm=At(bm,[["render",xm]]);const Om={},wm={viewBox:"0 0 24 24"},Tm=A("path",{d:"M18.559 3.932a4.942 4.942 0 100 9.883 4.609 4.609 0 001.115-.141.25.25 0 01.276.368 6.83 6.83 0 01-5.878 3.523 1.25 1.25 0 000 2.5 9.71 9.71 0 009.428-9.95V8.873a4.947 4.947 0 00-4.941-4.941zm-12.323 0a4.942 4.942 0 000 9.883 4.6 4.6 0 001.115-.141.25.25 0 01.277.368 6.83 6.83 0 01-5.878 3.523 1.25 1.25 0 000 2.5 9.711 9.711 0 009.428-9.95V8.873a4.947 4.947 0 00-4.942-4.941z"},null,-1),Am=[Tm];function _m(e,t){return gt(),Mt("svg",wm,Am)}var Nm=At(Om,[["render",_m]]);const Em={},Dm={viewBox:"0 0 24 24"},Im=A("path",{d:"M23.75 12.952A1.25 1.25 0 0022.5 11.7h-8.936a.492.492 0 01-.282-.09c-.722-.513-1.482-.981-2.218-1.432-2.8-1.715-4.5-2.9-4.5-4.863 0-2.235 2.207-2.569 3.523-2.569a4.54 4.54 0 013.081.764 2.662 2.662 0 01.447 1.99v.3a1.25 1.25 0 102.5 0v-.268a4.887 4.887 0 00-1.165-3.777C13.949.741 12.359.248 10.091.248c-3.658 0-6.023 1.989-6.023 5.069 0 2.773 1.892 4.512 4 5.927a.25.25 0 01-.139.458H1.5a1.25 1.25 0 000 2.5h10.977a.251.251 0 01.159.058 4.339 4.339 0 011.932 3.466c0 3.268-3.426 3.522-4.477 3.522-1.814 0-3.139-.405-3.834-1.173a3.394 3.394 0 01-.65-2.7 1.25 1.25 0 00-2.488-.246A5.76 5.76 0 004.4 21.753c1.2 1.324 3.114 2 5.688 2 4.174 0 6.977-2.42 6.977-6.022a6.059 6.059 0 00-.849-3.147.25.25 0 01.216-.377H22.5a1.25 1.25 0 001.25-1.255z"},null,-1),Rm=[Im];function Pm(e,t){return gt(),Mt("svg",Dm,Rm)}var Bm=At(Em,[["render",Pm]]);const zm={},Lm={viewBox:"0 0 24 24"},Fm=A("path",{d:"M17.786 3.77a12.542 12.542 0 00-12.965-.865.249.249 0 01-.292-.045L1.937.269A.507.507 0 001.392.16a.5.5 0 00-.308.462v6.7a.5.5 0 00.5.5h6.7a.5.5 0 00.354-.854L6.783 5.115a.253.253 0 01-.068-.228.249.249 0 01.152-.181 10 10 0 019.466 1.1 9.759 9.759 0 01.094 15.809 1.25 1.25 0 001.473 2.016 12.122 12.122 0 005.013-9.961 12.125 12.125 0 00-5.127-9.9z"},null,-1),Vm=[Fm];function Hm(e,t){return gt(),Mt("svg",Lm,Vm)}var jm=At(zm,[["render",Hm]]);const qm={},Jm={viewBox:"0 0 24 24"},Wm=A("path",{d:"M22.608.161a.5.5 0 00-.545.108L19.472 2.86a.25.25 0 01-.292.045 12.537 12.537 0 00-12.966.865A12.259 12.259 0 006.1 23.632a1.25 1.25 0 001.476-2.018 9.759 9.759 0 01.091-15.809 10 10 0 019.466-1.1.25.25 0 01.084.409l-1.85 1.85a.5.5 0 00.354.853h6.7a.5.5 0 00.5-.5V.623a.5.5 0 00-.313-.462z"},null,-1),Km=[Wm];function $m(e,t){return gt(),Mt("svg",Jm,Km)}var Um=At(qm,[["render",$m]]);const Gm={},Ym={viewBox:"0 0 24 24"},Xm=A("path",{d:"M9.147 21.552a1.244 1.244 0 01-.895-.378L.84 13.561a2.257 2.257 0 010-3.125l7.412-7.613a1.25 1.25 0 011.791 1.744l-6.9 7.083a.5.5 0 000 .7l6.9 7.082a1.25 1.25 0 01-.9 2.122zm5.707 0a1.25 1.25 0 01-.9-2.122l6.9-7.083a.5.5 0 000-.7l-6.9-7.082a1.25 1.25 0 011.791-1.744l7.411 7.612a2.257 2.257 0 010 3.125l-7.412 7.614a1.244 1.244 0 01-.89.38zm6.514-9.373z"},null,-1),Qm=[Xm];function Zm(e,t){return gt(),Mt("svg",Ym,Qm)}var tv=At(Gm,[["render",Zm]]);const ev={},rv={viewBox:"0 0 24 24"},nv=A("path",{fill:"currentColor","fill-rule":"evenodd",d:"M3.75 5.25h16.5a.75.75 0 1 1 0 1.5H3.75a.75.75 0 0 1 0-1.5zm4 4h8.5a.75.75 0 1 1 0 1.5h-8.5a.75.75 0 1 1 0-1.5zm-4 4h16.5a.75.75 0 1 1 0 1.5H3.75a.75.75 0 1 1 0-1.5zm4 4h8.5a.75.75 0 1 1 0 1.5h-8.5a.75.75 0 1 1 0-1.5z"},null,-1),ov=[nv];function iv(e,t){return gt(),Mt("svg",rv,ov)}var sv=At(ev,[["render",iv]]);const av={components:{EditorContent:qd,BoldIcon:Uh,CodingIcon:tm,ItalicIcon:sm,ListIcon:pm,ListUlIcon:ym,ParagraphIcon:Cm,QuoteIcon:Nm,StrikethroughIcon:Bm,UndoIcon:jm,RedoIcon:Um,CodeBlockIcon:tv,DotsVerticalIcon:gc,MenuCenterIcon:sv,MenuAlt2Icon:yc,MenuAlt3Icon:bc,MenuIcon:kc},props:{modelValue:{type:String,default:""},contentLoading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:t}){const r=Jd({content:e.modelValue,extensions:[Hh,jh.configure({types:["heading","paragraph"],alignments:["left","right","center","justify"]})],onUpdate:()=>{t("update:modelValue",r.value.getHTML())}});return Sc(()=>e.modelValue,n=>{r.value.getHTML()!==n&&r.value.commands.setContent(e.modelValue,!1)}),Mc(()=>{setTimeout(()=>{r.value.destroy()},500)}),{editor:r}}},cv={key:1,class:"box-border w-full text-sm leading-8 text-left bg-white border border-gray-200 rounded-md min-h-[200px] overflow-hidden"},lv={key:0,class:"editor-content"},uv={class:"flex justify-end p-2 border-b border-gray-200 md:hidden"},fv={class:"flex items-center justify-center w-6 h-6 ml-2 text-sm text-black bg-white rounded-sm md:h-9 md:w-9"},pv={class:"flex flex-wrap space-x-1"},dv={class:"hidden p-2 border-b border-gray-200 md:flex"},hv={class:"flex flex-wrap space-x-1"};function mv(e,t,r,n,o,i){const s=Q("BaseContentPlaceholdersBox"),a=Q("BaseContentPlaceholders"),c=Q("dots-vertical-icon"),l=Q("bold-icon"),u=Q("italic-icon"),f=Q("strikethrough-icon"),p=Q("coding-icon"),d=Q("paragraph-icon"),h=Q("list-ul-icon"),v=Q("list-icon"),g=Q("quote-icon"),M=Q("code-block-icon"),y=Q("undo-icon"),R=Q("redo-icon"),m=Q("BaseDropdown"),I=Q("menu-alt2-icon"),O=Q("menu-alt3-icon"),F=Q("menu-icon"),J=Q("menu-center-icon"),U=Q("editor-content");return r.contentLoading?(gt(),xc(a,{key:0},{default:an(()=>[V(s,{rounded:!0,class:"w-full",style:{height:"200px"}})]),_:1})):(gt(),Mt("div",cv,[n.editor?(gt(),Mt("div",lv,[A("div",uv,[V(m,{"width-class":"w-48"},{activator:an(()=>[A("div",fv,[V(c,{class:"w-6 h-6 text-gray-600"})])]),default:an(()=>[A("div",pv,[A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("bold")}]),onClick:t[0]||(t[0]=T=>n.editor.chain().focus().toggleBold().run())},[V(l,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("italic")}]),onClick:t[1]||(t[1]=T=>n.editor.chain().focus().toggleItalic().run())},[V(u,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("strike")}]),onClick:t[2]||(t[2]=T=>n.editor.chain().focus().toggleStrike().run())},[V(f,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("code")}]),onClick:t[3]||(t[3]=T=>n.editor.chain().focus().toggleCode().run())},[V(p,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("paragraph")}]),onClick:t[4]||(t[4]=T=>n.editor.chain().focus().setParagraph().run())},[V(d,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:1})}]),onClick:t[5]||(t[5]=T=>n.editor.chain().focus().toggleHeading({level:1}).run())}," H1 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:2})}]),onClick:t[6]||(t[6]=T=>n.editor.chain().focus().toggleHeading({level:2}).run())}," H2 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:3})}]),onClick:t[7]||(t[7]=T=>n.editor.chain().focus().toggleHeading({level:3}).run())}," H3 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("bulletList")}]),onClick:t[8]||(t[8]=T=>n.editor.chain().focus().toggleBulletList().run())},[V(h,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("orderedList")}]),onClick:t[9]||(t[9]=T=>n.editor.chain().focus().toggleOrderedList().run())},[V(v,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("blockquote")}]),onClick:t[10]||(t[10]=T=>n.editor.chain().focus().toggleBlockquote().run())},[V(g,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("codeBlock")}]),onClick:t[11]||(t[11]=T=>n.editor.chain().focus().toggleCodeBlock().run())},[V(M,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("undo")}]),onClick:t[12]||(t[12]=T=>n.editor.chain().focus().undo().run())},[V(y,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("redo")}]),onClick:t[13]||(t[13]=T=>n.editor.chain().focus().redo().run())},[V(R,{class:"h-3 cursor-pointer fill-current"})],2)])]),_:1})]),A("div",dv,[A("div",hv,[A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("bold")}]),onClick:t[14]||(t[14]=T=>n.editor.chain().focus().toggleBold().run())},[V(l,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("italic")}]),onClick:t[15]||(t[15]=T=>n.editor.chain().focus().toggleItalic().run())},[V(u,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("strike")}]),onClick:t[16]||(t[16]=T=>n.editor.chain().focus().toggleStrike().run())},[V(f,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("code")}]),onClick:t[17]||(t[17]=T=>n.editor.chain().focus().toggleCode().run())},[V(p,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("paragraph")}]),onClick:t[18]||(t[18]=T=>n.editor.chain().focus().setParagraph().run())},[V(d,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:1})}]),onClick:t[19]||(t[19]=T=>n.editor.chain().focus().toggleHeading({level:1}).run())}," H1 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:2})}]),onClick:t[20]||(t[20]=T=>n.editor.chain().focus().toggleHeading({level:2}).run())}," H2 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("heading",{level:3})}]),onClick:t[21]||(t[21]=T=>n.editor.chain().focus().toggleHeading({level:3}).run())}," H3 ",2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("bulletList")}]),onClick:t[22]||(t[22]=T=>n.editor.chain().focus().toggleBulletList().run())},[V(h,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("orderedList")}]),onClick:t[23]||(t[23]=T=>n.editor.chain().focus().toggleOrderedList().run())},[V(v,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("blockquote")}]),onClick:t[24]||(t[24]=T=>n.editor.chain().focus().toggleBlockquote().run())},[V(g,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("codeBlock")}]),onClick:t[25]||(t[25]=T=>n.editor.chain().focus().toggleCodeBlock().run())},[V(M,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("undo")}]),onClick:t[26]||(t[26]=T=>n.editor.chain().focus().undo().run())},[V(y,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive("redo")}]),onClick:t[27]||(t[27]=T=>n.editor.chain().focus().redo().run())},[V(R,{class:"h-3 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive({textAlign:"left"})}]),onClick:t[28]||(t[28]=T=>n.editor.chain().focus().setTextAlign("left").run())},[V(I,{class:"h-5 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive({textAlign:"right"})}]),onClick:t[29]||(t[29]=T=>n.editor.chain().focus().setTextAlign("right").run())},[V(O,{class:"h-5 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive({textAlign:"justify"})}]),onClick:t[30]||(t[30]=T=>n.editor.chain().focus().setTextAlign("justify").run())},[V(F,{class:"h-5 cursor-pointer fill-current"})],2),A("span",{class:L(["flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer hover:bg-gray-100",{"bg-gray-200":n.editor.isActive({textAlign:"center"})}]),onClick:t[31]||(t[31]=T=>n.editor.chain().focus().setTextAlign("center").run())},[V(J,{class:"h-5 cursor-pointer fill-current"})],2)])]),V(U,{editor:n.editor,class:"box-border relative w-full text-sm leading-8 text-left editor__content"},null,8,["editor"])])):Cc("",!0)]))}var bv=At(av,[["render",mv]]);export{bv as default}; diff --git a/public/build/assets/BaseListItem.3b6ffe7a.js b/public/build/assets/BaseListItem.3b6ffe7a.js deleted file mode 100644 index ef37c6aeb..000000000 --- a/public/build/assets/BaseListItem.3b6ffe7a.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./main.465728e1.js";import{o as n,e as i,g as l,k as c,r as d,l as m,w as _,j as f,h as $,t as h,s as B}from"./vendor.d12b5734.js";const k={name:"List"},v={class:"list-none"};function x(e,r,t,s,a,p){return n(),i("div",v,[l(e.$slots,"default")])}var L=o(k,[["render",x]]);const y={name:"ListItem",props:{title:{type:String,required:!1,default:""},active:{type:Boolean,required:!0},index:{type:Number,default:null}},setup(e,{slots:r}){const t="cursor-pointer pb-2 pr-0 text-sm font-medium leading-5 flex items-center";let s=c(()=>!!r.icon),a=c(()=>e.active?`${t} text-primary-500`:`${t} text-gray-500`);return{hasIconSlot:s,containerClass:a}}},g={key:0,class:"mr-3"};function C(e,r,t,s,a,p){const u=d("router-link");return n(),m(u,B(e.$attrs,{class:s.containerClass}),{default:_(()=>[s.hasIconSlot?(n(),i("span",g,[l(e.$slots,"icon")])):f("",!0),$("span",null,h(t.title),1)]),_:3},16,["class"])}var b=o(y,[["render",C]]);export{b as B,L as a}; diff --git a/public/build/assets/BaseMultiselect.2950bd7a.js b/public/build/assets/BaseMultiselect.2950bd7a.js deleted file mode 100644 index db798b1cf..000000000 --- a/public/build/assets/BaseMultiselect.2950bd7a.js +++ /dev/null @@ -1 +0,0 @@ -var Xe=Object.defineProperty,Ye=Object.defineProperties;var Ze=Object.getOwnPropertyDescriptors;var Be=Object.getOwnPropertySymbols;var $e=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var qe=(e,n,a)=>n in e?Xe(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,G=(e,n)=>{for(var a in n||(n={}))$e.call(n,a)&&qe(e,a,n[a]);if(Be)for(var a of Be(n))_e.call(n,a)&&qe(e,a,n[a]);return e},Ce=(e,n)=>Ye(e,Ze(n));import{bd as x,B as N,k as w,C as re,be as Te,r as De,o as I,l as el,w as ll,f as al,e as B,m as O,U as ve,j as E,F as ae,y as se,g as T,i as tl,t as J,h as P}from"./vendor.d12b5734.js";import{_ as nl}from"./main.465728e1.js";function F(e){return[null,void 0,!1].indexOf(e)!==-1}function rl(e,n,a){const{object:i,valueProp:o,mode:v}=x(e),f=a.iv,g=p=>{f.value=c(p);const b=t(p);n.emit("change",b),n.emit("input",b),n.emit("update:modelValue",b)},t=p=>i.value||F(p)?p:Array.isArray(p)?p.map(b=>b[o.value]):p[o.value],c=p=>F(p)?v.value==="single"?{}:[]:p;return{update:g}}function sl(e,n){const{value:a,modelValue:i,mode:o,valueProp:v}=x(e),f=N(o.value!=="single"?[]:{}),g=n.expose!==void 0?i:a,t=w(()=>o.value==="single"?f.value[v.value]:f.value.map(p=>p[v.value])),c=w(()=>o.value!=="single"?f.value.map(p=>p[v.value]).join(","):f.value[v.value]);return{iv:f,internalValue:f,ev:g,externalValue:g,textValue:c,plainValue:t}}function ul(e,n,a){const{preserveSearch:i}=x(e),o=N(e.initialSearch)||N(null),v=N(null),f=()=>{i.value||(o.value="")},g=c=>{o.value=c.target.value},t=c=>{n.emit("paste",c)};return re(o,c=>{n.emit("search-change",c)}),{search:o,input:v,clearSearch:f,handleSearchInput:g,handlePaste:t}}function ol(e,n,a){const{groupSelect:i,mode:o,groups:v}=x(e),f=N(null),g=c=>{c===void 0||c!==null&&c.disabled||v.value&&c&&c.group&&(o.value==="single"||!i.value)||(f.value=c)};return{pointer:f,setPointer:g,clearPointer:()=>{g(null)}}}function Ee(e,n=!0){return n?String(e).toLowerCase().trim():String(e).normalize("NFD").replace(/\p{Diacritic}/gu,"").toLowerCase().trim()}function il(e){return Object.prototype.toString.call(e)==="[object Object]"}function cl(e,n){const a=n.slice().sort();return e.length===n.length&&e.slice().sort().every(function(i,o){return i===a[o]})}function dl(e,n,a){const{options:i,mode:o,trackBy:v,limit:f,hideSelected:g,createTag:t,label:c,appendNewTag:p,multipleLabel:b,object:q,loading:V,delay:D,resolveOnLoad:m,minChars:s,filterResults:A,clearOnSearch:Z,clearOnSelect:k,valueProp:d,canDeselect:j,max:L,strict:Q,closeOnSelect:X,groups:$,groupLabel:ue,groupOptions:M,groupHideEmpty:pe,groupSelect:fe}=x(e),S=a.iv,z=a.ev,C=a.search,_=a.clearSearch,ee=a.update,ge=a.pointer,oe=a.clearPointer,W=a.blur,te=a.deactivate,r=N([]),h=N([]),R=N(!1),H=w(()=>{if($.value){let l=h.value||[],u=[];return l.forEach(y=>{ke(y[M.value]).forEach(U=>{u.push(Object.assign({},U,y.disabled?{disabled:!0}:{}))})}),u}else{let l=ke(h.value||[]);return r.value.length&&(l=l.concat(r.value)),l}}),Oe=w(()=>$.value?Ue((h.value||[]).map(l=>{const u=ke(l[M.value]);return Ce(G({},l),{group:!0,[M.value]:Se(u,!1).map(y=>Object.assign({},y,l.disabled?{disabled:!0}:{})),__VISIBLE__:Se(u).map(y=>Object.assign({},y,l.disabled?{disabled:!0}:{}))})})):[]),ie=w(()=>{let l=H.value;return me.value.length&&(l=me.value.concat(l)),l=Se(l),f.value>0&&(l=l.slice(0,f.value)),l}),be=w(()=>{switch(o.value){case"single":return!F(S.value[d.value]);case"multiple":case"tags":return!F(S.value)&&S.value.length>0}}),Ve=w(()=>b!==void 0&&b.value!==void 0?b.value(S.value):S.value&&S.value.length>1?`${S.value.length} options selected`:"1 option selected"),je=w(()=>!H.value.length&&!R.value&&!me.value.length),Re=w(()=>H.value.length>0&&ie.value.length==0&&(C.value&&$.value||!$.value)),me=w(()=>t.value===!1||!C.value?[]:ze(C.value)!==-1?[]:[{[d.value]:C.value,[c.value]:C.value,[v.value]:C.value}]),Ge=w(()=>{switch(o.value){case"single":return null;case"multiple":case"tags":return[]}}),Ae=w(()=>V.value||R.value),ne=l=>{switch(typeof l!="object"&&(l=K(l)),o.value){case"single":ee(l);break;case"multiple":case"tags":ee(S.value.concat(l));break}n.emit("select",Le(l),l)},le=l=>{switch(typeof l!="object"&&(l=K(l)),o.value){case"single":Ie();break;case"tags":case"multiple":ee(Array.isArray(l)?S.value.filter(u=>l.map(y=>y[d.value]).indexOf(u[d.value])===-1):S.value.filter(u=>u[d.value]!=l[d.value]));break}n.emit("deselect",Le(l),l)},Le=l=>q.value?l:l[d.value],Pe=l=>{le(l)},Me=(l,u)=>{if(u.button!==0){u.preventDefault();return}Pe(l)},Ie=()=>{n.emit("clear"),ee(Ge.value)},Y=l=>{if(l.group!==void 0)return o.value==="single"?!1:Fe(l[M.value])&&l[M.value].length;switch(o.value){case"single":return!F(S.value)&&S.value[d.value]==l[d.value];case"tags":case"multiple":return!F(S.value)&&S.value.map(u=>u[d.value]).indexOf(l[d.value])!==-1}},he=l=>l.disabled===!0,ye=()=>L===void 0||L.value===-1||!be.value&&L.value>0?!1:S.value.length>=L.value,Ne=l=>{if(!he(l)){switch(o.value){case"single":if(Y(l)){j.value&&le(l);return}W(),ne(l);break;case"multiple":if(Y(l)){le(l);return}if(ye())return;ne(l),k.value&&_(),g.value&&oe(),X.value&&W();break;case"tags":if(Y(l)){le(l);return}if(ye())return;K(l[d.value])===void 0&&t.value&&(n.emit("tag",l[d.value]),p.value&&We(l),_()),k.value&&_(),ne(l),g.value&&oe(),X.value&&W();break}X.value&&te()}},He=l=>{if(!(he(l)||o.value==="single"||!fe.value)){switch(o.value){case"multiple":case"tags":xe(l[M.value])?le(l[M.value]):ne(l[M.value].filter(u=>S.value.map(y=>y[d.value]).indexOf(u[d.value])===-1).filter(u=>!u.disabled).filter((u,y)=>S.value.length+1+y<=L.value||L.value===-1));break}X.value&&te()}},xe=l=>l.find(u=>!Y(u)&&!u.disabled)===void 0,Fe=l=>l.find(u=>!Y(u))===void 0,K=l=>H.value[H.value.map(u=>String(u[d.value])).indexOf(String(l))],ze=(l,u=!0)=>H.value.map(y=>y[v.value]).indexOf(l),Ke=l=>["tags","multiple"].indexOf(o.value)!==-1&&g.value&&Y(l),We=l=>{r.value.push(l)},Ue=l=>pe.value?l.filter(u=>C.value?u.__VISIBLE__.length:u[M.value].length):l.filter(u=>C.value?u.__VISIBLE__.length:!0),Se=(l,u=!0)=>{let y=l;return C.value&&A.value&&(y=y.filter(U=>Ee(U[v.value],Q.value).indexOf(Ee(C.value,Q.value))!==-1)),g.value&&u&&(y=y.filter(U=>!Ke(U))),y},ke=l=>{let u=l;return il(u)&&(u=Object.keys(u).map(y=>{let U=u[y];return{[d.value]:y,[v.value]:U,[c.value]:U}})),u=u.map(y=>typeof y=="object"?y:{[d.value]:y,[v.value]:y,[c.value]:y}),u},ce=()=>{F(z.value)||(S.value=de(z.value))},we=l=>{R.value=!0,i.value(C.value).then(u=>{h.value=u,typeof l=="function"&&l(u),R.value=!1})},Je=()=>{if(!!be.value)if(o.value==="single"){let l=K(S.value[d.value])[c.value];S.value[c.value]=l,q.value&&(z.value[c.value]=l)}else S.value.forEach((l,u)=>{let y=K(S.value[u][d.value])[c.value];S.value[u][c.value]=y,q.value&&(z.value[u][c.value]=y)})},Qe=l=>{we(l)},de=l=>F(l)?o.value==="single"?{}:[]:q.value?l:o.value==="single"?K(l)||{}:l.filter(u=>!!K(u)).map(u=>K(u));if(o.value!=="single"&&!F(z.value)&&!Array.isArray(z.value))throw new Error(`v-model must be an array when using "${o.value}" mode`);return i&&typeof i.value=="function"?m.value?we(ce):q.value==!0&&ce():(h.value=i.value,ce()),D.value>-1&&re(C,l=>{l.length{l==C.value&&i.value(C.value).then(u=>{l==C.value&&(h.value=u,ge.value=ie.value.filter(y=>y.disabled!==!0)[0]||null,R.value=!1)})},D.value))},{flush:"sync"}),re(z,l=>{if(F(l)){S.value=de(l);return}switch(o.value){case"single":(q.value?l[d.value]!=S.value[d.value]:l!=S.value[d.value])&&(S.value=de(l));break;case"multiple":case"tags":cl(q.value?l.map(u=>u[d.value]):l,S.value.map(u=>u[d.value]))||(S.value=de(l));break}},{deep:!0}),typeof e.options!="function"&&re(i,(l,u)=>{h.value=e.options,Object.keys(S.value).length||ce(),Je()}),{fo:ie,filteredOptions:ie,hasSelected:be,multipleLabelText:Ve,eo:H,extendedOptions:H,fg:Oe,filteredGroups:Oe,noOptions:je,noResults:Re,resolving:R,busy:Ae,select:ne,deselect:le,remove:Pe,clear:Ie,isSelected:Y,isDisabled:he,isMax:ye,getOption:K,handleOptionClick:Ne,handleGroupClick:He,handleTagRemove:Me,refreshOptions:Qe,resolveOptions:we}}function vl(e,n,a){const{valueProp:i,showOptions:o,searchable:v,groupLabel:f,groups:g,mode:t,groupSelect:c}=x(e),p=a.fo,b=a.fg,q=a.handleOptionClick,V=a.handleGroupClick,D=a.search,m=a.pointer,s=a.setPointer,A=a.clearPointer,Z=a.multiselect,k=w(()=>p.value.filter(r=>!r.disabled)),d=w(()=>b.value.filter(r=>!r.disabled)),j=w(()=>t.value!=="single"&&c.value),L=w(()=>m.value&&m.value.group),Q=w(()=>W(m.value)),X=w(()=>{const r=L.value?m.value:W(m.value),h=d.value.map(H=>H[f.value]).indexOf(r[f.value]);let R=d.value[h-1];return R===void 0&&(R=ue.value),R}),$=w(()=>{let r=d.value.map(h=>h.label).indexOf(L.value?m.value[f.value]:W(m.value)[f.value])+1;return d.value.length<=r&&(r=0),d.value[r]}),ue=w(()=>[...d.value].slice(-1)[0]),M=w(()=>m.value.__VISIBLE__.filter(r=>!r.disabled)[0]),pe=w(()=>{const r=Q.value.__VISIBLE__.filter(h=>!h.disabled);return r[r.map(h=>h[i.value]).indexOf(m.value[i.value])-1]}),fe=w(()=>{const r=W(m.value).__VISIBLE__.filter(h=>!h.disabled);return r[r.map(h=>h[i.value]).indexOf(m.value[i.value])+1]}),S=w(()=>[...X.value.__VISIBLE__.filter(r=>!r.disabled)].slice(-1)[0]),z=w(()=>[...ue.value.__VISIBLE__.filter(r=>!r.disabled)].slice(-1)[0]),C=r=>{if(!!m.value)return r.group?m.value[f.value]==r[f.value]:m.value[i.value]==r[i.value]},_=()=>{s(k.value[0]||null)},ee=()=>{!m.value||m.value.disabled===!0||(L.value?V(m.value):q(m.value))},ge=()=>{if(m.value===null)s((g.value&&j.value?d.value[0]:k.value[0])||null);else if(g.value&&j.value){let r=L.value?M.value:fe.value;r===void 0&&(r=$.value),s(r||null)}else{let r=k.value.map(h=>h[i.value]).indexOf(m.value[i.value])+1;k.value.length<=r&&(r=0),s(k.value[r]||null)}Te(()=>{te()})},oe=()=>{if(m.value===null){let r=k.value[k.value.length-1];g.value&&j.value&&(r=z.value,r===void 0&&(r=ue.value)),s(r||null)}else if(g.value&&j.value){let r=L.value?S.value:pe.value;r===void 0&&(r=L.value?X.value:Q.value),s(r||null)}else{let r=k.value.map(h=>h[i.value]).indexOf(m.value[i.value])-1;r<0&&(r=k.value.length-1),s(k.value[r]||null)}Te(()=>{te()})},W=r=>d.value.find(h=>h.__VISIBLE__.map(R=>R[i.value]).indexOf(r[i.value])!==-1),te=()=>{let r=Z.value.querySelector("[data-pointed]");if(!r)return;let h=r.parentElement.parentElement;g.value&&(h=L.value?r.parentElement.parentElement.parentElement:r.parentElement.parentElement.parentElement.parentElement),r.offsetTop+r.offsetHeight>h.clientHeight+h.scrollTop&&(h.scrollTop=r.offsetTop+r.offsetHeight-h.clientHeight),r.offsetTop{v.value&&(r.length&&o.value?_():A())}),{pointer:m,canPointGroups:j,isPointed:C,setPointerFirst:_,selectPointer:ee,forwardPointer:ge,backwardPointer:oe}}function pl(e,n,a){const{disabled:i}=x(e),o=N(!1);return{isOpen:o,open:()=>{o.value||i.value||(o.value=!0,n.emit("open"))},close:()=>{!o.value||(o.value=!1,n.emit("close"))}}}function fl(e,n,a){const{searchable:i,disabled:o}=x(e),v=a.input,f=a.open,g=a.close,t=a.clearSearch,c=N(null),p=N(!1),b=w(()=>i.value||o.value?-1:0),q=()=>{i.value&&v.value.blur(),c.value.blur()},V=()=>{i.value&&!o.value&&v.value.focus()},D=()=>{o.value||(p.value=!0,f())},m=()=>{p.value=!1,setTimeout(()=>{p.value||(g(),t())},1)};return{multiselect:c,tabindex:b,isActive:p,blur:q,handleFocus:V,activate:D,deactivate:m,handleCaretClick:()=>{p.value?(m(),q()):D()}}}function gl(e,n,a){const{mode:i,addTagOn:o,createTag:v,openDirection:f,searchable:g,showOptions:t,valueProp:c,groups:p}=x(e),b=a.iv,q=a.update,V=a.search,D=a.setPointer,m=a.selectPointer,s=a.backwardPointer,A=a.forwardPointer,Z=a.blur,k=a.fo,d=()=>{i.value==="tags"&&!t.value&&v.value&&g.value&&!p.value&&D(k.value[k.value.map(L=>L[c.value]).indexOf(V.value)])};return{handleKeydown:L=>{switch(L.keyCode){case 8:if(i.value==="single"||g.value&&[null,""].indexOf(V.value)===-1||b.value.length===0)return;q([...b.value].slice(0,-1));break;case 13:if(L.preventDefault(),i.value==="tags"&&o.value.indexOf("enter")===-1&&v.value)return;d(),m();break;case 32:if(g.value&&i.value!=="tags"&&!v.value||i.value==="tags"&&(o.value.indexOf("space")===-1&&v.value||!v.value))return;L.preventDefault(),d(),m();break;case 9:case 186:case 188:if(i.value!=="tags")return;const Q={9:"tab",186:";",188:","};if(o.value.indexOf(Q[L.keyCode])===-1||!v.value)return;d(),m(),L.preventDefault();break;case 27:Z();break;case 38:if(L.preventDefault(),!t.value)return;f.value==="top"?A():s();break;case 40:if(L.preventDefault(),!t.value)return;f.value==="top"?s():A();break}},preparePointer:d}}function bl(e,n,a){const i=x(e),{disabled:o,openDirection:v,showOptions:f,invalid:g}=i,t=a.isOpen,c=a.isPointed,p=a.isSelected,b=a.isDisabled,q=a.isActive,V=a.canPointGroups,D=a.resolving,m=a.fo,s=G({container:"multiselect",containerDisabled:"is-disabled",containerOpen:"is-open",containerOpenTop:"is-open-top",containerActive:"is-active",containerInvalid:"is-invalid",containerInvalidActive:"is-invalid-active",singleLabel:"multiselect-single-label",multipleLabel:"multiselect-multiple-label",search:"multiselect-search",tags:"multiselect-tags",tag:"multiselect-tag",tagDisabled:"is-disabled",tagRemove:"multiselect-tag-remove",tagRemoveIcon:"multiselect-tag-remove-icon",tagsSearchWrapper:"multiselect-tags-search-wrapper",tagsSearch:"multiselect-tags-search",tagsSearchCopy:"multiselect-tags-search-copy",placeholder:"multiselect-placeholder",caret:"multiselect-caret",caretOpen:"is-open",clear:"multiselect-clear",clearIcon:"multiselect-clear-icon",spinner:"multiselect-spinner",dropdown:"multiselect-dropdown",dropdownTop:"is-top",dropdownHidden:"is-hidden",options:"multiselect-options",optionsTop:"is-top",group:"multiselect-group",groupLabel:"multiselect-group-label",groupLabelPointable:"is-pointable",groupLabelPointed:"is-pointed",groupLabelSelected:"is-selected",groupLabelDisabled:"is-disabled",groupLabelSelectedPointed:"is-selected is-pointed",groupLabelSelectedDisabled:"is-selected is-disabled",groupOptions:"multiselect-group-options",option:"multiselect-option",optionPointed:"is-pointed",optionSelected:"is-selected",optionDisabled:"is-disabled",optionSelectedPointed:"is-selected is-pointed",optionSelectedDisabled:"is-selected is-disabled",noOptions:"multiselect-no-options",noResults:"multiselect-no-results",fakeInput:"multiselect-fake-input",spacer:"multiselect-spacer"},i.classes.value),A=w(()=>!!(t.value&&f.value&&(!D.value||D.value&&m.value.length)));return{classList:w(()=>({container:[s.container].concat(o.value?s.containerDisabled:[]).concat(A.value&&v.value==="top"?s.containerOpenTop:[]).concat(A.value&&v.value!=="top"?s.containerOpen:[]).concat(q.value?s.containerActive:[]).concat(g.value?s.containerInvalid:[]),spacer:s.spacer,singleLabel:s.singleLabel,multipleLabel:s.multipleLabel,search:s.search,tags:s.tags,tag:[s.tag].concat(o.value?s.tagDisabled:[]),tagRemove:s.tagRemove,tagRemoveIcon:s.tagRemoveIcon,tagsSearchWrapper:s.tagsSearchWrapper,tagsSearch:s.tagsSearch,tagsSearchCopy:s.tagsSearchCopy,placeholder:s.placeholder,caret:[s.caret].concat(t.value?s.caretOpen:[]),clear:s.clear,clearIcon:s.clearIcon,spinner:s.spinner,dropdown:[s.dropdown].concat(v.value==="top"?s.dropdownTop:[]).concat(!t.value||!f.value||!A.value?s.dropdownHidden:[]),options:[s.options].concat(v.value==="top"?s.optionsTop:[]),group:s.group,groupLabel:k=>{let d=[s.groupLabel];return c(k)?d.push(p(k)?s.groupLabelSelectedPointed:s.groupLabelPointed):p(k)&&V.value?d.push(b(k)?s.groupLabelSelectedDisabled:s.groupLabelSelected):b(k)&&d.push(s.groupLabelDisabled),V.value&&d.push(s.groupLabelPointable),d},groupOptions:s.groupOptions,option:(k,d)=>{let j=[s.option];return c(k)?j.push(p(k)?s.optionSelectedPointed:s.optionPointed):p(k)?j.push(b(k)?s.optionSelectedDisabled:s.optionSelected):(b(k)||d&&b(d))&&j.push(s.optionDisabled),j},noOptions:s.noOptions,noResults:s.noResults,fakeInput:s.fakeInput})),showDropdown:A}}const ml={name:"BaseMultiselect",props:{preserveSearch:{type:Boolean,default:!1},initialSearch:{type:String,default:null},contentLoading:{type:Boolean,default:!1},value:{required:!1},modelValue:{required:!1},options:{type:[Array,Object,Function],required:!1,default:()=>[]},id:{type:[String,Number],required:!1},name:{type:[String,Number],required:!1,default:"multiselect"},disabled:{type:Boolean,required:!1,default:!1},label:{type:String,required:!1,default:"label"},trackBy:{type:String,required:!1,default:"label"},valueProp:{type:String,required:!1,default:"value"},placeholder:{type:String,required:!1,default:null},mode:{type:String,required:!1,default:"single"},searchable:{type:Boolean,required:!1,default:!1},limit:{type:Number,required:!1,default:-1},hideSelected:{type:Boolean,required:!1,default:!0},createTag:{type:Boolean,required:!1,default:!1},appendNewTag:{type:Boolean,required:!1,default:!0},caret:{type:Boolean,required:!1,default:!0},loading:{type:Boolean,required:!1,default:!1},noOptionsText:{type:String,required:!1,default:"The list is empty"},noResultsText:{type:String,required:!1,default:"No results found"},multipleLabel:{type:Function,required:!1},object:{type:Boolean,required:!1,default:!1},delay:{type:Number,required:!1,default:-1},minChars:{type:Number,required:!1,default:0},resolveOnLoad:{type:Boolean,required:!1,default:!0},filterResults:{type:Boolean,required:!1,default:!0},clearOnSearch:{type:Boolean,required:!1,default:!1},clearOnSelect:{type:Boolean,required:!1,default:!0},canDeselect:{type:Boolean,required:!1,default:!0},canClear:{type:Boolean,required:!1,default:!1},max:{type:Number,required:!1,default:-1},showOptions:{type:Boolean,required:!1,default:!0},addTagOn:{type:Array,required:!1,default:()=>["enter"]},required:{type:Boolean,required:!1,default:!1},openDirection:{type:String,required:!1,default:"bottom"},nativeSupport:{type:Boolean,required:!1,default:!1},invalid:{type:Boolean,required:!1,default:!1},classes:{type:Object,required:!1,default:()=>({container:"p-0 relative mx-auto w-full flex items-center justify-end box-border cursor-pointer border border-gray-200 rounded-md bg-white text-sm leading-snug outline-none max-h-10",containerDisabled:"cursor-default bg-gray-200 bg-opacity-50 !text-gray-400",containerOpen:"",containerOpenTop:"",containerActive:"ring-1 ring-primary-400 border-primary-400",containerInvalid:"border-red-400 ring-red-400 focus:ring-red-400 focus:border-red-400",containerInvalidActive:"ring-1 border-red-400 ring-red-400",singleLabel:"flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5",multipleLabel:"flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5",search:"w-full absolute inset-0 outline-none appearance-none box-border border-0 text-sm font-sans bg-white rounded-md pl-3.5",tags:"grow shrink flex flex-wrap mt-1 pl-2",tag:"bg-primary-500 text-white text-sm font-semibold py-0.5 pl-2 rounded mr-1 mb-1 flex items-center whitespace-nowrap",tagDisabled:"pr-2 !bg-gray-400 text-white",tagRemove:"flex items-center justify-center p-1 mx-0.5 rounded-sm hover:bg-black hover:bg-opacity-10 group",tagRemoveIcon:"bg-multiselect-remove text-white bg-center bg-no-repeat opacity-30 inline-block w-3 h-3 group-hover:opacity-60",tagsSearchWrapper:"inline-block relative mx-1 mb-1 grow shrink h-full",tagsSearch:"absolute inset-0 border-0 focus:outline-none !shadow-none !focus:shadow-none appearance-none p-0 text-sm font-sans box-border w-full",tagsSearchCopy:"invisible whitespace-pre-wrap inline-block h-px",placeholder:"flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 text-gray-400 text-sm",caret:"bg-multiselect-caret bg-center bg-no-repeat w-5 h-5 py-px box-content z-5 relative mr-1 opacity-40 shrink-0 grow-0 transition-transform",caretOpen:"rotate-180 pointer-events-auto",clear:"pr-3.5 relative z-10 opacity-40 transition duration-300 shrink-0 grow-0 flex hover:opacity-80",clearIcon:"bg-multiselect-remove bg-center bg-no-repeat w-2.5 h-4 py-px box-content inline-block",spinner:"bg-multiselect-spinner bg-center bg-no-repeat w-4 h-4 z-10 mr-3.5 animate-spin shrink-0 grow-0",dropdown:"max-h-60 shadow-lg absolute -left-px -right-px -bottom-1 translate-y-full border border-gray-300 mt-1 overflow-y-auto z-50 bg-white flex flex-col rounded-md",dropdownTop:"-translate-y-full -top-2 bottom-auto flex-col-reverse rounded-md",dropdownHidden:"hidden",options:"flex flex-col p-0 m-0 list-none",optionsTop:"flex-col-reverse",group:"p-0 m-0",groupLabel:"flex text-sm box-border items-center justify-start text-left py-1 px-3 font-semibold bg-gray-200 cursor-default leading-normal",groupLabelPointable:"cursor-pointer",groupLabelPointed:"bg-gray-300 text-gray-700",groupLabelSelected:"bg-primary-600 text-white",groupLabelDisabled:"bg-gray-100 text-gray-300 cursor-not-allowed",groupLabelSelectedPointed:"bg-primary-600 text-white opacity-90",groupLabelSelectedDisabled:"text-primary-100 bg-primary-600 bg-opacity-50 cursor-not-allowed",groupOptions:"p-0 m-0",option:"flex items-center justify-start box-border text-left cursor-pointer text-sm leading-snug py-2 px-3",optionPointed:"text-gray-800 bg-gray-100",optionSelected:"text-white bg-primary-500",optionDisabled:"text-gray-300 cursor-not-allowed",optionSelectedPointed:"text-white bg-primary-500 opacity-90",optionSelectedDisabled:"text-primary-100 bg-primary-500 bg-opacity-50 cursor-not-allowed",noOptions:"py-2 px-3 text-gray-600 bg-white",noResults:"py-2 px-3 text-gray-600 bg-white",fakeInput:"bg-transparent absolute left-0 right-0 -bottom-px w-full h-px border-0 p-0 appearance-none outline-none text-transparent",spacer:"h-9 py-px box-content"})},strict:{type:Boolean,required:!1,default:!0},closeOnSelect:{type:Boolean,required:!1,default:!0},autocomplete:{type:String,required:!1},groups:{type:Boolean,required:!1,default:!1},groupLabel:{type:String,required:!1,default:"label"},groupOptions:{type:String,required:!1,default:"options"},groupHideEmpty:{type:Boolean,required:!1,default:!1},groupSelect:{type:Boolean,required:!1,default:!0},inputType:{type:String,required:!1,default:"text"}},emits:["open","close","select","deselect","input","search-change","tag","update:modelValue","change","clear"],setup(e,n){const a=sl(e,n),i=ol(e),o=pl(e,n),v=ul(e,n),f=rl(e,n,{iv:a.iv}),g=fl(e,n,{input:v.input,open:o.open,close:o.close,clearSearch:v.clearSearch}),t=dl(e,n,{ev:a.ev,iv:a.iv,search:v.search,clearSearch:v.clearSearch,update:f.update,pointer:i.pointer,clearPointer:i.clearPointer,blur:g.blur,deactivate:g.deactivate}),c=vl(e,n,{fo:t.fo,fg:t.fg,handleOptionClick:t.handleOptionClick,handleGroupClick:t.handleGroupClick,search:v.search,pointer:i.pointer,setPointer:i.setPointer,clearPointer:i.clearPointer,multiselect:g.multiselect}),p=gl(e,n,{iv:a.iv,update:f.update,search:v.search,setPointer:i.setPointer,selectPointer:c.selectPointer,backwardPointer:c.backwardPointer,forwardPointer:c.forwardPointer,blur:g.blur,fo:t.fo}),b=bl(e,n,{isOpen:o.isOpen,isPointed:c.isPointed,canPointGroups:c.canPointGroups,isSelected:t.isSelected,isDisabled:t.isDisabled,isActive:g.isActive,resolving:t.resolving,fo:t.fo});return G(G(G(G(G(G(G(G(G(G({},a),o),g),i),f),v),t),c),p),b)}},hl=["id","tabindex"],yl=["type","modelValue","value","autocomplete"],Sl=["onMousedown"],kl=["type","modelValue","value","autocomplete"],wl={class:"w-full overflow-y-auto"},Ol=["data-pointed","onMouseenter","onClick"],Ll=["data-pointed","onMouseenter","onClick"],Pl=["data-pointed","onMouseenter","onClick"],Il=["innerHTML"],Bl=["innerHTML"],ql=["value"],Cl=["name","value"],Tl=["name","value"];function Dl(e,n,a,i,o,v){const f=De("BaseContentPlaceholdersBox"),g=De("BaseContentPlaceholders");return a.contentLoading?(I(),el(g,{key:0},{default:ll(()=>[al(f,{rounded:!0,class:"w-full",style:{height:"40px"}})]),_:1})):(I(),B("div",{key:1,id:a.id,ref:"multiselect",tabindex:e.tabindex,class:O(e.classList.container),onFocusin:n[6]||(n[6]=(...t)=>e.activate&&e.activate(...t)),onFocusout:n[7]||(n[7]=(...t)=>e.deactivate&&e.deactivate(...t)),onKeydown:n[8]||(n[8]=(...t)=>e.handleKeydown&&e.handleKeydown(...t)),onFocus:n[9]||(n[9]=(...t)=>e.handleFocus&&e.handleFocus(...t))},[a.mode!=="tags"&&a.searchable&&!a.disabled?(I(),B("input",{key:0,ref:"input",type:a.inputType,modelValue:e.search,value:e.search,class:O(e.classList.search),autocomplete:a.autocomplete,onInput:n[0]||(n[0]=(...t)=>e.handleSearchInput&&e.handleSearchInput(...t)),onPaste:n[1]||(n[1]=ve((...t)=>e.handlePaste&&e.handlePaste(...t),["stop"]))},null,42,yl)):E("",!0),a.mode=="tags"?(I(),B("div",{key:1,class:O(e.classList.tags)},[(I(!0),B(ae,null,se(e.iv,(t,c,p)=>T(e.$slots,"tag",{option:t,handleTagRemove:e.handleTagRemove,disabled:a.disabled},()=>[(I(),B("span",{key:p,class:O(e.classList.tag)},[tl(J(t[a.label])+" ",1),a.disabled?E("",!0):(I(),B("span",{key:0,class:O(e.classList.tagRemove),onMousedown:ve(b=>e.handleTagRemove(t,b),["stop"])},[P("span",{class:O(e.classList.tagRemoveIcon)},null,2)],42,Sl))],2))])),256)),P("div",{class:O(e.classList.tagsSearchWrapper)},[P("span",{class:O(e.classList.tagsSearchCopy)},J(e.search),3),a.searchable&&!a.disabled?(I(),B("input",{key:0,ref:"input",type:a.inputType,modelValue:e.search,value:e.search,class:O(e.classList.tagsSearch),autocomplete:a.autocomplete,style:{"box-shadow":"none !important"},onInput:n[2]||(n[2]=(...t)=>e.handleSearchInput&&e.handleSearchInput(...t)),onPaste:n[3]||(n[3]=ve((...t)=>e.handlePaste&&e.handlePaste(...t),["stop"]))},null,42,kl)):E("",!0)],2)],2)):E("",!0),a.mode=="single"&&e.hasSelected&&!e.search&&e.iv?T(e.$slots,"singlelabel",{key:2,value:e.iv},()=>[P("div",{class:O(e.classList.singleLabel)},J(e.iv[a.label]),3)]):E("",!0),a.mode=="multiple"&&e.hasSelected&&!e.search?T(e.$slots,"multiplelabel",{key:3,values:e.iv},()=>[P("div",{class:O(e.classList.multipleLabel)},J(e.multipleLabelText),3)]):E("",!0),a.placeholder&&!e.hasSelected&&!e.search?T(e.$slots,"placeholder",{key:4},()=>[P("div",{class:O(e.classList.placeholder)},J(a.placeholder),3)]):E("",!0),e.busy?T(e.$slots,"spinner",{key:5},()=>[P("span",{class:O(e.classList.spinner)},null,2)]):E("",!0),e.hasSelected&&!a.disabled&&a.canClear&&!e.busy?T(e.$slots,"clear",{key:6,clear:e.clear},()=>[P("span",{class:O(e.classList.clear),onMousedown:n[4]||(n[4]=(...t)=>e.clear&&e.clear(...t))},[P("span",{class:O(e.classList.clearIcon)},null,2)],34)]):E("",!0),a.caret?T(e.$slots,"caret",{key:7},()=>[P("span",{class:O(e.classList.caret),onMousedown:n[5]||(n[5]=ve((...t)=>e.handleCaretClick&&e.handleCaretClick(...t),["prevent","stop"]))},null,34)]):E("",!0),P("div",{class:O(e.classList.dropdown),tabindex:"-1"},[P("div",wl,[T(e.$slots,"beforelist",{options:e.fo}),P("ul",{class:O(e.classList.options)},[a.groups?(I(!0),B(ae,{key:0},se(e.fg,(t,c,p)=>(I(),B("li",{key:p,class:O(e.classList.group)},[P("div",{class:O(e.classList.groupLabel(t)),"data-pointed":e.isPointed(t),onMouseenter:b=>e.setPointer(t),onClick:b=>e.handleGroupClick(t)},[T(e.$slots,"grouplabel",{group:t},()=>[P("span",null,J(t[a.groupLabel]),1)])],42,Ol),P("ul",{class:O(e.classList.groupOptions)},[(I(!0),B(ae,null,se(t.__VISIBLE__,(b,q,V)=>(I(),B("li",{key:V,class:O(e.classList.option(b,t)),"data-pointed":e.isPointed(b),onMouseenter:D=>e.setPointer(b),onClick:D=>e.handleOptionClick(b)},[T(e.$slots,"option",{option:b,search:e.search},()=>[P("span",null,J(b[a.label]),1)])],42,Ll))),128))],2)],2))),128)):(I(!0),B(ae,{key:1},se(e.fo,(t,c,p)=>(I(),B("li",{key:p,class:O(e.classList.option(t)),"data-pointed":e.isPointed(t),onMouseenter:b=>e.setPointer(t),onClick:b=>e.handleOptionClick(t)},[T(e.$slots,"option",{option:t,search:e.search},()=>[P("span",null,J(t[a.label]),1)])],42,Pl))),128))],2),e.noOptions?T(e.$slots,"nooptions",{key:0},()=>[P("div",{class:O(e.classList.noOptions),innerHTML:a.noOptionsText},null,10,Il)]):E("",!0),e.noResults?T(e.$slots,"noresults",{key:1},()=>[P("div",{class:O(e.classList.noResults),innerHTML:a.noResultsText},null,10,Bl)]):E("",!0),T(e.$slots,"afterlist",{options:e.fo})]),T(e.$slots,"action")],2),a.required?(I(),B("input",{key:8,class:O(e.classList.fakeInput),tabindex:"-1",value:e.textValue,required:""},null,10,ql)):E("",!0),a.nativeSupport?(I(),B(ae,{key:9},[a.mode=="single"?(I(),B("input",{key:0,type:"hidden",name:a.name,value:e.plainValue!==void 0?e.plainValue:""},null,8,Cl)):(I(!0),B(ae,{key:1},se(e.plainValue,(t,c)=>(I(),B("input",{key:c,type:"hidden",name:`${a.name}[]`,value:t},null,8,Tl))),128))],64)):E("",!0),P("div",{class:O(e.classList.spacer)},null,2)],42,hl))}var Rl=nl(ml,[["render",Dl]]);export{Rl as default}; diff --git a/public/build/assets/BaseTable.ec8995dc.js b/public/build/assets/BaseTable.ec8995dc.js deleted file mode 100644 index e744c689d..000000000 --- a/public/build/assets/BaseTable.ec8995dc.js +++ /dev/null @@ -1 +0,0 @@ -import{I as O,r as T,o as i,e as s,h as u,m as c,t as h,j as m,f as k,F as C,y as P,i as _,a0 as N,B as F,k as A,C as J,D as K,g as L,u as y,w as Q,A as U,l as X}from"./vendor.d12b5734.js";import{_ as Z,S as $}from"./main.465728e1.js";function V(a,t){if(!t||a===null||typeof a!="object")return a;const[e,n]=t.split(/\.(.+)/);return V(a[e],n)}function ee(a,t){return t.reduce((e,n)=>(e[n]=a[n],e),{})}class te{constructor(t,e){this.data=t,this.columns=e}getValue(t){return V(this.data,t)}getColumn(t){return this.columns.find(e=>e.key===t)}getSortableValue(t){const e=this.getColumn(t).dataType;let n=this.getValue(t);if(n==null)return"";if(n instanceof String&&(n=n.toLowerCase()),e.startsWith("date")){const b=e.replace("date:","");return O(n,b).format("YYYYMMDDHHmmss")}return e==="numeric"?n:n.toString()}}class ae{constructor(t){const e=ee(t,["key","label","thClass","tdClass","sortBy","sortable","hidden","dataType"]);for(const n in e)this[n]=t[n];e.dataType||(this.dataType="string"),e.sortable===void 0&&(this.sortable=!0)}getFilterFieldName(){return this.filterOn||this.key}isSortable(){return this.sortable}getSortPredicate(t,e){const n=this.getSortFieldName(),l=e.find(g=>g.key===n).dataType;return l.startsWith("date")||l==="numeric"?(g,d)=>{const p=g.getSortableValue(n),x=d.getSortableValue(n);return t==="desc"?x{const p=g.getSortableValue(n),x=d.getSortableValue(n);return t==="desc"?x.localeCompare(p):p.localeCompare(x)}}getSortFieldName(){return this.sortBy||this.key}}const ne={props:{pagination:{type:Object,default:()=>({})}},computed:{pages(){return this.pagination.totalPages===void 0?[]:this.pageLinks()},hasFirst(){return this.pagination.currentPage>=4||this.pagination.totalPages<10},hasLast(){return this.pagination.currentPage<=this.pagination.totalPages-3||this.pagination.totalPages<10},hasFirstEllipsis(){return this.pagination.currentPage>=4&&this.pagination.totalPages>=10},hasLastEllipsis(){return this.pagination.currentPage<=this.pagination.totalPages-3&&this.pagination.totalPages>=10},shouldShowPagination(){return this.pagination.totalPages===void 0||this.pagination.count===0?!1:this.pagination.totalPages>1}},methods:{isActive(a){return(this.pagination.currentPage||1)===a},pageClicked(a){a==="..."||a===this.pagination.currentPage||a>this.pagination.totalPages||a<1||this.$emit("pageChange",a)},pageLinks(){const a=[];let t=2,e=this.pagination.totalPages-1;this.pagination.totalPages>=10&&(t=Math.max(1,this.pagination.currentPage-2),e=Math.min(this.pagination.currentPage+2,this.pagination.totalPages));for(let n=t;n<=e;n++)a.push(n);return a}}},re={key:0,class:"flex items-center justify-between px-4 py-3 bg-white border-t border-gray-200 sm:px-6"},ie={class:"flex justify-between flex-1 sm:hidden"},se={class:"hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"},le={class:"text-sm text-gray-700"},oe=_(" Showing "+h(" ")+" "),de={key:0,class:"font-medium"},ge=_(" "+h(" ")+" to "+h(" ")+" "),ue={key:1,class:"font-medium"},ce={key:0},he={key:1},ye=_(" "+h(" ")+" of "+h(" ")+" "),fe={key:2,class:"font-medium"},me=_(" "+h(" ")+" results "),pe={class:"relative z-0 inline-flex -space-x-px rounded-md shadow-sm","aria-label":"Pagination"},be=u("span",{class:"sr-only"},"Previous",-1),xe={key:1,class:"relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300"},ve=["onClick"],ke={key:2,class:"relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300"},Ce=u("span",{class:"sr-only"},"Next",-1);function Pe(a,t,e,n,b,l){const g=T("BaseIcon");return l.shouldShowPagination?(i(),s("div",re,[u("div",ie,[u("a",{href:"#",class:c([{"disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400":e.pagination.currentPage===1},"relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50"]),onClick:t[0]||(t[0]=d=>l.pageClicked(e.pagination.currentPage-1))}," Previous ",2),u("a",{href:"#",class:c([{"disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400":e.pagination.currentPage===e.pagination.totalPages},"relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50"]),onClick:t[1]||(t[1]=d=>l.pageClicked(e.pagination.currentPage+1))}," Next ",2)]),u("div",se,[u("div",null,[u("p",le,[oe,e.pagination.limit&&e.pagination.currentPage?(i(),s("span",de,h(e.pagination.currentPage*e.pagination.limit-(e.pagination.limit-1)),1)):m("",!0),ge,e.pagination.limit&&e.pagination.currentPage?(i(),s("span",ue,[e.pagination.currentPage*e.pagination.limit<=e.pagination.totalCount?(i(),s("span",ce,h(e.pagination.currentPage*e.pagination.limit),1)):(i(),s("span",he,h(e.pagination.totalCount),1))])):m("",!0),ye,e.pagination.totalCount?(i(),s("span",fe,h(e.pagination.totalCount),1)):m("",!0),me])]),u("div",null,[u("nav",pe,[u("a",{href:"#",class:c([{"disabled cursor-normal pointer-events-none !bg-gray-100 !text-gray-400":e.pagination.currentPage===1},"relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md hover:bg-gray-50"]),onClick:t[2]||(t[2]=d=>l.pageClicked(e.pagination.currentPage-1))},[be,k(g,{name:"ChevronLeftIcon"})],2),l.hasFirst?(i(),s("a",{key:0,href:"#","aria-current":"page",class:c([{"z-10 bg-primary-50 border-primary-500 text-primary-600":l.isActive(1),"bg-white border-gray-300 text-gray-500 hover:bg-gray-50":!l.isActive(1)},"relative inline-flex items-center px-4 py-2 text-sm font-medium border"]),onClick:t[3]||(t[3]=d=>l.pageClicked(1))}," 1 ",2)):m("",!0),l.hasFirstEllipsis?(i(),s("span",xe," ... ")):m("",!0),(i(!0),s(C,null,P(l.pages,d=>(i(),s("a",{key:d,href:"#",class:c([{"z-10 bg-primary-50 border-primary-500 text-primary-600":l.isActive(d),"bg-white border-gray-300 text-gray-500 hover:bg-gray-50":!l.isActive(d),disabled:d==="..."},"relative items-center hidden px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 hover:bg-gray-50 md:inline-flex"]),onClick:p=>l.pageClicked(d)},h(d),11,ve))),128)),l.hasLastEllipsis?(i(),s("span",ke," ... ")):m("",!0),l.hasLast?(i(),s("a",{key:3,href:"#","aria-current":"page",class:c([{"z-10 bg-primary-50 border-primary-500 text-primary-600":l.isActive(e.pagination.totalPages),"bg-white border-gray-300 text-gray-500 hover:bg-gray-50":!l.isActive(e.pagination.totalPages)},"relative inline-flex items-center px-4 py-2 text-sm font-medium border"]),onClick:t[4]||(t[4]=d=>l.pageClicked(e.pagination.totalPages))},h(e.pagination.totalPages),3)):m("",!0),u("a",{href:"#",class:c(["relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md hover:bg-gray-50",{"disabled cursor-default pointer-events-none !bg-gray-100 !text-gray-400":e.pagination.currentPage===e.pagination.totalPages}]),onClick:t[5]||(t[5]=d=>l.pageClicked(e.pagination.currentPage+1))},[Ce,k(g,{name:"ChevronRightIcon"})],2)])])])])):m("",!0)}var _e=Z(ne,[["render",Pe]]);const we={class:"flex flex-col"},Se={class:"-my-2 overflow-x-auto sm:-mx-6 lg:-mx-8 pb-4 lg:pb-0"},Te={class:"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8"},Ne={class:"relative overflow-hidden bg-white border-b border-gray-200 shadow sm:rounded-lg"},Be=["onClick"],Fe={key:0,class:"asc-direction"},Ae={key:1,class:"desc-direction"},Le={key:0},Ve={key:1},Ie={key:0,class:"absolute top-0 left-0 z-10 flex items-center justify-center w-full h-full bg-white bg-opacity-60"},De={key:1,class:"text-center text-gray-500 pb-2 flex h-[160px] justify-center items-center flex-col"},Me={class:"block mt-1"},Re={props:{columns:{type:Array,required:!0},data:{type:[Array,Function],required:!0},sortBy:{type:String,default:""},sortOrder:{type:String,default:""},tableClass:{type:String,default:"min-w-full divide-y divide-gray-200"},theadClass:{type:String,default:"bg-gray-50"},tbodyClass:{type:String,default:""},noResultsMessage:{type:String,default:"No Results Found"},loading:{type:Boolean,default:!1},loadingType:{type:String,default:"placeholder",validator:function(a){return["placeholder","spinner"].indexOf(a)!==-1}},placeholderCount:{type:Number,default:3}},setup(a,{expose:t}){const e=a;let n=N([]),b=F(!1),l=N(e.columns.map(r=>new ae(r))),g=N({fieldName:"",order:""}),d=F("");const p=A(()=>Array.isArray(e.data)),x=A(()=>{if(!p.value||g.fieldName===""||l.length===0)return n.value;const r=I(g.fieldName);return r?[...n.value].sort(r.getSortPredicate(g.order,l)):n.value});function I(r){return l.find(o=>o.key===r)}function D(r){let o="whitespace-nowrap px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider";return r.defaultThClass&&(o=r.defaultThClass),r.sortable?o=`${o} cursor-pointer`:o=`${o} pointer-events-none`,r.thClass&&(o=`${o} ${r.thClass}`),o}function B(r){let o="px-6 py-4 text-sm text-gray-500 whitespace-nowrap";return r.defaultTdClass&&(o=r.defaultTdClass),r.tdClass&&(o=`${o} ${r.tdClass}`),o}function M(r){let o="w-full";return r.placeholderClass&&(o=`${o} ${r.placeholderClass}`),o}function z(){return d.value=null,e.data}async function E(){const r=d.value&&d.value.currentPage||1;b.value=!0;const o=await e.data({sort:g,page:r});return b.value=!1,d.value=o.pagination,o.data}function R(r){g.fieldName!==r.key?(g.fieldName=r.key,g.order="asc"):g.order=g.order==="asc"?"desc":"asc",p.value||w()}async function w(){const r=p.value?z():await E();n.value=r.map(o=>new te(o,l))}async function j(r){d.value.currentPage=r,await w()}async function Y(){await w()}function H(r,o){return U.exports.get(r,o)}return p.value&&J(()=>e.data,()=>{w()}),K(async()=>{await w()}),t({refresh:Y}),(r,o)=>{const q=T("base-content-placeholders-text"),W=T("base-content-placeholders"),G=T("BaseIcon");return i(),s("div",we,[u("div",Se,[u("div",Te,[u("div",Ne,[L(r.$slots,"header"),u("table",{class:c(a.tableClass)},[u("thead",{class:c(a.theadClass)},[u("tr",null,[(i(!0),s(C,null,P(y(l),f=>(i(),s("th",{key:f.key,class:c([D(f),{"text-bold text-black":y(g).fieldName===f.key}]),onClick:v=>R(f)},[_(h(f.label)+" ",1),y(g).fieldName===f.key&&y(g).order==="asc"?(i(),s("span",Fe," \u2191 ")):m("",!0),y(g).fieldName===f.key&&y(g).order==="desc"?(i(),s("span",Ae," \u2193 ")):m("",!0)],10,Be))),128))])],2),a.loadingType==="placeholder"&&(a.loading||y(b))?(i(),s("tbody",Le,[(i(!0),s(C,null,P(a.placeholderCount,f=>(i(),s("tr",{key:f,class:c(f%2==0?"bg-white":"bg-gray-50")},[(i(!0),s(C,null,P(a.columns,v=>(i(),s("td",{key:v.key,class:c(["",B(v)])},[k(W,{class:c(M(v)),rounded:!0},{default:Q(()=>[k(q,{class:"w-full h-6",lines:1})]),_:2},1032,["class"])],2))),128))],2))),128))])):(i(),s("tbody",Ve,[(i(!0),s(C,null,P(y(x),(f,v)=>(i(),s("tr",{key:v,class:c(v%2==0?"bg-white":"bg-gray-50")},[(i(!0),s(C,null,P(a.columns,S=>(i(),s("td",{key:S.key,class:c(["",B(S)])},[L(r.$slots,"cell-"+S.key,{row:f},()=>[_(h(H(f.data,S.key)),1)])],2))),128))],2))),128))]))],2),a.loadingType==="spinner"&&(a.loading||y(b))?(i(),s("div",Ie,[k($,{class:"w-10 h-10 text-primary-500"})])):!a.loading&&!y(b)&&y(x)&&y(x).length===0?(i(),s("div",De,[k(G,{name:"ExclamationCircleIcon",class:"w-6 h-6 text-gray-400"}),u("span",Me,h(a.noResultsMessage),1)])):m("",!0),y(d)?(i(),X(_e,{key:2,pagination:y(d),onPageChange:j},null,8,["pagination"])):m("",!0)])])])])}}};export{Re as default}; diff --git a/public/build/assets/CapsuleIcon.37dfa933.js b/public/build/assets/CapsuleIcon.37dfa933.js deleted file mode 100644 index a06fd2eb8..000000000 --- a/public/build/assets/CapsuleIcon.37dfa933.js +++ /dev/null @@ -1 +0,0 @@ -import{o as d,e as i,h as l,m as C}from"./vendor.d12b5734.js";const o={width:"118",height:"110",viewBox:"0 0 118 110",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r={"clip-path":"url(#clip0)"},n=l("defs",null,[l("clipPath",{id:"clip0"},[l("rect",{width:"117.333",height:"110",fill:"white"})])],-1),s={props:{primaryFillColor:{type:String,default:"fill-primary-500"},secondaryFillColor:{type:String,default:"fill-gray-600"}},setup(e){return(a,c)=>(d(),i("svg",o,[l("g",r,[l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M58.6672 32.9999C42.1415 32.9999 32.973 28.5119 32.5898 28.3194L33.4093 26.6804C33.4992 26.7244 42.6127 31.1666 58.6672 31.1666C74.542 31.1666 83.8388 26.7208 83.9323 26.6768L84.7354 28.3231C84.3449 28.5156 74.9618 32.9999 58.6672 32.9999Z",class:C(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M25.2438 39.0117L28.4191 40.8451C28.839 41.0871 29.1415 41.4831 29.2698 41.9597C29.3963 42.4346 29.3321 42.9296 29.0901 43.3494L14.4235 68.7521C14.099 69.3167 13.4866 69.6669 12.8248 69.6669C12.504 69.6669 12.1978 69.5844 11.9191 69.4231L8.74382 67.5897L7.82715 69.1774L11.0025 71.0107C11.5763 71.3426 12.2051 71.5002 12.8248 71.5002C14.0953 71.5002 15.3346 70.8421 16.0111 69.6687L30.6778 44.2661C31.6861 42.5189 31.083 40.2657 29.3358 39.2574L26.1605 37.4241L25.2438 39.0117Z",class:C(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M91.1729 37.4241L87.9976 39.2574C86.2504 40.2657 85.6472 42.5189 86.6556 44.2661L101.322 69.6687C101.999 70.8421 103.238 71.5002 104.509 71.5002C105.128 71.5002 105.757 71.3426 106.331 71.0107L109.506 69.1774L108.59 67.5897L105.414 69.4231C105.139 69.5826 104.826 69.6669 104.509 69.6669C103.847 69.6669 103.234 69.3167 102.91 68.7521L88.2432 43.3494C88.0012 42.9296 87.9371 42.4346 88.0636 41.9597C88.1919 41.4831 88.4944 41.0871 88.9142 40.8451L92.0896 39.0117L91.1729 37.4241Z",class:C(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M115.5 84.3333V87.6993C115.5 89.2797 114.424 90.6308 112.88 90.9883C112.013 91.19 111.049 91.4393 109.96 91.7198C102.573 93.6228 88.8268 97.1667 58.6667 97.1667C28.292 97.1667 14.6942 93.6338 7.38833 91.7345C6.29383 91.4503 5.324 91.1992 4.44767 90.9938C2.90767 90.6363 1.83333 89.2833 1.83333 87.7067V84.3333L0 82.5V87.7067C0 90.134 1.66833 92.2295 4.0315 92.7795C10.9322 94.3873 23.6812 99 58.6667 99C93.3478 99 106.372 94.3818 113.296 92.7758C115.661 92.2258 117.333 90.1285 117.333 87.6993V82.5",class:C(e.primaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M79.6139 20.1666L115.245 81.7354C115.841 82.7566 115.344 84.0656 114.214 84.4102C107.345 86.4966 89.3159 89.8333 58.6662 89.8333C27.9744 89.8333 9.97652 86.3371 3.12535 84.2526C1.99602 83.9079 1.49919 82.5989 2.09502 81.5778L37.7204 20.1666L36.6662 18.3333L0.503686 80.6666C-0.686148 82.7071 0.322186 85.3251 2.58085 86.0163C9.60985 88.1704 27.7104 91.6666 58.6662 91.6666C89.4625 91.6666 107.664 88.3189 114.742 86.1666C117.008 85.4772 118.022 82.8574 116.829 80.8133L80.6662 18.3333",class:C(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M110.814 92.4116L115.245 100.069C115.841 101.089 115.344 102.4 114.214 102.742C107.345 104.831 89.3159 108.167 58.6662 108.167C27.9744 108.167 9.97469 104.671 3.12535 102.585C1.99602 102.242 1.49919 100.931 2.09502 99.9117L6.41985 92.4556L4.75885 91.6672L0.503686 99.0006C-0.686148 101.041 0.322185 103.657 2.58085 104.35C9.60985 106.504 27.7104 110.001 58.6662 110.001C89.4625 110.001 107.664 106.653 114.742 104.501C117.007 103.811 118.022 101.191 116.829 99.1472L112.682 91.9789L110.814 92.4116Z",class:C(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M58.667 0C47.238 0 36.667 7.1335 36.667 18.3407V20.1667C36.667 20.1667 42.6052 23.8333 58.667 23.8333C74.6665 23.8333 80.667 20.1667 80.667 20.1667V18.3333C80.667 7.24167 70.767 0 58.667 0ZM58.667 1.83333C70.3527 1.83333 78.8337 8.7725 78.8337 18.3333V19.0172C76.6887 19.9302 70.5103 22 58.667 22C46.7705 22 40.6197 19.9283 38.5003 19.0227V18.3407C38.5003 12.3658 41.7692 8.55617 44.51 6.41117C48.2317 3.50167 53.3907 1.83333 58.667 1.83333Z",class:C(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M69.6667 53.1666C70.6768 53.1666 71.5 53.9898 71.5 54.9999V89.8333H73.3333V54.9999C73.3333 52.9741 71.6925 51.3333 69.6667 51.3333H47.6667C45.6408 51.3333 44 52.9741 44 54.9999V89.8333H45.8333V54.9999C45.8333 53.9898 46.6565 53.1666 47.6667 53.1666H69.6667Z",class:C(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M58.6667 56.8333C53.6048 56.8333 49.5 60.9381 49.5 65.9999C49.5 71.0618 53.6048 75.1666 58.6667 75.1666C63.7285 75.1666 67.8333 71.0618 67.8333 65.9999C67.8333 60.9381 63.7285 56.8333 58.6667 56.8333ZM58.6667 58.6666C62.711 58.6666 66 61.9556 66 65.9999C66 70.0443 62.711 73.3333 58.6667 73.3333C54.6223 73.3333 51.3333 70.0443 51.3333 65.9999C51.3333 61.9556 54.6223 58.6666 58.6667 58.6666Z",class:C(e.secondaryFillColor)},null,2),l("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M63.2503 66C62.7443 66 62.3337 65.5893 62.3337 65.0833C62.3337 63.5672 61.0998 62.3333 59.5837 62.3333C59.0777 62.3333 58.667 61.9227 58.667 61.4167C58.667 60.9107 59.0777 60.5 59.5837 60.5C62.11 60.5 64.167 62.5552 64.167 65.0833C64.167 65.5893 63.7563 66 63.2503 66Z",class:C(e.primaryFillColor)},null,2)]),n]))}};export{s as _}; diff --git a/public/build/assets/CategoryModal.6fabb0b3.js b/public/build/assets/CategoryModal.6fabb0b3.js deleted file mode 100644 index 58facbdcd..000000000 --- a/public/build/assets/CategoryModal.6fabb0b3.js +++ /dev/null @@ -1 +0,0 @@ -import{J as j,B as k,k as g,L as y,M as N,N as L,S as T,T as q,r as i,o as B,l as b,w as r,h as m,i as f,t as C,u as e,f as n,m as D,j as G,U}from"./vendor.d12b5734.js";import{u as z}from"./category.c88b90cd.js";import{c as E}from"./main.465728e1.js";const A={class:"flex justify-between w-full"},J=["onSubmit"],X={class:"p-8 sm:p-6"},F={class:"z-0 flex justify-end p-4 border-t border-gray-200 border-solid border-modal-bg"},Q={setup(H){const t=z(),u=E(),{t:p}=j();let c=k(!1);const h=g(()=>({currentCategory:{name:{required:y.withMessage(p("validation.required"),N),minLength:y.withMessage(p("validation.name_min_length",{count:3}),L(3))},description:{maxLength:y.withMessage(p("validation.description_maxlength",{count:255}),T(255))}}})),o=q(h,g(()=>t)),w=g(()=>u.active&&u.componentName==="CategoryModal");async function I(){if(o.value.currentCategory.$touch(),o.value.currentCategory.$invalid)return!0;const s=t.isEdit?t.updateCategory:t.addCategory;c.value=!0,await s(t.currentCategory),c.value=!1,u.refreshData&&u.refreshData(),d()}function d(){u.closeModal(),setTimeout(()=>{t.$reset(),o.value.$reset()},300)}return(s,a)=>{const v=i("BaseIcon"),x=i("BaseInput"),_=i("BaseInputGroup"),M=i("BaseTextarea"),V=i("BaseInputGrid"),$=i("BaseButton"),S=i("BaseModal");return B(),b(S,{show:e(w),onClose:d},{header:r(()=>[m("div",A,[f(C(e(u).title)+" ",1),n(v,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:d})])]),default:r(()=>[m("form",{action:"",onSubmit:U(I,["prevent"])},[m("div",X,[n(V,{layout:"one-column"},{default:r(()=>[n(_,{label:s.$t("expenses.category"),error:e(o).currentCategory.name.$error&&e(o).currentCategory.name.$errors[0].$message,required:""},{default:r(()=>[n(x,{modelValue:e(t).currentCategory.name,"onUpdate:modelValue":a[0]||(a[0]=l=>e(t).currentCategory.name=l),invalid:e(o).currentCategory.name.$error,type:"text",onInput:a[1]||(a[1]=l=>e(o).currentCategory.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),n(_,{label:s.$t("expenses.description"),error:e(o).currentCategory.description.$error&&e(o).currentCategory.description.$errors[0].$message},{default:r(()=>[n(M,{modelValue:e(t).currentCategory.description,"onUpdate:modelValue":a[2]||(a[2]=l=>e(t).currentCategory.description=l),rows:"4",cols:"50",onInput:a[3]||(a[3]=l=>e(o).currentCategory.description.$touch())},null,8,["modelValue"])]),_:1},8,["label","error"])]),_:1})]),m("div",F,[n($,{type:"button",variant:"primary-outline",class:"mr-3 text-sm",onClick:d},{default:r(()=>[f(C(s.$t("general.cancel")),1)]),_:1}),n($,{loading:e(c),disabled:e(c),variant:"primary",type:"submit"},{left:r(l=>[e(c)?G("",!0):(B(),b(v,{key:0,name:"SaveIcon",class:D(l.class)},null,8,["class"]))]),default:r(()=>[f(" "+C(e(t).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,J)]),_:1},8,["show"])}}};export{Q as _}; diff --git a/public/build/assets/CompanyInfoSettings.23b88ef4.js b/public/build/assets/CompanyInfoSettings.23b88ef4.js deleted file mode 100644 index fdce4e8ef..000000000 --- a/public/build/assets/CompanyInfoSettings.23b88ef4.js +++ /dev/null @@ -1 +0,0 @@ -var oe=Object.defineProperty;var T=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var R=(f,s,d)=>s in f?oe(f,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):f[s]=d,A=(f,s)=>{for(var d in s||(s={}))se.call(s,d)&&R(f,d,s[d]);if(T)for(var d of T(s))ne.call(s,d)&&R(f,d,s[d]);return f};import{aN as le,J,B as C,a0 as E,k as F,L as h,M as k,P as de,T as O,r as u,o as I,l as q,w as r,h as m,t as b,u as e,f as o,i as j,m as P,j as z,U as H,ah as re,N as ie,e as K,x as ue,F as me}from"./vendor.d12b5734.js";import{b as Q,c as W,d as X}from"./main.465728e1.js";const ce={class:"flex justify-between w-full"},pe={class:"px-6 pt-6"},_e={class:"font-medium text-lg text-left"},fe={class:"mt-2 text-sm leading-snug text-gray-500",style:{"max-width":"680px"}},ye=["onSubmit"],ge={class:"p-4 sm:p-6 space-y-4"},ve={class:"z-0 flex justify-end p-4 bg-gray-50 border-modal-bg"},be={setup(f){const s=Q(),d=W(),S=X(),B=le(),{t:M}=J();let c=C(!1);const a=E({id:s.selectedCompany.id,name:null}),$=F(()=>d.active&&d.componentName==="DeleteCompanyModal"),g={formData:{name:{required:h.withMessage(M("validation.required"),k),sameAsName:h.withMessage(M("validation.company_name_not_same"),de(s.selectedCompany.name))}}},_=O(g,{formData:a},{$scope:!1});async function V(){if(_.value.$touch(),_.value.$invalid)return!0;const v=s.companies[0];c.value=!0;try{const y=await s.deleteCompany(a);console.log(y.data.success),y.data.success&&(p(),await s.setSelectedCompany(v),B.push("/admin/dashboard"),await S.setIsAppLoaded(!1),await S.bootstrap()),c.value=!1}catch{c.value=!1}}function N(){a.id=null,a.name="",_.value.$reset()}function p(){d.closeModal(),setTimeout(()=>{N(),_.value.$reset()},300)}return(v,y)=>{const U=u("BaseInput"),x=u("BaseInputGroup"),l=u("BaseButton"),t=u("BaseIcon"),D=u("BaseModal");return I(),q(D,{show:e($),onClose:p},{default:r(()=>[m("div",ce,[m("div",pe,[m("h6",_e,b(e(d).title),1),m("p",fe,b(v.$t("settings.company_info.delete_company_modal_desc",{company:e(s).selectedCompany.name})),1)])]),m("form",{action:"",onSubmit:H(V,["prevent"])},[m("div",ge,[o(x,{label:v.$t("settings.company_info.delete_company_modal_label",{company:e(s).selectedCompany.name}),error:e(_).formData.name.$error&&e(_).formData.name.$errors[0].$message,required:""},{default:r(()=>[o(U,{modelValue:e(a).name,"onUpdate:modelValue":y[0]||(y[0]=i=>e(a).name=i),invalid:e(_).formData.name.$error,onInput:y[1]||(y[1]=i=>e(_).formData.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),m("div",ve,[o(l,{class:"mr-3 text-sm",variant:"primary-outline",outline:"",type:"button",onClick:p},{default:r(()=>[j(b(v.$t("general.cancel")),1)]),_:1}),o(l,{loading:e(c),disabled:e(c),variant:"danger",type:"submit"},{left:r(i=>[e(c)?z("",!0):(I(),q(t,{key:0,name:"TrashIcon",class:P(i.class)},null,8,["class"]))]),default:r(()=>[j(" "+b(v.$t("general.delete")),1)]),_:1},8,["loading","disabled"])])],40,ye)]),_:1},8,["show"])}}},$e=["onSubmit"],Be={key:0,class:"py-5"},Ve={class:"text-lg leading-6 font-medium text-gray-900"},Ce={class:"mt-2 max-w-xl text-sm text-gray-500"},we={class:"mt-5"},Me={setup(f){const s=Q(),d=X(),S=W(),{t:B}=J(),M=re("utils");let c=C(!1);const a=E({name:null,logo:null,address:{address_street_1:"",address_street_2:"",website:"",country_id:null,state:"",city:"",phone:"",zip:""}});M.mergeSettings(a,A({},s.selectedCompany));let $=C([]),g=C(null),_=C(null);const V=C(!1);a.logo&&$.value.push({image:a.logo});const N=F(()=>({name:{required:h.withMessage(B("validation.required"),k),minLength:h.withMessage(B("validation.name_min_length"),ie(3))},address:{country_id:{required:h.withMessage(B("validation.required"),k)}}})),p=O(N,F(()=>a));d.fetchCountries();function v(l,t,D,i){_.value=i.name,g.value=t}function y(){g.value=null,V.value=!0}async function U(){if(p.value.$touch(),p.value.$invalid)return!0;if(c.value=!0,(await s.updateCompany(a)).data.data){if(g.value||V.value){let t=new FormData;g.value&&t.append("company_logo",JSON.stringify({name:_.value,data:g.value})),t.append("is_company_logo_removed",V.value),await s.updateCompanyLogo(t),g.value=null,V.value=!1}c.value=!1}c.value=!1}function x(l){S.openModal({title:B("settings.company_info.are_you_absolutely_sure"),componentName:"DeleteCompanyModal",size:"sm"})}return(l,t)=>{const D=u("BaseFileUploader"),i=u("BaseInputGroup"),G=u("BaseInputGrid"),w=u("BaseInput"),Y=u("BaseMultiselect"),L=u("BaseTextarea"),Z=u("BaseIcon"),ee=u("BaseButton"),ae=u("BaseDivider"),te=u("BaseSettingCard");return I(),K(me,null,[m("form",{onSubmit:H(U,["prevent"])},[o(te,{title:l.$t("settings.company_info.company_info"),description:l.$t("settings.company_info.section_description")},{default:r(()=>[o(G,{class:"mt-5"},{default:r(()=>[o(i,{label:l.$tc("settings.company_info.company_logo")},{default:r(()=>[o(D,{modelValue:e($),"onUpdate:modelValue":t[0]||(t[0]=n=>ue($)?$.value=n:$=n),base64:"",onChange:v,onRemove:y},null,8,["modelValue"])]),_:1},8,["label"])]),_:1}),o(G,{class:"mt-5"},{default:r(()=>[o(i,{label:l.$tc("settings.company_info.company_name"),error:e(p).name.$error&&e(p).name.$errors[0].$message,required:""},{default:r(()=>[o(w,{modelValue:e(a).name,"onUpdate:modelValue":t[1]||(t[1]=n=>e(a).name=n),invalid:e(p).name.$error,onBlur:t[2]||(t[2]=n=>e(p).name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),o(i,{label:l.$tc("settings.company_info.phone")},{default:r(()=>[o(w,{modelValue:e(a).address.phone,"onUpdate:modelValue":t[3]||(t[3]=n=>e(a).address.phone=n)},null,8,["modelValue"])]),_:1},8,["label"]),o(i,{label:l.$tc("settings.company_info.country"),error:e(p).address.country_id.$error&&e(p).address.country_id.$errors[0].$message,required:""},{default:r(()=>[o(Y,{modelValue:e(a).address.country_id,"onUpdate:modelValue":t[4]||(t[4]=n=>e(a).address.country_id=n),label:"name",invalid:e(p).address.country_id.$error,options:e(d).countries,"value-prop":"id","can-deselect":!0,"can-clear":!1,searchable:"","track-by":"name"},null,8,["modelValue","invalid","options"])]),_:1},8,["label","error"]),o(i,{label:l.$tc("settings.company_info.state")},{default:r(()=>[o(w,{modelValue:e(a).address.state,"onUpdate:modelValue":t[5]||(t[5]=n=>e(a).address.state=n),name:"state",type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(i,{label:l.$tc("settings.company_info.city")},{default:r(()=>[o(w,{modelValue:e(a).address.city,"onUpdate:modelValue":t[6]||(t[6]=n=>e(a).address.city=n),type:"text"},null,8,["modelValue"])]),_:1},8,["label"]),o(i,{label:l.$tc("settings.company_info.zip")},{default:r(()=>[o(w,{modelValue:e(a).address.zip,"onUpdate:modelValue":t[7]||(t[7]=n=>e(a).address.zip=n)},null,8,["modelValue"])]),_:1},8,["label"]),m("div",null,[o(i,{label:l.$tc("settings.company_info.address")},{default:r(()=>[o(L,{modelValue:e(a).address.address_street_1,"onUpdate:modelValue":t[8]||(t[8]=n=>e(a).address.address_street_1=n),rows:"2"},null,8,["modelValue"])]),_:1},8,["label"]),o(L,{modelValue:e(a).address.address_street_2,"onUpdate:modelValue":t[9]||(t[9]=n=>e(a).address.address_street_2=n),rows:"2",row:2,class:"mt-2"},null,8,["modelValue"])])]),_:1}),o(ee,{loading:e(c),disabled:e(c),type:"submit",class:"mt-6"},{left:r(n=>[e(c)?z("",!0):(I(),q(Z,{key:0,class:P(n.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[j(" "+b(l.$tc("settings.company_info.save")),1)]),_:1},8,["loading","disabled"]),e(s).companies.length!==1?(I(),K("div",Be,[o(ae,{class:"my-4"}),m("h3",Ve,b(l.$tc("settings.company_info.delete_company")),1),m("div",Ce,[m("p",null,b(l.$tc("settings.company_info.delete_company_description")),1)]),m("div",we,[m("button",{type:"button",class:"inline-flex items-center justify-center px-4 py-2 border border-transparent font-medium rounded-md text-red-700 bg-red-100 hover:bg-red-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:text-sm",onClick:x},b(l.$tc("general.delete")),1)])])):z("",!0)]),_:1},8,["title","description"])],40,$e),o(be)],64)}}};export{Me as default}; diff --git a/public/build/assets/Create.1d6bd807.js b/public/build/assets/Create.1d6bd807.js deleted file mode 100644 index 87584a418..000000000 --- a/public/build/assets/Create.1d6bd807.js +++ /dev/null @@ -1 +0,0 @@ -var ce=Object.defineProperty;var R=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable;var L=(_,s,c)=>s in _?ce(_,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):_[s]=c,T=(_,s)=>{for(var c in s||(s={}))de.call(s,c)&&L(_,c,s[c]);if(R)for(var c of R(s))ye.call(s,c)&&L(_,c,s[c]);return _};import{G as pe,aN as _e,ah as ve,J as fe,B as w,a0 as Pe,k as S,L as C,M as q,aX as ge,O as be,aP as Be,T as $e,a7 as he,b1 as Ce,r as m,o as k,e as Ie,f as r,w as l,h as I,u as e,l as j,m as z,j as U,i as N,t as b,x as Se,U as Ve,F as Me}from"./vendor.d12b5734.js";import{_ as we}from"./ExchangeRateConverter.d865db6a.js";import{u as qe,l as ke,m as Ne,b as je,c as Ue,i as xe,d as De}from"./main.465728e1.js";import{u as Ae}from"./payment.93619753.js";import{_ as Ee}from"./SelectNotePopup.2e678c03.js";import{_ as Fe}from"./CreateCustomFields.c1c460e4.js";import{_ as Ge}from"./PaymentModeModal.a0b58785.js";import"./exchange-rate.85b564e2.js";import"./NoteModal.ebe10cf0.js";const Re=["onSubmit"],Le={class:"absolute left-3.5"},Te={class:"relative w-full"},ze={class:"relative mt-6"},He={class:"z-20 float-right text-sm font-semibold leading-5 text-primary-400"},Je={class:"mb-4 text-sm font-medium text-gray-800"},nt={setup(_){const s=pe(),c=_e(),t=Ae();qe();const V=ke();Ne(),je();const H=Ue(),x=xe();De();const D=ve("utils"),{t:p}=fe();let B=w(!1),M=w(!1),v=w([]);const f=w(null),A="newEstimate",J=Pe(["customer","company","customerCustom","payment","paymentCustom"]),$=S({get:()=>t.currentPayment.amount/100,set:a=>{t.currentPayment.amount=Math.round(a*100)}}),u=S(()=>t.isFetchingInitialData),d=S(()=>s.name==="payments.edit"),E=S(()=>d.value?p("payments.edit_payment"):p("payments.new_payment")),O=S(()=>({currentPayment:{customer_id:{required:C.withMessage(p("validation.required"),q)},payment_date:{required:C.withMessage(p("validation.required"),q)},amount:{required:C.withMessage(p("validation.required"),q),between:C.withMessage(p("validation.payment_greater_than_due_amount"),ge(0,t.currentPayment.maxPayableAmount))},exchange_rate:{required:be(function(){return C.withMessage(p("validation.required"),q),t.showExchangeRate}),decimal:C.withMessage(p("validation.valid_exchange_rate"),Be)}}})),i=$e(O,t,{$scope:A});he(()=>{t.currentPayment.customer_id&&Y(t.currentPayment.customer_id),s.query.customer&&(t.currentPayment.customer_id=s.query.customer)}),t.resetCurrentPayment(),s.query.customer&&(t.currentPayment.customer_id=s.query.customer),t.fetchPaymentInitialData(d.value),s.params.id&&!d.value&&Q();async function X(){H.openModal({title:p("settings.payment_modes.add_payment_mode"),componentName:"PaymentModeModal"})}function K(a){t.currentPayment.notes=""+a.notes}async function Q(){var n;let a=await x.fetchInvoice((n=s==null?void 0:s.params)==null?void 0:n.id);t.currentPayment.customer_id=a.data.data.customer.id,t.currentPayment.invoice_id=a.data.data.id}async function W(a){a&&(f.value=v.value.find(n=>n.id===a),$.value=f.value.due_amount/100,t.currentPayment.maxPayableAmount=f.value.due_amount)}function Y(a){if(a){let n={customer_id:a,status:"DUE",limit:"all"};d.value&&(n.status=""),M.value=!0,Promise.all([x.fetchInvoices(n),V.fetchCustomer(a)]).then(async([y,P])=>{y&&(v.value=[...y.data.data]),P&&P.data&&(t.currentPayment.selectedCustomer=P.data.data,t.currentPayment.customer=P.data.data,t.currentPayment.currency=P.data.data.currency,d.value&&!V.editCustomer&&t.currentPayment.customer_id&&(V.editCustomer=P.data.data)),t.currentPayment.invoice_id&&(f.value=v.value.find(g=>g.id===t.currentPayment.invoice_id),t.currentPayment.maxPayableAmount=f.value.due_amount+t.currentPayment.amount,$.value===0&&($.value=f.value.due_amount/100)),d.value&&(v.value=v.value.filter(g=>g.due_amount>0||g.id==t.currentPayment.invoice_id)),M.value=!1}).catch(y=>{M.value=!1,console.error(y,"error")})}}Ce(()=>{t.resetCurrentPayment(),v.value=[],V.editCustomer=null});async function Z(){if(i.value.$touch(),i.value.$invalid)return!1;B.value=!0;let a=T({},t.currentPayment),n=null;try{n=await(d.value?t.updatePayment:t.addPayment)(a),c.push(`/admin/payments/${n.data.data.id}/view`)}catch{B.value=!1}}function ee(a){let n={userId:a};s.params.id&&(n.model_id=s.params.id),t.currentPayment.invoice_id=f.value=null,t.currentPayment.amount=0,v.value=[],t.getNextNumber(n,!0)}return(a,n)=>{const y=m("BaseBreadcrumbItem"),P=m("BaseBreadcrumb"),g=m("BaseIcon"),F=m("BaseButton"),te=m("BasePageHeader"),ae=m("BaseDatePicker"),h=m("BaseInputGroup"),ne=m("BaseInput"),oe=m("BaseCustomerSelectInput"),G=m("BaseMultiselect"),re=m("BaseMoney"),se=m("BaseSelectAction"),le=m("BaseInputGrid"),ue=m("BaseCustomInput"),me=m("BaseCard"),ie=m("BasePage");return k(),Ie(Me,null,[r(Ge),r(ie,{class:"relative payment-create"},{default:l(()=>[I("form",{action:"",onSubmit:Ve(Z,["prevent"])},[r(te,{title:e(E),class:"mb-5"},{actions:l(()=>[r(F,{loading:e(B),disabled:e(B),variant:"primary",type:"submit",class:"hidden sm:flex"},{left:l(o=>[e(B)?U("",!0):(k(),j(g,{key:0,name:"SaveIcon",class:z(o.class)},null,8,["class"]))]),default:l(()=>[N(" "+b(e(d)?a.$t("payments.update_payment"):a.$t("payments.save_payment")),1)]),_:1},8,["loading","disabled"])]),default:l(()=>[r(P,null,{default:l(()=>[r(y,{title:a.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),r(y,{title:a.$tc("payments.payment",2),to:"/admin/payments"},null,8,["title"]),r(y,{title:e(E),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),r(me,null,{default:l(()=>[r(le,null,{default:l(()=>[r(h,{label:a.$t("payments.date"),"content-loading":e(u),required:"",error:e(i).currentPayment.payment_date.$error&&e(i).currentPayment.payment_date.$errors[0].$message},{default:l(()=>[r(ae,{modelValue:e(t).currentPayment.payment_date,"onUpdate:modelValue":[n[0]||(n[0]=o=>e(t).currentPayment.payment_date=o),n[1]||(n[1]=o=>e(i).currentPayment.payment_date.$touch())],"content-loading":e(u),"calendar-button":!0,"calendar-button-icon":"calendar",invalid:e(i).currentPayment.payment_date.$error},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["label","content-loading","error"]),r(h,{label:a.$t("payments.payment_number"),"content-loading":e(u),required:""},{default:l(()=>[r(ne,{modelValue:e(t).currentPayment.payment_number,"onUpdate:modelValue":n[2]||(n[2]=o=>e(t).currentPayment.payment_number=o),"content-loading":e(u)},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(h,{label:a.$t("payments.customer"),error:e(i).currentPayment.customer_id.$error&&e(i).currentPayment.customer_id.$errors[0].$message,"content-loading":e(u),required:""},{default:l(()=>[e(u)?U("",!0):(k(),j(oe,{key:0,modelValue:e(t).currentPayment.customer_id,"onUpdate:modelValue":[n[3]||(n[3]=o=>e(t).currentPayment.customer_id=o),n[4]||(n[4]=o=>ee(e(t).currentPayment.customer_id))],"content-loading":e(u),invalid:e(i).currentPayment.customer_id.$error,placeholder:a.$t("customers.select_a_customer"),"show-action":""},null,8,["modelValue","content-loading","invalid","placeholder"]))]),_:1},8,["label","error","content-loading"]),r(h,{"content-loading":e(u),label:a.$t("payments.invoice"),"help-text":f.value?`Due Amount: ${e(t).currentPayment.maxPayableAmount/100}`:""},{default:l(()=>[r(G,{modelValue:e(t).currentPayment.invoice_id,"onUpdate:modelValue":n[5]||(n[5]=o=>e(t).currentPayment.invoice_id=o),"content-loading":e(u),"value-prop":"id","track-by":"invoice_number",label:"invoice_number",options:e(v),loading:e(M),placeholder:a.$t("invoices.select_invoice"),onSelect:W},{singlelabel:l(({value:o})=>[I("div",Le,b(o.invoice_number)+" ("+b(e(D).formatMoney(o.total,o.customer.currency))+") ",1)]),option:l(({option:o})=>[N(b(o.invoice_number)+" ("+b(e(D).formatMoney(o.total,o.customer.currency))+") ",1)]),_:1},8,["modelValue","content-loading","options","loading","placeholder"])]),_:1},8,["content-loading","label","help-text"]),r(h,{label:a.$t("payments.amount"),"content-loading":e(u),error:e(i).currentPayment.amount.$error&&e(i).currentPayment.amount.$errors[0].$message,required:""},{default:l(()=>[I("div",Te,[r(re,{key:e(t).currentPayment.currency,modelValue:e($),"onUpdate:modelValue":[n[6]||(n[6]=o=>Se($)?$.value=o:null),n[7]||(n[7]=o=>e(i).currentPayment.amount.$touch())],currency:e(t).currentPayment.currency,"content-loading":e(u),invalid:e(i).currentPayment.amount.$error},null,8,["modelValue","currency","content-loading","invalid"])])]),_:1},8,["label","content-loading","error"]),r(h,{"content-loading":e(u),label:a.$t("payments.payment_mode")},{default:l(()=>[r(G,{modelValue:e(t).currentPayment.payment_method_id,"onUpdate:modelValue":n[8]||(n[8]=o=>e(t).currentPayment.payment_method_id=o),"content-loading":e(u),label:"name","value-prop":"id","track-by":"name",options:e(t).paymentModes,placeholder:a.$t("payments.select_payment_mode"),searchable:""},{action:l(()=>[r(se,{onClick:X},{default:l(()=>[r(g,{name:"PlusIcon",class:"h-4 mr-2 -ml-2 text-center text-primary-400"}),N(" "+b(a.$t("settings.payment_modes.add_payment_mode")),1)]),_:1})]),_:1},8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["content-loading","label"]),r(we,{store:e(t),"store-prop":"currentPayment",v:e(i).currentPayment,"is-loading":e(u),"is-edit":e(d),"customer-currency":e(t).currentPayment.currency_id},null,8,["store","v","is-loading","is-edit","customer-currency"])]),_:1}),r(Fe,{type:"Payment","is-edit":e(d),"is-loading":e(u),store:e(t),"store-prop":"currentPayment","custom-field-scope":A,class:"mt-6"},null,8,["is-edit","is-loading","store"]),I("div",ze,[I("div",He,[r(Ee,{type:"Payment",onSelect:K})]),I("label",Je,b(a.$t("estimates.notes")),1),r(ue,{modelValue:e(t).currentPayment.notes,"onUpdate:modelValue":n[9]||(n[9]=o=>e(t).currentPayment.notes=o),"content-loading":e(u),fields:e(J),class:"mt-1"},null,8,["modelValue","content-loading","fields"])]),r(F,{loading:e(B),"content-loading":e(u),variant:"primary",type:"submit",class:"flex justify-center w-full mt-4 sm:hidden md:hidden"},{left:l(o=>[e(B)?U("",!0):(k(),j(g,{key:0,name:"SaveIcon",class:z(o.class)},null,8,["class"]))]),default:l(()=>[N(" "+b(e(d)?a.$t("payments.update_payment"):a.$t("payments.save_payment")),1)]),_:1},8,["loading","content-loading"])]),_:1})],40,Re)]),_:1})],64)}}};export{nt as default}; diff --git a/public/build/assets/Create.68c99c93.js b/public/build/assets/Create.68c99c93.js deleted file mode 100644 index cf243fe41..000000000 --- a/public/build/assets/Create.68c99c93.js +++ /dev/null @@ -1 +0,0 @@ -import{G as ie,aN as de,J as ue,B as q,k as b,L as m,M as $,b2 as ce,S as N,O as pe,aP as me,T as ge,b1 as xe,r as d,o as v,e as _e,f as r,w as o,h as F,u as e,l as h,m as U,i as w,t as S,j as C,x as ye,U as fe,F as ve}from"./vendor.d12b5734.js";import{u as Ee}from"./expense.ea1e799e.js";import{u as be}from"./category.c88b90cd.js";import{l as $e,b as he,m as Ce,c as Be,d as Ve}from"./main.465728e1.js";import{_ as we}from"./CreateCustomFields.c1c460e4.js";import{_ as Se}from"./CategoryModal.6fabb0b3.js";import{_ as Me}from"./ExchangeRateConverter.d865db6a.js";import"./exchange-rate.85b564e2.js";const Ie=["onSubmit"],ke={class:"hidden md:block"},qe={class:"block md:hidden"},Ae={setup(Fe){const _=$e(),j=he(),t=Ee(),y=be(),G=Ce(),T=Be(),f=ie(),A=de(),{t:u}=ue(),D=Ve();let g=q(!1),i=q(!1);const R="newExpense",M=q(!1),L=b(()=>({currentExpense:{expense_category_id:{required:m.withMessage(u("validation.required"),$)},expense_date:{required:m.withMessage(u("validation.required"),$)},amount:{required:m.withMessage(u("validation.required"),$),minValue:m.withMessage(u("validation.price_minvalue"),ce(.1)),maxLength:m.withMessage(u("validation.price_maxlength"),N(20))},notes:{maxLength:m.withMessage(u("validation.description_maxlength"),N(65e3))},currency_id:{required:m.withMessage(u("validation.required"),$)},exchange_rate:{required:pe(function(){return m.withMessage(u("validation.required"),$),t.showExchangeRate}),decimal:m.withMessage(u("validation.valid_exchange_rate"),me)}}})),l=ge(L,t,{$scope:R}),I=b({get:()=>t.currentExpense.amount/100,set:a=>{t.currentExpense.amount=Math.round(a*100)}}),c=b(()=>f.name==="expenses.edit"),P=b(()=>c.value?u("expenses.edit_expense"):u("expenses.new_expense")),O=b(()=>c.value?`/reports/expenses/${f.params.id}/download-receipt`:"");t.resetCurrentExpenseData(),G.resetCustomFields(),X();function z(a,n){t.currentExpense.attachment_receipt=n}function H(){t.currentExpense.attachment_receipt=null,M.value=!0}function J(){T.openModal({title:u("settings.expense_category.add_category"),componentName:"CategoryModal",size:"sm"})}function K(a){t.currentExpense.selectedCurrency=D.currencies.find(n=>n.id===a)}async function Q(a){let n=await y.fetchCategories({search:a});if(n.data.data.length>0&&y.editCategory&&!n.data.data.find(p=>p.id==y.editCategory.id)){let p=Object.assign({},y.editCategory);n.data.data.unshift(p)}return n.data.data}async function W(a){let n=await _.fetchCustomers({search:a});if(n.data.data.length>0&&_.editCustomer&&!n.data.data.find(p=>p.id==_.editCustomer.id)){let p=Object.assign({},_.editCustomer);n.data.data.unshift(p)}return n.data.data}async function X(){if(c.value||(t.currentExpense.currency_id=j.selectedCompanyCurrency.id,t.currentExpense.selectedCurrency=j.selectedCompanyCurrency),i.value=!0,await t.fetchPaymentModes({limit:"all"}),c.value){const a=await t.fetchExpense(f.params.id);t.currentExpense.currency_id=t.currentExpense.selectedCurrency.id,a.data&&(!y.editCategory&&a.data.data.expense_category&&(y.editCategory=a.data.data.expense_category),!_.editCustomer&&a.data.data.customer&&(_.editCustomer=a.data.data.customer))}else f.query.customer&&(t.currentExpense.customer_id=f.query.customer);i.value=!1}async function Y(){if(l.value.$touch(),l.value.$invalid)return;g.value=!0;let a=t.currentExpense;try{c.value?await t.updateExpense({id:f.params.id,data:a,isAttachmentReceiptRemoved:M.value}):await t.addExpense(a),g.value=!1,t.currentExpense.attachment_receipt=null,M.value=!1,A.push("/admin/expenses")}catch(n){console.error(n),g.value=!1;return}}return xe(()=>{t.resetCurrentExpenseData(),_.editCustomer=null,y.editCategory=null}),(a,n)=>{const E=d("BaseBreadcrumbItem"),p=d("BaseBreadcrumb"),B=d("BaseIcon"),k=d("BaseButton"),Z=d("BasePageHeader"),ee=d("BaseSelectAction"),V=d("BaseMultiselect"),x=d("BaseInputGroup"),te=d("BaseDatePicker"),ne=d("BaseMoney"),ae=d("BaseTextarea"),re=d("BaseFileUploader"),se=d("BaseInputGrid"),oe=d("BaseCard"),le=d("BasePage");return v(),_e(ve,null,[r(Se),r(le,{class:"relative"},{default:o(()=>[F("form",{action:"",onSubmit:fe(Y,["prevent"])},[r(Z,{title:e(P),class:"mb-5"},{actions:o(()=>[e(c)&&e(t).currentExpense.attachment_receipt_url?(v(),h(k,{key:0,href:e(O),tag:"a",variant:"primary-outline",type:"button",class:"mr-2"},{left:o(s=>[r(B,{name:"DownloadIcon",class:U(s.class)},null,8,["class"])]),default:o(()=>[w(" "+S(a.$t("expenses.download_receipt")),1)]),_:1},8,["href"])):C("",!0),F("div",ke,[r(k,{loading:e(g),"content-loading":e(i),disabled:e(g),variant:"primary",type:"submit"},{left:o(s=>[e(g)?C("",!0):(v(),h(B,{key:0,name:"SaveIcon",class:U(s.class)},null,8,["class"]))]),default:o(()=>[w(" "+S(e(c)?a.$t("expenses.update_expense"):a.$t("expenses.save_expense")),1)]),_:1},8,["loading","content-loading","disabled"])])]),default:o(()=>[r(p,null,{default:o(()=>[r(E,{title:a.$t("general.home"),to:"/admin/dashboard"},null,8,["title"]),r(E,{title:a.$tc("expenses.expense",2),to:"/admin/expenses"},null,8,["title"]),r(E,{title:e(P),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),r(oe,null,{default:o(()=>[r(se,null,{default:o(()=>[r(x,{label:a.$t("expenses.category"),error:e(l).currentExpense.expense_category_id.$error&&e(l).currentExpense.expense_category_id.$errors[0].$message,"content-loading":e(i),required:""},{default:o(()=>[e(i)?C("",!0):(v(),h(V,{key:0,modelValue:e(t).currentExpense.expense_category_id,"onUpdate:modelValue":n[0]||(n[0]=s=>e(t).currentExpense.expense_category_id=s),"content-loading":e(i),"value-prop":"id",label:"name","track-by":"id",options:Q,"filter-results":!1,"resolve-on-load":"",delay:500,searchable:"",invalid:e(l).currentExpense.expense_category_id.$error,placeholder:a.$t("expenses.categories.select_a_category"),onInput:n[1]||(n[1]=s=>e(l).currentExpense.expense_category_id.$touch())},{action:o(()=>[r(ee,{onClick:J},{default:o(()=>[r(B,{name:"PlusIcon",class:"h-4 mr-2 -ml-2 text-center text-primary-400"}),w(" "+S(a.$t("settings.expense_category.add_new_category")),1)]),_:1})]),_:1},8,["modelValue","content-loading","invalid","placeholder"]))]),_:1},8,["label","error","content-loading"]),r(x,{label:a.$t("expenses.expense_date"),error:e(l).currentExpense.expense_date.$error&&e(l).currentExpense.expense_date.$errors[0].$message,"content-loading":e(i),required:""},{default:o(()=>[r(te,{modelValue:e(t).currentExpense.expense_date,"onUpdate:modelValue":n[2]||(n[2]=s=>e(t).currentExpense.expense_date=s),"content-loading":e(i),"calendar-button":!0,invalid:e(l).currentExpense.expense_date.$error,onInput:n[3]||(n[3]=s=>e(l).currentExpense.expense_date.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["label","error","content-loading"]),r(x,{label:a.$t("expenses.amount"),error:e(l).currentExpense.amount.$error&&e(l).currentExpense.amount.$errors[0].$message,"content-loading":e(i),required:""},{default:o(()=>[r(ne,{key:e(t).currentExpense.selectedCurrency,modelValue:e(I),"onUpdate:modelValue":n[4]||(n[4]=s=>ye(I)?I.value=s:null),class:"focus:border focus:border-solid focus:border-primary-500",invalid:e(l).currentExpense.amount.$error,currency:e(t).currentExpense.selectedCurrency,onInput:n[5]||(n[5]=s=>e(l).currentExpense.amount.$touch())},null,8,["modelValue","invalid","currency"])]),_:1},8,["label","error","content-loading"]),r(x,{label:a.$t("expenses.currency"),"content-loading":e(i),error:e(l).currentExpense.currency_id.$error&&e(l).currentExpense.currency_id.$errors[0].$message,required:""},{default:o(()=>[r(V,{modelValue:e(t).currentExpense.currency_id,"onUpdate:modelValue":[n[6]||(n[6]=s=>e(t).currentExpense.currency_id=s),K],"value-prop":"id",label:"name","track-by":"name","content-loading":e(i),options:e(D).currencies,searchable:"","can-deselect":!1,placeholder:a.$t("customers.select_currency"),invalid:e(l).currentExpense.currency_id.$error,class:"w-full"},null,8,["modelValue","content-loading","options","placeholder","invalid"])]),_:1},8,["label","content-loading","error"]),r(Me,{store:e(t),"store-prop":"currentExpense",v:e(l).currentExpense,"is-loading":e(i),"is-edit":e(c),"customer-currency":e(t).currentExpense.currency_id},null,8,["store","v","is-loading","is-edit","customer-currency"]),r(x,{"content-loading":e(i),label:a.$t("expenses.customer")},{default:o(()=>[e(i)?C("",!0):(v(),h(V,{key:0,modelValue:e(t).currentExpense.customer_id,"onUpdate:modelValue":n[7]||(n[7]=s=>e(t).currentExpense.customer_id=s),"content-loading":e(i),"value-prop":"id",label:"name","track-by":"id",options:W,"filter-results":!1,"resolve-on-load":"",delay:500,searchable:"",placeholder:a.$t("customers.select_a_customer")},null,8,["modelValue","content-loading","placeholder"]))]),_:1},8,["content-loading","label"]),r(x,{"content-loading":e(i),label:a.$t("payments.payment_mode")},{default:o(()=>[r(V,{modelValue:e(t).currentExpense.payment_method_id,"onUpdate:modelValue":n[8]||(n[8]=s=>e(t).currentExpense.payment_method_id=s),"content-loading":e(i),label:"name","value-prop":"id","track-by":"name",options:e(t).paymentModes,placeholder:a.$t("payments.select_payment_mode"),searchable:""},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["content-loading","label"]),r(x,{"content-loading":e(i),label:a.$t("expenses.note"),error:e(l).currentExpense.notes.$error&&e(l).currentExpense.notes.$errors[0].$message},{default:o(()=>[r(ae,{modelValue:e(t).currentExpense.notes,"onUpdate:modelValue":n[9]||(n[9]=s=>e(t).currentExpense.notes=s),"content-loading":e(i),row:4,rows:"4",onInput:n[10]||(n[10]=s=>e(l).currentExpense.notes.$touch())},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label","error"]),r(x,{label:a.$t("expenses.receipt")},{default:o(()=>[r(re,{modelValue:e(t).currentExpense.receiptFiles,"onUpdate:modelValue":n[11]||(n[11]=s=>e(t).currentExpense.receiptFiles=s),accept:"image/*,.doc,.docx,.pdf,.csv,.xlsx,.xls",onChange:z,onRemove:H},null,8,["modelValue"])]),_:1},8,["label"]),r(we,{"is-edit":e(c),class:"col-span-2","is-loading":e(i),type:"Expense",store:e(t),"store-prop":"currentExpense","custom-field-scope":R},null,8,["is-edit","is-loading","store"]),F("div",qe,[r(k,{loading:e(g),tabindex:6,variant:"primary",type:"submit",class:"flex justify-center w-full"},{left:o(s=>[e(g)?C("",!0):(v(),h(B,{key:0,name:"SaveIcon",class:U(s.class)},null,8,["class"]))]),default:o(()=>[w(" "+S(e(c)?a.$t("expenses.update_expense"):a.$t("expenses.save_expense")),1)]),_:1},8,["loading"])])]),_:1})]),_:1})],40,Ie)]),_:1})],64)}}};export{Ae as default}; diff --git a/public/build/assets/Create.c666337c.js b/public/build/assets/Create.c666337c.js deleted file mode 100644 index fdc128bb3..000000000 --- a/public/build/assets/Create.c666337c.js +++ /dev/null @@ -1 +0,0 @@ -var W=Object.defineProperty,X=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var Z=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var k=(m,a,o)=>a in m?W(m,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):m[a]=o,j=(m,a)=>{for(var o in a||(a={}))Z.call(a,o)&&k(m,o,a[o]);if(S)for(var o of S(a))x.call(a,o)&&k(m,o,a[o]);return m},N=(m,a)=>X(m,Y(a));import{J as ee,G as ae,aN as te,B as b,k as V,L as p,M as $,N as G,Q as oe,O as se,T as ne,r as d,o as w,l as h,w as u,f as s,u as e,h as y,e as re,y as le,F as ie,m as ue,j as de,i as me,t as ce,U as pe}from"./vendor.d12b5734.js";import{b as ge}from"./main.465728e1.js";import{V as fe}from"./index.esm.85b4999a.js";import{u as ve}from"./users.27a53e97.js";const $e=["onSubmit"],De={class:"grid grid-cols-12"},Be={class:"space-y-6"},ye={setup(m){const a=ve(),{t:o}=ee(),q=ae(),L=te(),P=ge();let g=b(!1),l=b(!1);b([]);let I=b([]);const f=V(()=>q.name==="users.edit"),M=V(()=>f.value?o("users.edit_user"):o("users.new_user")),E=V(()=>({userData:{name:{required:p.withMessage(o("validation.required"),$),minLength:p.withMessage(o("validation.name_min_length",{count:3}),G(3))},email:{required:p.withMessage(o("validation.required"),$),email:p.withMessage(o("validation.email_incorrect"),oe)},password:{required:se(function(){return p.withMessage(o("validation.required"),$),!f.value}),minLength:p.withMessage(o("validation.password_min_length",{count:8}),G(8))},companies:{required:p.withMessage(o("validation.required"),$)}}})),F={role:{required:p.withMessage(o("validation.required"),$)}},n=ne(E,a,{$scope:!0});R(),a.resetUserData();async function R(){var i;l.value=!0;try{f.value&&await a.fetchUser(q.params.id);let t=await P.fetchUserCompanies();((i=t==null?void 0:t.data)==null?void 0:i.data)&&(I.value=t.data.data.map(c=>(c.role=null,c)))}catch{l.value=!1}l.value=!1}async function T(){if(n.value.$touch(),n.value.$invalid)return!0;try{g.value=!0;let i=N(j({},a.userData),{companies:a.userData.companies.map(c=>({role:c.role,id:c.id}))});await(f.value?a.updateUser:a.addUser)(i),L.push("/admin/users"),g.value=!1}catch{g.value=!1}}return(i,t)=>{const c=d("BaseBreadcrumbItem"),H=d("BaseBreadcrumb"),z=d("BasePageHeader"),D=d("BaseInput"),v=d("BaseInputGroup"),U=d("BaseMultiselect"),A=d("BaseInputGrid"),J=d("BaseIcon"),O=d("BaseButton"),Q=d("BaseCard"),K=d("BasePage");return w(),h(K,null,{default:u(()=>[s(z,{title:e(M)},{default:u(()=>[s(H,null,{default:u(()=>[s(c,{title:i.$t("general.home"),to:"dashboard"},null,8,["title"]),s(c,{title:i.$tc("users.user",2),to:"/admin/users"},null,8,["title"]),s(c,{title:e(M),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),y("form",{action:"",autocomplete:"off",onSubmit:pe(T,["prevent"])},[y("div",De,[s(Q,{class:"mt-6 col-span-12 md:col-span-8"},{default:u(()=>[s(A,{layout:"one-column"},{default:u(()=>[s(v,{"content-loading":e(l),label:i.$t("users.name"),error:e(n).userData.name.$error&&e(n).userData.name.$errors[0].$message,required:""},{default:u(()=>[s(D,{modelValue:e(a).userData.name,"onUpdate:modelValue":t[0]||(t[0]=r=>e(a).userData.name=r),modelModifiers:{trim:!0},"content-loading":e(l),invalid:e(n).userData.name.$error,onInput:t[1]||(t[1]=r=>e(n).userData.name.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["content-loading","label","error"]),s(v,{"content-loading":e(l),label:i.$t("users.email"),error:e(n).userData.email.$error&&e(n).userData.email.$errors[0].$message,required:""},{default:u(()=>[s(D,{modelValue:e(a).userData.email,"onUpdate:modelValue":t[2]||(t[2]=r=>e(a).userData.email=r),modelModifiers:{trim:!0},type:"email","content-loading":e(l),invalid:e(n).userData.email.$error,onInput:t[3]||(t[3]=r=>e(n).userData.email.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["content-loading","label","error"]),s(v,{"content-loading":e(l),label:i.$t("users.companies"),error:e(n).userData.companies.$error&&e(n).userData.companies.$errors[0].$message,required:""},{default:u(()=>[s(U,{modelValue:e(a).userData.companies,"onUpdate:modelValue":t[4]||(t[4]=r=>e(a).userData.companies=r),mode:"tags",object:!0,autocomplete:"new-password",label:"name",options:e(I),"value-prop":"id",invalid:e(n).userData.companies.$error,"content-loading":e(l),searchable:"","can-deselect":!1,class:"w-full","track-by":"name"},null,8,["modelValue","options","invalid","content-loading"])]),_:1},8,["content-loading","label","error"]),(w(!0),re(ie,null,le(e(a).userData.companies,(r,B)=>(w(),h(e(fe),{key:B,state:r,rules:F},{default:u(({v:_})=>[y("div",Be,[s(v,{"content-loading":e(l),label:i.$t("users.select_company_role",{company:r.name}),error:_.role.$error&&_.role.$errors[0].$message,required:""},{default:u(()=>[s(U,{modelValue:e(a).userData.companies[B].role,"onUpdate:modelValue":C=>e(a).userData.companies[B].role=C,"value-prop":"name","track-by":"id",autocomplete:"off","content-loading":e(l),label:"name",options:e(a).userData.companies[B].roles,"can-deselect":!1,invalid:_.role.$invalid,onChange:C=>_.role.$touch()},null,8,["modelValue","onUpdate:modelValue","content-loading","options","invalid","onChange"])]),_:2},1032,["content-loading","label","error"])])]),_:2},1032,["state"]))),128)),s(v,{"content-loading":e(l),label:i.$tc("users.password"),error:e(n).userData.password.$error&&e(n).userData.password.$errors[0].$message,required:!e(f)},{default:u(()=>[s(D,{modelValue:e(a).userData.password,"onUpdate:modelValue":t[5]||(t[5]=r=>e(a).userData.password=r),name:"new-password",autocomplete:"new-password","content-loading":e(l),type:"password",invalid:e(n).userData.password.$error,onInput:t[6]||(t[6]=r=>e(n).userData.password.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["content-loading","label","error","required"]),s(v,{"content-loading":e(l),label:i.$t("users.phone")},{default:u(()=>[s(D,{modelValue:e(a).userData.phone,"onUpdate:modelValue":t[7]||(t[7]=r=>e(a).userData.phone=r),modelModifiers:{trim:!0},"content-loading":e(l)},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"])]),_:1}),s(O,{"content-loading":e(l),type:"submit",loading:e(g),disabled:e(g),class:"mt-6"},{left:u(r=>[e(g)?de("",!0):(w(),h(J,{key:0,name:"SaveIcon",class:ue(r.class)},null,8,["class"]))]),default:u(()=>[me(" "+ce(e(f)?i.$t("users.update_user"):i.$t("users.save_user")),1)]),_:1},8,["content-loading","loading","disabled"])]),_:1})])],40,$e)]),_:1})}}};export{ye as default}; diff --git a/public/build/assets/Create.ddeb574a.js b/public/build/assets/Create.ddeb574a.js deleted file mode 100644 index e4bb45cc6..000000000 --- a/public/build/assets/Create.ddeb574a.js +++ /dev/null @@ -1 +0,0 @@ -var ae=Object.defineProperty;var G=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var N=(y,o,b)=>o in y?ae(y,o,{enumerable:!0,configurable:!0,writable:!0,value:b}):y[o]=b,T=(y,o)=>{for(var b in o||(o={}))ie.call(o,b)&&N(y,b,o[b]);if(G)for(var b of G(o))ue.call(o,b)&&N(y,b,o[b]);return y};import{J as de,aN as me,G as ce,B,k as M,L as g,M as R,N as F,O as A,Q as pe,P as ge,R as be,S as q,T as Ce,r as p,o as _,l as $,w as i,h as m,f as r,m as O,i as H,t as v,u as e,j as V,x as L,e as J,U as fe}from"./vendor.d12b5734.js";import{l as _e,m as $e,d as ye,b as ve,n as Ve}from"./main.465728e1.js";import{_ as we}from"./CreateCustomFields.c1c460e4.js";const he=["onSubmit"],Be={class:"flex items-center justify-end"},Me={class:"grid grid-cols-5 gap-4 mb-8"},Ie={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},xe={class:"grid grid-cols-5 gap-4 mb-8"},Ue={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},ke={class:"md:col-span-2"},Se={class:"text-sm text-gray-500"},qe={class:"grid grid-cols-5 gap-4 mb-8"},Le={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},ze={class:"space-y-6"},Pe={class:"flex items-center justify-start mb-6 md:justify-end md:mb-0"},Fe={class:"p-1"},je={key:0,class:"grid grid-cols-5 gap-4 mb-8"},De={class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},Ee={class:"space-y-6"},Ge={class:"grid grid-cols-5 gap-2 mb-8"},Ne={key:0,class:"col-span-5 text-lg font-semibold text-left lg:col-span-1"},Te={class:"col-span-5 lg:col-span-4"},Je={setup(y){const o=_e(),b=$e(),z=ye(),Q=ve(),j="customFields",{t:c}=de(),K=me(),W=ce();let s=B(!1),C=B(!1),f=B(!1);B(!1);const I=B(!1),h=M(()=>W.name==="customers.edit");let X=M(()=>o.isFetchingInitialSettings);const D=M(()=>h.value?c("customers.edit_customer"):c("customers.new_customer")),Y=M(()=>({currentCustomer:{name:{required:g.withMessage(c("validation.required"),R),minLength:g.withMessage(c("validation.name_min_length",{count:3}),F(3))},prefix:{minLength:g.withMessage(c("validation.name_min_length",{count:3}),F(3))},currency_id:{required:g.withMessage(c("validation.required"),R)},email:{required:g.withMessage(c("validation.required"),A(o.currentCustomer.enable_portal==!0)),email:g.withMessage(c("validation.email_incorrect"),pe)},password:{required:g.withMessage(c("validation.required"),A(o.currentCustomer.enable_portal==!0&&!o.currentCustomer.password_added)),minLength:g.withMessage(c("validation.password_min_length",{count:8}),F(8))},confirm_password:{sameAsPassword:g.withMessage(c("validation.password_incorrect"),ge(o.currentCustomer.password))},website:{url:g.withMessage(c("validation.invalid_url"),be)},billing:{address_street_1:{maxLength:g.withMessage(c("validation.address_maxlength",{count:255}),q(255))},address_street_2:{maxLength:g.withMessage(c("validation.address_maxlength",{count:255}),q(255))}},shipping:{address_street_1:{maxLength:g.withMessage(c("validation.address_maxlength",{count:255}),q(255))},address_street_2:{maxLength:g.withMessage(c("validation.address_maxlength",{count:255}),q(255))}}}})),Z=M(()=>`${window.location.origin}/${Q.selectedCompany.slug}/customer/login`),a=Ce(Y,o,{$scope:j});o.resetCurrentCustomer(),o.fetchCustomerInitialSettings(h.value);async function ee(){if(a.value.$touch(),a.value.$invalid)return!0;I.value=!0;let l=T({},o.currentCustomer),t=null;try{t=await(h.value?o.updateCustomer:o.addCustomer)(l)}catch{I.value=!1;return}K.push(`/admin/customers/${t.data.data.id}/view`)}return(l,t)=>{const x=p("BaseBreadcrumbItem"),te=p("BaseBreadcrumb-item"),oe=p("BaseBreadcrumb"),w=p("BaseIcon"),E=p("BaseButton"),ne=p("BasePageHeader"),d=p("BaseInput"),u=p("BaseInputGroup"),P=p("BaseMultiselect"),U=p("BaseInputGrid"),k=p("BaseDivider"),re=p("BaseSwitch"),S=p("BaseTextarea"),se=p("BaseCard"),le=p("BasePage");return _(),$(le,null,{default:i(()=>[m("form",{onSubmit:fe(ee,["prevent"])},[r(ne,{title:e(D)},{actions:i(()=>[m("div",Be,[r(E,{type:"submit",loading:I.value,disabled:I.value},{left:i(n=>[r(w,{name:"SaveIcon",class:O(n.class)},null,8,["class"])]),default:i(()=>[H(" "+v(e(h)?l.$t("customers.update_customer"):l.$t("customers.save_customer")),1)]),_:1},8,["loading","disabled"])])]),default:i(()=>[r(oe,null,{default:i(()=>[r(x,{title:l.$t("general.home"),to:"dashboard"},null,8,["title"]),r(x,{title:l.$tc("customers.customer",2),to:"/admin/customers"},null,8,["title"]),r(te,{title:e(D),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),r(se,{class:"mt-5"},{default:i(()=>[m("div",Me,[m("h6",Ie,v(l.$t("customers.basic_info")),1),r(U,{class:"col-span-5 lg:col-span-4"},{default:i(()=>[r(u,{label:l.$t("customers.display_name"),required:"",error:e(a).currentCustomer.name.$error&&e(a).currentCustomer.name.$errors[0].$message,"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.name,"onUpdate:modelValue":t[0]||(t[0]=n=>e(o).currentCustomer.name=n),"content-loading":e(s),type:"text",name:"name",class:"",invalid:e(a).currentCustomer.name.$error,onInput:t[1]||(t[1]=n=>e(a).currentCustomer.name.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["label","error","content-loading"]),r(u,{label:l.$t("customers.primary_contact_name"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.contact_name,"onUpdate:modelValue":t[2]||(t[2]=n=>e(o).currentCustomer.contact_name=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(u,{error:e(a).currentCustomer.email.$error&&e(a).currentCustomer.email.$errors[0].$message,"content-loading":e(s),label:l.$t("customers.email")},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.email,"onUpdate:modelValue":t[3]||(t[3]=n=>e(o).currentCustomer.email=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"email",invalid:e(a).currentCustomer.email.$error,onInput:t[4]||(t[4]=n=>e(a).currentCustomer.email.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["error","content-loading","label"]),r(u,{label:l.$t("customers.phone"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.phone,"onUpdate:modelValue":t[5]||(t[5]=n=>e(o).currentCustomer.phone=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"phone"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(u,{label:l.$t("customers.primary_currency"),"content-loading":e(s),error:e(a).currentCustomer.currency_id.$error&&e(a).currentCustomer.currency_id.$errors[0].$message,required:""},{default:i(()=>[r(P,{modelValue:e(o).currentCustomer.currency_id,"onUpdate:modelValue":t[6]||(t[6]=n=>e(o).currentCustomer.currency_id=n),"value-prop":"id",label:"name","track-by":"name","content-loading":e(s),options:e(z).currencies,searchable:"","can-deselect":!1,placeholder:l.$t("customers.select_currency"),invalid:e(a).currentCustomer.currency_id.$error,class:"w-full"},null,8,["modelValue","content-loading","options","placeholder","invalid"])]),_:1},8,["label","content-loading","error"]),r(u,{error:e(a).currentCustomer.website.$error&&e(a).currentCustomer.website.$errors[0].$message,label:l.$t("customers.website"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.website,"onUpdate:modelValue":t[7]||(t[7]=n=>e(o).currentCustomer.website=n),"content-loading":e(s),type:"url",onInput:t[8]||(t[8]=n=>e(a).currentCustomer.website.$touch())},null,8,["modelValue","content-loading"])]),_:1},8,["error","label","content-loading"]),r(u,{label:l.$t("customers.prefix"),error:e(a).currentCustomer.prefix.$error&&e(a).currentCustomer.prefix.$errors[0].$message,"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.prefix,"onUpdate:modelValue":t[9]||(t[9]=n=>e(o).currentCustomer.prefix=n),"content-loading":e(s),type:"text",name:"name",class:"",invalid:e(a).currentCustomer.prefix.$error,onInput:t[10]||(t[10]=n=>e(a).currentCustomer.prefix.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["label","error","content-loading"])]),_:1})]),r(k,{class:"mb-5 md:mb-8"}),m("div",xe,[m("h6",Ue,v(l.$t("customers.portal_access")),1),r(U,{class:"col-span-5 lg:col-span-4"},{default:i(()=>[m("div",ke,[m("p",Se,v(l.$t("customers.portal_access_text")),1),r(re,{modelValue:e(o).currentCustomer.enable_portal,"onUpdate:modelValue":t[11]||(t[11]=n=>e(o).currentCustomer.enable_portal=n),class:"mt-1 flex"},null,8,["modelValue"])]),e(o).currentCustomer.enable_portal?(_(),$(u,{key:0,"content-loading":e(s),label:l.$t("customers.portal_access_url"),class:"md:col-span-2","help-text":l.$t("customers.portal_access_url_help")},{default:i(()=>[r(Ve,{token:e(Z)},null,8,["token"])]),_:1},8,["content-loading","label","help-text"])):V("",!0),e(o).currentCustomer.enable_portal?(_(),$(u,{key:1,"content-loading":e(s),error:e(a).currentCustomer.password.$error&&e(a).currentCustomer.password.$errors[0].$message,label:l.$t("customers.password")},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.password,"onUpdate:modelValue":t[14]||(t[14]=n=>e(o).currentCustomer.password=n),modelModifiers:{trim:!0},"content-loading":e(s),type:e(C)?"text":"password",name:"password",invalid:e(a).currentCustomer.password.$error,onInput:t[15]||(t[15]=n=>e(a).currentCustomer.password.$touch())},{right:i(()=>[e(C)?(_(),$(w,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[12]||(t[12]=n=>L(C)?C.value=!e(C):C=!e(C))})):(_(),$(w,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[13]||(t[13]=n=>L(C)?C.value=!e(C):C=!e(C))}))]),_:1},8,["modelValue","content-loading","type","invalid"])]),_:1},8,["content-loading","error","label"])):V("",!0),e(o).currentCustomer.enable_portal?(_(),$(u,{key:2,error:e(a).currentCustomer.confirm_password.$error&&e(a).currentCustomer.confirm_password.$errors[0].$message,"content-loading":e(s),label:"Confirm Password"},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.confirm_password,"onUpdate:modelValue":t[18]||(t[18]=n=>e(o).currentCustomer.confirm_password=n),modelModifiers:{trim:!0},"content-loading":e(s),type:e(f)?"text":"password",name:"confirm_password",invalid:e(a).currentCustomer.confirm_password.$error,onInput:t[19]||(t[19]=n=>e(a).currentCustomer.confirm_password.$touch())},{right:i(()=>[e(f)?(_(),$(w,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[16]||(t[16]=n=>L(f)?f.value=!e(f):f=!e(f))})):(_(),$(w,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:t[17]||(t[17]=n=>L(f)?f.value=!e(f):f=!e(f))}))]),_:1},8,["modelValue","content-loading","type","invalid"])]),_:1},8,["error","content-loading"])):V("",!0)]),_:1})]),r(k,{class:"mb-5 md:mb-8"}),m("div",qe,[m("h6",Le,v(l.$t("customers.billing_address")),1),e(o).currentCustomer.billing?(_(),$(U,{key:0,class:"col-span-5 lg:col-span-4"},{default:i(()=>[r(u,{label:l.$t("customers.name"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.billing.name,"onUpdate:modelValue":t[20]||(t[20]=n=>e(o).currentCustomer.billing.name=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",class:"w-full",name:"address_name"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(u,{label:l.$t("customers.country"),"content-loading":e(s)},{default:i(()=>[r(P,{modelValue:e(o).currentCustomer.billing.country_id,"onUpdate:modelValue":t[21]||(t[21]=n=>e(o).currentCustomer.billing.country_id=n),"value-prop":"id",label:"name","track-by":"name","resolve-on-load":"",searchable:"","content-loading":e(s),options:e(z).countries,placeholder:l.$t("general.select_country"),class:"w-full"},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","content-loading"]),r(u,{label:l.$t("customers.state"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.billing.state,"onUpdate:modelValue":t[22]||(t[22]=n=>e(o).currentCustomer.billing.state=n),"content-loading":e(s),name:"billing.state",type:"text"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(u,{"content-loading":e(s),label:l.$t("customers.city")},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.billing.city,"onUpdate:modelValue":t[23]||(t[23]=n=>e(o).currentCustomer.billing.city=n),"content-loading":e(s),name:"billing.city",type:"text"},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"]),r(u,{label:l.$t("customers.address"),error:e(a).currentCustomer.billing.address_street_1.$error&&e(a).currentCustomer.billing.address_street_1.$errors[0].$message||e(a).currentCustomer.billing.address_street_2.$error&&e(a).currentCustomer.billing.address_street_2.$errors[0].$message,"content-loading":e(s)},{default:i(()=>[r(S,{modelValue:e(o).currentCustomer.billing.address_street_1,"onUpdate:modelValue":t[24]||(t[24]=n=>e(o).currentCustomer.billing.address_street_1=n),modelModifiers:{trim:!0},"content-loading":e(s),placeholder:l.$t("general.street_1"),type:"text",name:"billing_street1","container-class":"mt-3",onInput:t[25]||(t[25]=n=>e(a).currentCustomer.billing.address_street_1.$touch())},null,8,["modelValue","content-loading","placeholder"]),r(S,{modelValue:e(o).currentCustomer.billing.address_street_2,"onUpdate:modelValue":t[26]||(t[26]=n=>e(o).currentCustomer.billing.address_street_2=n),modelModifiers:{trim:!0},"content-loading":e(s),placeholder:l.$t("general.street_2"),type:"text",class:"mt-3",name:"billing_street2","container-class":"mt-3",onInput:t[27]||(t[27]=n=>e(a).currentCustomer.billing.address_street_2.$touch())},null,8,["modelValue","content-loading","placeholder"])]),_:1},8,["label","error","content-loading"]),m("div",ze,[r(u,{"content-loading":e(s),label:l.$t("customers.phone"),class:"text-left"},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.billing.phone,"onUpdate:modelValue":t[28]||(t[28]=n=>e(o).currentCustomer.billing.phone=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"phone"},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"]),r(u,{label:l.$t("customers.zip_code"),"content-loading":e(s),class:"mt-2 text-left"},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.billing.zip,"onUpdate:modelValue":t[29]||(t[29]=n=>e(o).currentCustomer.billing.zip=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"zip"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"])])]),_:1})):V("",!0)]),r(k,{class:"mb-5 md:mb-8"}),m("div",Pe,[m("div",Fe,[r(E,{type:"button","content-loading":e(s),size:"sm",variant:"primary-outline",onClick:t[30]||(t[30]=n=>e(o).copyAddress(!0))},{left:i(n=>[r(w,{name:"DocumentDuplicateIcon",class:O(n.class)},null,8,["class"])]),default:i(()=>[H(" "+v(l.$t("customers.copy_billing_address")),1)]),_:1},8,["content-loading"])])]),e(o).currentCustomer.shipping?(_(),J("div",je,[m("h6",De,v(l.$t("customers.shipping_address")),1),r(U,{class:"col-span-5 lg:col-span-4"},{default:i(()=>[r(u,{"content-loading":e(s),label:l.$t("customers.name")},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.shipping.name,"onUpdate:modelValue":t[31]||(t[31]=n=>e(o).currentCustomer.shipping.name=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"address_name"},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"]),r(u,{label:l.$t("customers.country"),"content-loading":e(s)},{default:i(()=>[r(P,{modelValue:e(o).currentCustomer.shipping.country_id,"onUpdate:modelValue":t[32]||(t[32]=n=>e(o).currentCustomer.shipping.country_id=n),"value-prop":"id",label:"name","track-by":"name","resolve-on-load":"",searchable:"","content-loading":e(s),options:e(z).countries,placeholder:l.$t("general.select_country"),class:"w-full"},null,8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["label","content-loading"]),r(u,{label:l.$t("customers.state"),"content-loading":e(s)},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.shipping.state,"onUpdate:modelValue":t[33]||(t[33]=n=>e(o).currentCustomer.shipping.state=n),"content-loading":e(s),name:"shipping.state",type:"text"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),r(u,{"content-loading":e(s),label:l.$t("customers.city")},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.shipping.city,"onUpdate:modelValue":t[34]||(t[34]=n=>e(o).currentCustomer.shipping.city=n),"content-loading":e(s),name:"shipping.city",type:"text"},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"]),r(u,{label:l.$t("customers.address"),"content-loading":e(s),error:e(a).currentCustomer.shipping.address_street_1.$error&&e(a).currentCustomer.shipping.address_street_1.$errors[0].$message||e(a).currentCustomer.shipping.address_street_2.$error&&e(a).currentCustomer.shipping.address_street_2.$errors[0].$message},{default:i(()=>[r(S,{modelValue:e(o).currentCustomer.shipping.address_street_1,"onUpdate:modelValue":t[35]||(t[35]=n=>e(o).currentCustomer.shipping.address_street_1=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",placeholder:l.$t("general.street_1"),name:"shipping_street1",onInput:t[36]||(t[36]=n=>e(a).currentCustomer.shipping.address_street_1.$touch())},null,8,["modelValue","content-loading","placeholder"]),r(S,{modelValue:e(o).currentCustomer.shipping.address_street_2,"onUpdate:modelValue":t[37]||(t[37]=n=>e(o).currentCustomer.shipping.address_street_2=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",placeholder:l.$t("general.street_2"),name:"shipping_street2",class:"mt-3","container-class":"mt-3",onInput:t[38]||(t[38]=n=>e(a).currentCustomer.shipping.address_street_2.$touch())},null,8,["modelValue","content-loading","placeholder"])]),_:1},8,["label","content-loading","error"]),m("div",Ee,[r(u,{"content-loading":e(s),label:l.$t("customers.phone"),class:"text-left"},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.shipping.phone,"onUpdate:modelValue":t[39]||(t[39]=n=>e(o).currentCustomer.shipping.phone=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"phone"},null,8,["modelValue","content-loading"])]),_:1},8,["content-loading","label"]),r(u,{label:l.$t("customers.zip_code"),"content-loading":e(s),class:"mt-2 text-left"},{default:i(()=>[r(d,{modelValue:e(o).currentCustomer.shipping.zip,"onUpdate:modelValue":t[40]||(t[40]=n=>e(o).currentCustomer.shipping.zip=n),modelModifiers:{trim:!0},"content-loading":e(s),type:"text",name:"zip"},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"])])]),_:1})])):V("",!0),e(b).customFields.length>0?(_(),$(k,{key:1,class:"mb-5 md:mb-8"})):V("",!0),m("div",Ge,[e(b).customFields.length>0?(_(),J("h6",Ne,v(l.$t("settings.custom_fields.title")),1)):V("",!0),m("div",Te,[r(we,{type:"Customer",store:e(o),"store-prop":"currentCustomer","is-edit":e(h),"is-loading":e(X),"custom-field-scope":j},null,8,["store","is-edit","is-loading"])])])]),_:1})],40,he)]),_:1})}}};export{Je as default}; diff --git a/public/build/assets/Create.f0feda6b.js b/public/build/assets/Create.f0feda6b.js deleted file mode 100644 index 019f36bec..000000000 --- a/public/build/assets/Create.f0feda6b.js +++ /dev/null @@ -1 +0,0 @@ -var oe=Object.defineProperty,se=Object.defineProperties;var le=Object.getOwnPropertyDescriptors;var N=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var P=(u,e,r)=>e in u?oe(u,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[e]=r,b=(u,e)=>{for(var r in e||(e={}))re.call(e,r)&&P(u,r,e[r]);if(N)for(var r of N(e))ie.call(e,r)&&P(u,r,e[r]);return u},h=(u,e)=>se(u,le(e));import{J as me,G as ue,aN as ce,B as T,k as p,L as x,M as de,N as pe,S as _e,T as ge,r as s,o as M,l as w,w as l,f as o,u as t,h as j,x as q,i as E,t as G,j as L,m as Ie,U as fe}from"./vendor.d12b5734.js";import{p as ve,q as Be,c as be,b as $e,e as ye,g as Ve}from"./main.465728e1.js";import{_ as Se}from"./ItemUnitModal.031bb625.js";const he=["onSubmit"],Ue={setup(u){const e=ve(),r=Be(),$=be(),z=$e(),{t:_}=me(),y=ue(),A=ce(),D=ye(),I=T(!1),V=T(z.selectedCompanySettings.tax_per_item);let i=T(!1);e.$reset(),J();const v=p({get:()=>e.currentItem.price/100,set:n=>{e.currentItem.price=Math.round(n*100)}}),S=p({get:()=>{var n,a;return(a=(n=e==null?void 0:e.currentItem)==null?void 0:n.taxes)==null?void 0:a.map(d=>{if(d)return h(b({},d),{tax_type_id:d.id,tax_name:d.name+" ("+d.percent+"%)"})})},set:n=>{e.currentItem.taxes=n}}),B=p(()=>y.name==="items.edit"),U=p(()=>B.value?_("items.edit_item"):_("items.new_item")),R=p(()=>r.taxTypes.map(n=>h(b({},n),{tax_type_id:n.id,tax_name:n.name+" ("+n.percent+"%)"}))),Y=p(()=>V.value==="YES"),H=p(()=>({currentItem:{name:{required:x.withMessage(_("validation.required"),de),minLength:x.withMessage(_("validation.name_min_length",{count:3}),pe(3))},description:{maxLength:x.withMessage(_("validation.description_maxlength"),_e(65e3))}}})),c=ge(H,e);async function F(){$.openModal({title:_("settings.customization.items.add_item_unit"),componentName:"ItemUnitModal",size:"sm"})}async function J(){if(i.value=!0,await e.fetchItemUnits({limit:"all"}),D.hasAbilities(Ve.VIEW_TAX_TYPE)&&await r.fetchTaxTypes({limit:"all"}),B.value){let n=y.params.id;await e.fetchItem(n),e.currentItem.tax_per_item===1?V.value="YES":V.value="NO"}i.value=!1}async function O(){if(c.value.currentItem.$touch(),c.value.currentItem.$invalid)return!1;I.value=!0;try{let a=b({id:y.params.id},e.currentItem);e.currentItem&&e.currentItem.taxes&&(a.taxes=e.currentItem.taxes.map(g=>({tax_type_id:g.tax_type_id,amount:v.value*g.percent,percent:g.percent,name:g.name,collective_tax:0}))),await(B.value?e.updateItem:e.addItem)(a),I.value=!1,A.push("/admin/items"),n()}catch{I.value=!1;return}function n(){$.closeModal(),setTimeout(()=>{e.resetCurrentItem(),$.$reset(),c.value.$reset()},300)}}return(n,a)=>{const d=s("BaseBreadcrumbItem"),g=s("BaseBreadcrumb"),W=s("BasePageHeader"),X=s("BaseInput"),f=s("BaseInputGroup"),K=s("BaseMoney"),C=s("BaseIcon"),Q=s("BaseSelectAction"),k=s("BaseMultiselect"),Z=s("BaseTextarea"),ee=s("BaseButton"),te=s("BaseInputGrid"),ne=s("BaseCard"),ae=s("BasePage");return M(),w(ae,null,{default:l(()=>[o(W,{title:t(U)},{default:l(()=>[o(g,null,{default:l(()=>[o(d,{title:n.$t("general.home"),to:"dashboard"},null,8,["title"]),o(d,{title:n.$tc("items.item",2),to:"/admin/items"},null,8,["title"]),o(d,{title:t(U),to:"#",active:""},null,8,["title"])]),_:1})]),_:1},8,["title"]),o(Se),j("form",{class:"grid lg:grid-cols-2 mt-6",action:"submit",onSubmit:fe(O,["prevent"])},[o(ne,{class:"w-full"},{default:l(()=>[o(te,{layout:"one-column"},{default:l(()=>[o(f,{label:n.$t("items.name"),"content-loading":t(i),required:"",error:t(c).currentItem.name.$error&&t(c).currentItem.name.$errors[0].$message},{default:l(()=>[o(X,{modelValue:t(e).currentItem.name,"onUpdate:modelValue":a[0]||(a[0]=m=>t(e).currentItem.name=m),"content-loading":t(i),invalid:t(c).currentItem.name.$error,onInput:a[1]||(a[1]=m=>t(c).currentItem.name.$touch())},null,8,["modelValue","content-loading","invalid"])]),_:1},8,["label","content-loading","error"]),o(f,{label:n.$t("items.price"),"content-loading":t(i)},{default:l(()=>[o(K,{modelValue:t(v),"onUpdate:modelValue":a[2]||(a[2]=m=>q(v)?v.value=m:null),"content-loading":t(i)},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading"]),o(f,{"content-loading":t(i),label:n.$t("items.unit")},{default:l(()=>[o(k,{modelValue:t(e).currentItem.unit_id,"onUpdate:modelValue":a[3]||(a[3]=m=>t(e).currentItem.unit_id=m),"content-loading":t(i),label:"name",options:t(e).itemUnits,"value-prop":"id","can-deselect":!1,"can-clear":!1,placeholder:n.$t("items.select_a_unit"),searchable:"","track-by":"name"},{action:l(()=>[o(Q,{onClick:F},{default:l(()=>[o(C,{name:"PlusIcon",class:"h-4 mr-2 -ml-2 text-center text-primary-400"}),E(" "+G(n.$t("settings.customization.items.add_item_unit")),1)]),_:1})]),_:1},8,["modelValue","content-loading","options","placeholder"])]),_:1},8,["content-loading","label"]),t(Y)?(M(),w(f,{key:0,label:n.$t("items.taxes"),"content-loading":t(i)},{default:l(()=>[o(k,{modelValue:t(S),"onUpdate:modelValue":a[4]||(a[4]=m=>q(S)?S.value=m:null),"content-loading":t(i),options:t(R),mode:"tags",label:"tax_name",class:"w-full","value-prop":"id","can-deselect":!1,"can-clear":!1,searchable:"","track-by":"tax_name",object:""},null,8,["modelValue","content-loading","options"])]),_:1},8,["label","content-loading"])):L("",!0),o(f,{label:n.$t("items.description"),"content-loading":t(i),error:t(c).currentItem.description.$error&&t(c).currentItem.description.$errors[0].$message},{default:l(()=>[o(Z,{modelValue:t(e).currentItem.description,"onUpdate:modelValue":a[5]||(a[5]=m=>t(e).currentItem.description=m),"content-loading":t(i),name:"description",row:2,rows:"2",onInput:a[6]||(a[6]=m=>t(c).currentItem.description.$touch())},null,8,["modelValue","content-loading"])]),_:1},8,["label","content-loading","error"]),j("div",null,[o(ee,{"content-loading":t(i),type:"submit",loading:I.value},{left:l(m=>[I.value?L("",!0):(M(),w(C,{key:0,name:"SaveIcon",class:Ie(m.class)},null,8,["class"]))]),default:l(()=>[E(" "+G(t(B)?n.$t("items.update_item"):n.$t("items.save_item")),1)]),_:1},8,["content-loading","loading"])])]),_:1})]),_:1})],40,he)]),_:1})}}};export{Ue as default}; diff --git a/public/build/assets/CreateCustomFields.c1c460e4.js b/public/build/assets/CreateCustomFields.c1c460e4.js deleted file mode 100644 index c92d2716e..000000000 --- a/public/build/assets/CreateCustomFields.c1c460e4.js +++ /dev/null @@ -1 +0,0 @@ -var I=Object.defineProperty,b=Object.defineProperties;var g=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var f=(e,t,r)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,_=(e,t)=>{for(var r in t||(t={}))q.call(t,r)&&f(e,r,t[r]);if(y)for(var r of y(t))h.call(t,r)&&f(e,r,t[r]);return e},v=(e,t)=>b(e,g(t));import{J as j,L as w,O as V,T as L,k as T,aE as F,r as E,o as n,l as m,w as P,aj as O,u as c,_ as S,C as x,e as D,f as A,F as R,y as k,j as B,I as C}from"./vendor.d12b5734.js";import{o as i,m as Y}from"./main.465728e1.js";function $(e){switch(e){case"./types/DateTimeType.vue":return i(()=>import("./DateTimeType.6886ff98.js"),["assets/DateTimeType.6886ff98.js","assets/vendor.d12b5734.js"]);case"./types/DateType.vue":return i(()=>import("./DateType.12fc8765.js"),["assets/DateType.12fc8765.js","assets/vendor.d12b5734.js"]);case"./types/DropdownType.vue":return i(()=>import("./DropdownType.2d01b840.js"),["assets/DropdownType.2d01b840.js","assets/vendor.d12b5734.js"]);case"./types/InputType.vue":return i(()=>import("./InputType.cf0dfc7c.js"),["assets/InputType.cf0dfc7c.js","assets/vendor.d12b5734.js"]);case"./types/NumberType.vue":return i(()=>import("./NumberType.7b73360f.js"),["assets/NumberType.7b73360f.js","assets/vendor.d12b5734.js"]);case"./types/PhoneType.vue":return i(()=>import("./PhoneType.29ae66c8.js"),["assets/PhoneType.29ae66c8.js","assets/vendor.d12b5734.js"]);case"./types/SwitchType.vue":return i(()=>import("./SwitchType.591a8b07.js"),["assets/SwitchType.591a8b07.js","assets/vendor.d12b5734.js"]);case"./types/TextAreaType.vue":return i(()=>import("./TextAreaType.27565abe.js"),["assets/TextAreaType.27565abe.js","assets/vendor.d12b5734.js"]);case"./types/TimeType.vue":return i(()=>import("./TimeType.8ac8afd1.js"),["assets/TimeType.8ac8afd1.js","assets/vendor.d12b5734.js"]);case"./types/UrlType.vue":return i(()=>import("./UrlType.d123ab64.js"),["assets/UrlType.d123ab64.js","assets/vendor.d12b5734.js"]);default:return new Promise(function(t,r){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))})}}const M={props:{field:{type:Object,required:!0},customFieldScope:{type:String,required:!0},index:{type:Number,required:!0},store:{type:Object,required:!0},storeProp:{type:String,required:!0}},setup(e){const t=e,{t:r}=j(),d={value:{required:w.withMessage(r("validation.required"),V(t.field.is_required))}},a=L(d,T(()=>t.field),{$scope:t.customFieldScope}),o=T(()=>t.field.type?F(()=>$(`./types/${t.field.type}Type.vue`)):!1);return(u,s)=>{const l=E("BaseInputGroup");return n(),m(l,{label:e.field.label,required:!!e.field.is_required,error:c(a).value.$error&&c(a).value.$errors[0].$message},{default:P(()=>[(n(),m(O(c(o)),{modelValue:e.field.value,"onUpdate:modelValue":s[0]||(s[0]=p=>e.field.value=p),options:e.field.options,invalid:c(a).value.$error,placeholder:e.field.placeholder},null,8,["modelValue","options","invalid","placeholder"]))]),_:1},8,["label","required","error"])}}},N={key:0},J={props:{store:{type:Object,required:!0},storeProp:{type:String,required:!0},isEdit:{type:Boolean,default:!1},type:{type:String,default:null},gridLayout:{type:String,default:"two-column"},isLoading:{type:Boolean,default:null},customFieldScope:{type:String,required:!0}},setup(e){const t=e,r=Y();a();function d(){t.isEdit&&t.store[t.storeProp].fields.forEach(o=>{const u=t.store[t.storeProp].customFields.findIndex(s=>s.id===o.custom_field_id);if(u>-1){let s=o.default_answer;s&&o.custom_field.type==="DateTime"&&(s=C(o.default_answer,"YYYY-MM-DD HH:mm:ss").format("YYYY-MM-DD HH:mm")),t.store[t.storeProp].customFields[u]=v(_({},o),{id:o.custom_field_id,value:s,label:o.custom_field.label,options:o.custom_field.options,is_required:o.custom_field.is_required,placeholder:o.custom_field.placeholder,order:o.custom_field.order})}})}async function a(){let u=(await r.fetchCustomFields({type:t.type,limit:"all"})).data.data;u.map(s=>s.value=s.default_answer),t.store[t.storeProp].customFields=S.sortBy(u,s=>s.order),d()}return x(()=>t.store[t.storeProp].fields,o=>{d()}),(o,u)=>{const s=E("BaseInputGrid");return e.store[e.storeProp]&&e.store[e.storeProp].customFields.length>0&&!e.isLoading?(n(),D("div",N,[A(s,{layout:e.gridLayout},{default:P(()=>[(n(!0),D(R,null,k(e.store[e.storeProp].customFields,(l,p)=>(n(),m(M,{key:l.id,"custom-field-scope":e.customFieldScope,store:e.store,"store-prop":e.storeProp,index:p,field:l},null,8,["custom-field-scope","store","store-prop","index","field"]))),128))]),_:1},8,["layout"])])):B("",!0)}}};export{J as _}; diff --git a/public/build/assets/CustomFieldsSetting.feceee26.js b/public/build/assets/CustomFieldsSetting.feceee26.js deleted file mode 100644 index 7b1988600..000000000 --- a/public/build/assets/CustomFieldsSetting.feceee26.js +++ /dev/null @@ -1 +0,0 @@ -var ie=Object.defineProperty;var W=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var Z=(m,n,e)=>n in m?ie(m,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):m[n]=e,ee=(m,n)=>{for(var e in n||(n={}))de.call(n,e)&&Z(m,e,n[e]);if(W)for(var e of W(n))me.call(n,e)&&Z(m,e,n[e]);return m};import{J as H,G as ce,ah as te,r as d,o as C,l as F,w as u,f as l,u as t,i as B,t as $,j as M,B as L,e as z,aY as pe,U as se,a0 as le,k as D,aE as _e,L as k,M as A,aT as fe,T as ye,h as O,x as oe,y as ve,m as G,F as Ce,aj as be,V as ge}from"./vendor.d12b5734.js";import{j as Fe,u as Te,m as K,e as ae,c as Y,g as U,o as T}from"./main.465728e1.js";const we={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:null}},setup(m){const n=m,e=Fe();Te();const{t:i}=H(),v=K();ce();const f=ae(),c=Y();te("utils");async function p(b){await v.fetchCustomField(b),c.openModal({title:i("settings.custom_fields.edit_custom_field"),componentName:"CustomFieldModal",size:"sm",data:b,refreshData:n.loadData})}async function V(b){e.openDialog({title:i("general.are_you_sure"),message:i("settings.custom_fields.custom_field_confirm_delete"),yesLabel:i("general.ok"),noLabel:i("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async g=>{g&&(await v.deleteCustomFields(b),n.loadData&&n.loadData())})}return(b,g)=>{const y=d("BaseIcon"),I=d("BaseDropdownItem"),h=d("BaseDropdown");return C(),F(h,null,{activator:u(()=>[l(y,{name:"DotsHorizontalIcon",class:"h-5 text-gray-500"})]),default:u(()=>[t(f).hasAbilities(t(U).EDIT_CUSTOM_FIELDS)?(C(),F(I,{key:0,onClick:g[0]||(g[0]=o=>p(m.row.id))},{default:u(()=>[l(y,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),B(" "+$(b.$t("general.edit")),1)]),_:1})):M("",!0),t(f).hasAbilities(t(U).DELETE_CUSTOM_FIELDS)?(C(),F(I,{key:1,onClick:g[1]||(g[1]=o=>V(m.row.id))},{default:u(()=>[l(y,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),B(" "+$(b.$t("general.delete")),1)]),_:1})):M("",!0)]),_:1})}}},$e={class:"flex items-center mt-1"},Ie={emits:["onAdd"],setup(m,{emit:n}){const e=L(null);function i(){if(e.value==null||e.value==""||e.value==null)return!0;n("onAdd",e.value),e.value=null}return(v,f)=>{const c=d("BaseInput"),p=d("BaseIcon");return C(),z("div",$e,[l(c,{modelValue:e.value,"onUpdate:modelValue":f[0]||(f[0]=V=>e.value=V),type:"text",class:"w-full md:w-96",placeholder:v.$t("settings.custom_fields.press_enter_to_add"),onClick:i,onKeydown:pe(se(i,["prevent","stop"]),["enter"])},null,8,["modelValue","placeholder","onKeydown"]),l(p,{name:"PlusCircleIcon",class:"ml-1 text-primary-500 cursor-pointer",onClick:i})])}}};function he(m){switch(m){case"../../custom-fields/types/DateTimeType.vue":return T(()=>import("./DateTimeType.6886ff98.js"),["assets/DateTimeType.6886ff98.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/DateType.vue":return T(()=>import("./DateType.12fc8765.js"),["assets/DateType.12fc8765.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/DropdownType.vue":return T(()=>import("./DropdownType.2d01b840.js"),["assets/DropdownType.2d01b840.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/InputType.vue":return T(()=>import("./InputType.cf0dfc7c.js"),["assets/InputType.cf0dfc7c.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/NumberType.vue":return T(()=>import("./NumberType.7b73360f.js"),["assets/NumberType.7b73360f.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/PhoneType.vue":return T(()=>import("./PhoneType.29ae66c8.js"),["assets/PhoneType.29ae66c8.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/SwitchType.vue":return T(()=>import("./SwitchType.591a8b07.js"),["assets/SwitchType.591a8b07.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/TextAreaType.vue":return T(()=>import("./TextAreaType.27565abe.js"),["assets/TextAreaType.27565abe.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/TimeType.vue":return T(()=>import("./TimeType.8ac8afd1.js"),["assets/TimeType.8ac8afd1.js","assets/vendor.d12b5734.js"]);case"../../custom-fields/types/UrlType.vue":return T(()=>import("./UrlType.d123ab64.js"),["assets/UrlType.d123ab64.js","assets/vendor.d12b5734.js"]);default:return new Promise(function(n,e){(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(e.bind(null,new Error("Unknown variable dynamic import: "+m)))})}}const Be={class:"flex justify-between w-full"},De=["onSubmit"],Ve={class:"overflow-y-auto max-h-[550px]"},Se={class:"px-4 md:px-8 py-8 overflow-y-auto sm:p-6"},Ee={class:"z-0 flex justify-end p-4 border-t border-solid border-gray-light border-modal-bg"},qe={setup(m){const n=Y(),e=K(),{t:i}=H();let v=L(!1);const f=le(["Customer","Invoice","Estimate","Expense","Payment"]),c=le([{label:"Text",value:"Input"},{label:"Textarea",value:"TextArea"},{label:"Phone",value:"Phone"},{label:"URL",value:"Url"},{label:"Number",value:"Number"},{label:"Select Field",value:"Dropdown"},{label:"Switch Toggle",value:"Switch"},{label:"Date",value:"Date"},{label:"Time",value:"Time"},{label:"Date & Time",value:"DateTime"}]);let p=L(c[0]);const V=D(()=>n.active&&n.componentName==="CustomFieldModal"),b=D(()=>p.value&&p.value.label==="Switch Toggle"),g=D(()=>p.value&&p.value.label==="Select Field"),y=D(()=>e.currentCustomField.type?_e(()=>he(`../../custom-fields/types/${e.currentCustomField.type}Type.vue`)):!1),I=D({get:()=>e.currentCustomField.is_required===1,set:s=>{const a=s?1:0;e.currentCustomField.is_required=a}}),h=D(()=>({currentCustomField:{type:{required:k.withMessage(i("validation.required"),A)},name:{required:k.withMessage(i("validation.required"),A)},label:{required:k.withMessage(i("validation.required"),A)},model_type:{required:k.withMessage(i("validation.required"),A)},order:{required:k.withMessage(i("validation.required"),A),numeric:k.withMessage(i("validation.numbers_only"),fe)},type:{required:k.withMessage(i("validation.required"),A)}}})),o=ye(h,D(()=>e));function S(){e.isEdit?p.value=c.find(s=>s.value==e.currentCustomField.type):(e.currentCustomField.model_type=f[0],e.currentCustomField.type=c[0].value,p.value=c[0])}async function P(){if(o.value.currentCustomField.$touch(),o.value.currentCustomField.$invalid)return!0;v.value=!0;let s=ee({},e.currentCustomField);if(e.currentCustomField.options&&(s.options=e.currentCustomField.options.map(E=>E.name)),s.type=="Time"&&typeof s.default_answer=="object"){let E=s&&s.default_answer&&s.default_answer.HH?s.default_answer.HH:null,q=s&&s.default_answer&&s.default_answer.mm?s.default_answer.mm:null;s&&s.default_answer&&s.default_answer.ss&&s.default_answer.ss,s.default_answer=`${E}:${q}`}await(e.isEdit?e.updateCustomField:e.addCustomField)(s),v.value=!1,n.refreshData&&n.refreshData(),R()}function x(s){e.currentCustomField.options=[{name:s},...e.currentCustomField.options]}function _(s){if(e.isEdit&&e.currentCustomField.in_use)return;e.currentCustomField.options[s].name===e.currentCustomField.default_answer&&(e.currentCustomField.default_answer=null),e.currentCustomField.options.splice(s,1)}function N(s){e.currentCustomField.type=s.value}function R(){n.closeModal(),setTimeout(()=>{e.resetCurrentCustomField(),o.value.$reset()},300)}return(s,a)=>{const E=d("BaseIcon"),q=d("BaseInput"),w=d("BaseInputGroup"),J=d("BaseMultiselect"),re=d("BaseSwitch"),ne=d("BaseInputGrid"),X=d("BaseButton"),ue=d("BaseModal");return C(),F(ue,{show:t(V),onOpen:S},{header:u(()=>[O("div",Be,[B($(t(n).title)+" ",1),l(E,{name:"XIcon",class:"w-6 h-6 text-gray-500 cursor-pointer",onClick:R})])]),default:u(()=>[O("form",{action:"",onSubmit:se(P,["prevent"])},[O("div",Ve,[O("div",Se,[l(ne,{layout:"one-column"},{default:u(()=>[l(w,{label:s.$t("settings.custom_fields.name"),required:"",error:t(o).currentCustomField.name.$error&&t(o).currentCustomField.name.$errors[0].$message},{default:u(()=>[l(q,{ref:(r,j)=>{j.name=r},modelValue:t(e).currentCustomField.name,"onUpdate:modelValue":a[0]||(a[0]=r=>t(e).currentCustomField.name=r),invalid:t(o).currentCustomField.name.$error,onInput:a[1]||(a[1]=r=>t(o).currentCustomField.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),l(w,{label:s.$t("settings.custom_fields.model"),error:t(o).currentCustomField.model_type.$error&&t(o).currentCustomField.model_type.$errors[0].$message,"help-text":t(e).currentCustomField.in_use?s.$t("settings.custom_fields.model_in_use"):"",required:""},{default:u(()=>[l(J,{modelValue:t(e).currentCustomField.model_type,"onUpdate:modelValue":a[2]||(a[2]=r=>t(e).currentCustomField.model_type=r),options:t(f),"can-deselect":!1,invalid:t(o).currentCustomField.model_type.$error,searchable:!0,disabled:t(e).currentCustomField.in_use,onInput:a[3]||(a[3]=r=>t(o).currentCustomField.model_type.$touch())},null,8,["modelValue","options","invalid","disabled"])]),_:1},8,["label","error","help-text"]),l(w,{class:"flex items-center space-x-4",label:s.$t("settings.custom_fields.required")},{default:u(()=>[l(re,{modelValue:t(I),"onUpdate:modelValue":a[4]||(a[4]=r=>oe(I)?I.value=r:null)},null,8,["modelValue"])]),_:1},8,["label"]),l(w,{label:s.$t("settings.custom_fields.type"),error:t(o).currentCustomField.type.$error&&t(o).currentCustomField.type.$errors[0].$message,"help-text":t(e).currentCustomField.in_use?s.$t("settings.custom_fields.type_in_use"):"",required:""},{default:u(()=>[l(J,{modelValue:t(p),"onUpdate:modelValue":[a[5]||(a[5]=r=>oe(p)?p.value=r:p=r),N],options:t(c),invalid:t(o).currentCustomField.type.$error,disabled:t(e).currentCustomField.in_use,searchable:!0,"can-deselect":!1,object:""},null,8,["modelValue","options","invalid","disabled"])]),_:1},8,["label","error","help-text"]),l(w,{label:s.$t("settings.custom_fields.label"),required:"",error:t(o).currentCustomField.label.$error&&t(o).currentCustomField.label.$errors[0].$message},{default:u(()=>[l(q,{modelValue:t(e).currentCustomField.label,"onUpdate:modelValue":a[6]||(a[6]=r=>t(e).currentCustomField.label=r),invalid:t(o).currentCustomField.label.$error,onInput:a[7]||(a[7]=r=>t(o).currentCustomField.label.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),t(g)?(C(),F(w,{key:0,label:s.$t("settings.custom_fields.options")},{default:u(()=>[l(Ie,{onOnAdd:x}),(C(!0),z(Ce,null,ve(t(e).currentCustomField.options,(r,j)=>(C(),z("div",{key:j,class:"flex items-center mt-5"},[l(q,{modelValue:r.name,"onUpdate:modelValue":Q=>r.name=Q,class:"w-64"},null,8,["modelValue","onUpdate:modelValue"]),l(E,{name:"MinusCircleIcon",class:G(["ml-1 cursor-pointer",t(e).currentCustomField.in_use?"text-gray-300":"text-red-300"]),onClick:Q=>_(j)},null,8,["class","onClick"])]))),128))]),_:1},8,["label"])):M("",!0),l(w,{label:s.$t("settings.custom_fields.default_value"),class:"relative"},{default:u(()=>[(C(),F(be(t(y)),{modelValue:t(e).currentCustomField.default_answer,"onUpdate:modelValue":a[8]||(a[8]=r=>t(e).currentCustomField.default_answer=r),options:t(e).currentCustomField.options,"default-date-time":t(e).currentCustomField.dateTimeValue},null,8,["modelValue","options","default-date-time"]))]),_:1},8,["label"]),t(b)?M("",!0):(C(),F(w,{key:1,label:s.$t("settings.custom_fields.placeholder")},{default:u(()=>[l(q,{modelValue:t(e).currentCustomField.placeholder,"onUpdate:modelValue":a[9]||(a[9]=r=>t(e).currentCustomField.placeholder=r)},null,8,["modelValue"])]),_:1},8,["label"])),l(w,{label:s.$t("settings.custom_fields.order"),error:t(o).currentCustomField.order.$error&&t(o).currentCustomField.order.$errors[0].$message,required:""},{default:u(()=>[l(q,{modelValue:t(e).currentCustomField.order,"onUpdate:modelValue":a[10]||(a[10]=r=>t(e).currentCustomField.order=r),type:"number",invalid:t(o).currentCustomField.order.$error,onInput:a[11]||(a[11]=r=>t(o).currentCustomField.order.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"])]),_:1})])]),O("div",Ee,[l(X,{class:"mr-3",type:"button",variant:"primary-outline",onClick:R},{default:u(()=>[B($(s.$t("general.cancel")),1)]),_:1}),l(X,{variant:"primary",loading:t(v),disabled:t(v),type:"submit"},{left:u(r=>[t(v)?M("",!0):(C(),F(E,{key:0,class:G(r.class),name:"SaveIcon"},null,8,["class"]))]),default:u(()=>[B(" "+$(t(e).isEdit?s.$t("general.update"):s.$t("general.save")),1)]),_:1},8,["loading","disabled"])])],40,De)]),_:1},8,["show"])}}},ke={class:"text-xs text-gray-500"},Ue={setup(m){const n=Y(),e=K(),i=ae(),v=te("utils"),{t:f}=H(),c=L(null),p=D(()=>[{key:"name",label:f("settings.custom_fields.name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"model_type",label:f("settings.custom_fields.model")},{key:"type",label:f("settings.custom_fields.type")},{key:"is_required",label:f("settings.custom_fields.required")},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function V({page:y,filter:I,sort:h}){let o={orderByField:h.fieldName||"created_at",orderBy:h.order||"desc",page:y},S=await e.fetchCustomFields(o);return{data:S.data.data,pagination:{totalPages:S.data.meta.last_page,currentPage:y,limit:5,totalCount:S.data.meta.total}}}function b(){n.openModal({title:f("settings.custom_fields.add_custom_field"),componentName:"CustomFieldModal",size:"sm",refreshData:c.value&&c.value.refresh})}async function g(){c.value&&c.value.refresh()}return(y,I)=>{const h=d("BaseIcon"),o=d("BaseButton"),S=d("BaseBadge"),P=d("BaseTable"),x=d("BaseSettingCard");return C(),F(x,{title:y.$t("settings.menu_title.custom_fields"),description:y.$t("settings.custom_fields.section_description")},{action:u(()=>[t(i).hasAbilities(t(U).CREATE_CUSTOM_FIELDS)?(C(),F(o,{key:0,variant:"primary-outline",onClick:b},{left:u(_=>[l(h,{class:G(_.class),name:"PlusIcon"},null,8,["class"]),B(" "+$(y.$t("settings.custom_fields.add_custom_field")),1)]),_:1})):M("",!0)]),default:u(()=>[l(qe),l(P,{ref:(_,N)=>{N.table=_,c.value=_},data:V,columns:t(p),class:"mt-16"},ge({"cell-name":u(({row:_})=>[B($(_.data.name)+" ",1),O("span",ke," ("+$(_.data.slug)+")",1)]),"cell-is_required":u(({row:_})=>[l(S,{"bg-color":t(v).getBadgeStatusColor(_.data.is_required?"YES":"NO").bgColor,color:t(v).getBadgeStatusColor(_.data.is_required?"YES":"NO").color},{default:u(()=>[B($(_.data.is_required?y.$t("settings.custom_fields.yes"):y.$t("settings.custom_fields.no").replace("_"," ")),1)]),_:2},1032,["bg-color","color"])]),_:2},[t(i).hasAbilities([t(U).DELETE_CUSTOM_FIELDS,t(U).EDIT_CUSTOM_FIELDS])?{name:"cell-actions",fn:u(({row:_})=>[l(we,{row:_.data,table:c.value,"load-data":g},null,8,["row","table"])])}:void 0]),1032,["columns"])]),_:1},8,["title","description"])}}};export{Ue as default}; diff --git a/public/build/assets/CustomerIndexDropdown.bf4b48d6.js b/public/build/assets/CustomerIndexDropdown.bf4b48d6.js deleted file mode 100644 index aa109956b..000000000 --- a/public/build/assets/CustomerIndexDropdown.bf4b48d6.js +++ /dev/null @@ -1 +0,0 @@ -import{l as S,u as b,j as C,e as x,g}from"./main.465728e1.js";import{J as E,G as j,aN as T,ah as N,r as l,o as a,l as s,w as t,u as e,f as n,i as p,t as f,j as y}from"./vendor.d12b5734.js";const V={props:{row:{type:Object,default:null},table:{type:Object,default:null},loadData:{type:Function,default:()=>{}}},setup(i){const w=i,_=S();b();const v=C(),m=x(),{t:u}=E(),h=j();T(),N("utils");function B(r){v.openDialog({title:u("general.are_you_sure"),message:u("customers.confirm_delete",1),yesLabel:u("general.ok"),noLabel:u("general.cancel"),variant:"danger",hideNoButton:!1,size:"lg"}).then(c=>{c&&_.deleteCustomer({ids:[r]}).then(o=>{if(o.data.success)return w.loadData&&w.loadData(),!0})})}return(r,c)=>{const o=l("BaseIcon"),I=l("BaseButton"),d=l("BaseDropdownItem"),D=l("router-link"),k=l("BaseDropdown");return a(),s(k,{"content-loading":e(_).isFetchingViewData},{activator:t(()=>[e(h).name==="customers.view"?(a(),s(I,{key:0,variant:"primary"},{default:t(()=>[n(o,{name:"DotsHorizontalIcon",class:"h-5 text-white"})]),_:1})):(a(),s(o,{key:1,name:"DotsHorizontalIcon",class:"h-5 text-gray-500"}))]),default:t(()=>[e(m).hasAbilities(e(g).EDIT_CUSTOMER)?(a(),s(D,{key:0,to:`/admin/customers/${i.row.id}/edit`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.edit")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(h).name!=="customers.view"&&e(m).hasAbilities(e(g).VIEW_CUSTOMER)?(a(),s(D,{key:1,to:`customers/${i.row.id}/view`},{default:t(()=>[n(d,null,{default:t(()=>[n(o,{name:"EyeIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.view")),1)]),_:1})]),_:1},8,["to"])):y("",!0),e(m).hasAbilities(e(g).DELETE_CUSTOMER)?(a(),s(d,{key:2,onClick:c[0]||(c[0]=$=>B(i.row.id))},{default:t(()=>[n(o,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),p(" "+f(r.$t("general.delete")),1)]),_:1})):y("",!0)]),_:1},8,["content-loading"])}}};export{V as _}; diff --git a/public/build/assets/CustomerSettings.295ae76d.js b/public/build/assets/CustomerSettings.295ae76d.js deleted file mode 100644 index 7f8880a0f..000000000 --- a/public/build/assets/CustomerSettings.295ae76d.js +++ /dev/null @@ -1 +0,0 @@ -import{G as R,J as G,B as p,k as C,L as c,M as k,N as S,Q as L,P,T as A,r as v,o as g,e as D,f as u,w as i,h as _,t as h,u as e,x as b,l as y,m as O,j as T,i as z,U as J}from"./vendor.d12b5734.js";import{a as Q,u as H}from"./global.dc565c4e.js";import"./auth.c88ceb4c.js";import"./main.465728e1.js";const K=["onSubmit"],W={class:"font-bold text-left"},X={class:"mt-2 text-sm leading-snug text-left text-gray-500",style:{"max-width":"680px"}},Y={class:"grid gap-6 sm:grid-col-1 md:grid-cols-2 mt-6"},Z=_("span",null,null,-1),te={setup(ee){const r=Q();H(),R();const{t:m,tm:U}=G();let f=p([]),d=p(!1),w=p(null),n=p(!1),l=p(!1);const I=p(!1);r.userForm.avatar&&f.value.push({image:r.userForm.avatar});const x=C(()=>({userForm:{name:{required:c.withMessage(m("validation.required"),k),minLength:c.withMessage(m("validation.name_min_length",{count:3}),S(3))},email:{required:c.withMessage(m("validation.required"),k),email:c.withMessage(m("validation.email_incorrect"),L)},password:{minLength:c.withMessage(m("validation.password_min_length",{count:8}),S(8))},confirm_password:{sameAsPassword:c.withMessage(m("validation.password_incorrect"),P(r.userForm.password))}}})),o=A(x,C(()=>r));function M(t,s){w.value=s}function q(){w.value=null,I.value=!0}function N(){if(o.value.userForm.$touch(),o.value.userForm.$invalid)return!0;d.value=!0;let t=new FormData;t.append("name",r.userForm.name),t.append("email",r.userForm.email),r.userForm.password!=null&&r.userForm.password!==void 0&&r.userForm.password!==""&&t.append("password",r.userForm.password),w.value&&t.append("customer_avatar",w.value),t.append("is_customer_avatar_removed",I.value),r.updateCurrentUser({data:t,message:U("settings.account_settings.updated_message")}).then(s=>{s.data.data&&(d.value=!1,r.$patch(B=>{B.userForm.password="",B.userForm.confirm_password=""}),w.value=null,I.value=!1)}).catch(s=>{d.value=!1})}return(t,s)=>{const B=v("BaseFileUploader"),F=v("BaseInputGroup"),V=v("BaseInput"),$=v("BaseIcon"),j=v("BaseButton"),E=v("BaseCard");return g(),D("form",{class:"relative h-full mt-4",onSubmit:J(N,["prevent"])},[u(E,null,{default:i(()=>[_("div",null,[_("h6",W,h(t.$t("settings.account_settings.account_settings")),1),_("p",X,h(t.$t("settings.account_settings.section_description")),1)]),_("div",Y,[u(F,{label:t.$tc("settings.account_settings.profile_picture")},{default:i(()=>[u(B,{modelValue:e(f),"onUpdate:modelValue":s[0]||(s[0]=a=>b(f)?f.value=a:f=a),avatar:!0,accept:"image/*",onChange:M,onRemove:q},null,8,["modelValue"])]),_:1},8,["label"]),Z,u(F,{label:t.$tc("settings.account_settings.name"),error:e(o).userForm.name.$error&&e(o).userForm.name.$errors[0].$message,required:""},{default:i(()=>[u(V,{modelValue:e(r).userForm.name,"onUpdate:modelValue":s[1]||(s[1]=a=>e(r).userForm.name=a),invalid:e(o).userForm.name.$error,onInput:s[2]||(s[2]=a=>e(o).userForm.name.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),u(F,{label:t.$tc("settings.account_settings.email"),error:e(o).userForm.email.$error&&e(o).userForm.email.$errors[0].$message,required:""},{default:i(()=>[u(V,{modelValue:e(r).userForm.email,"onUpdate:modelValue":s[3]||(s[3]=a=>e(r).userForm.email=a),invalid:e(o).userForm.email.$error,onInput:s[4]||(s[4]=a=>e(o).userForm.email.$touch())},null,8,["modelValue","invalid"])]),_:1},8,["label","error"]),u(F,{error:e(o).userForm.password.$error&&e(o).userForm.password.$errors[0].$message,label:t.$tc("settings.account_settings.password")},{default:i(()=>[u(V,{modelValue:e(r).userForm.password,"onUpdate:modelValue":s[7]||(s[7]=a=>e(r).userForm.password=a),type:e(n)?"text":"password",invalid:e(o).userForm.password.$error,onInput:s[8]||(s[8]=a=>e(o).userForm.password.$touch())},{right:i(()=>[e(n)?(g(),y($,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:s[5]||(s[5]=a=>b(n)?n.value=!e(n):n=!e(n))})):(g(),y($,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:s[6]||(s[6]=a=>b(n)?n.value=!e(n):n=!e(n))}))]),_:1},8,["modelValue","type","invalid"])]),_:1},8,["error","label"]),u(F,{label:t.$tc("settings.account_settings.confirm_password"),error:e(o).userForm.confirm_password.$error&&e(o).userForm.confirm_password.$errors[0].$message},{default:i(()=>[u(V,{modelValue:e(r).userForm.confirm_password,"onUpdate:modelValue":s[11]||(s[11]=a=>e(r).userForm.confirm_password=a),type:e(l)?"text":"password",invalid:e(o).userForm.confirm_password.$error,onInput:s[12]||(s[12]=a=>e(o).userForm.confirm_password.$touch())},{right:i(()=>[e(l)?(g(),y($,{key:0,name:"EyeOffIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:s[9]||(s[9]=a=>b(l)?l.value=!e(l):l=!e(l))})):(g(),y($,{key:1,name:"EyeIcon",class:"w-5 h-5 mr-1 text-gray-500 cursor-pointer",onClick:s[10]||(s[10]=a=>b(l)?l.value=!e(l):l=!e(l))}))]),_:1},8,["modelValue","type","invalid"])]),_:1},8,["label","error"])]),u(j,{loading:e(d),disabled:e(d),class:"mt-6"},{left:i(a=>[e(d)?T("",!0):(g(),y($,{key:0,name:"SaveIcon",class:O(a.class)},null,8,["class"]))]),default:i(()=>[z(" "+h(t.$t("general.save")),1)]),_:1},8,["loading","disabled"])]),_:1})],40,K)}}};export{te as default}; diff --git a/public/build/assets/CustomizationSetting.31d8c655.js b/public/build/assets/CustomizationSetting.31d8c655.js deleted file mode 100644 index 8440c75bc..000000000 --- a/public/build/assets/CustomizationSetting.31d8c655.js +++ /dev/null @@ -1 +0,0 @@ -var ut=Object.defineProperty,rt=Object.defineProperties;var dt=Object.getOwnPropertyDescriptors;var et=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var st=(v,o,i)=>o in v?ut(v,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):v[o]=i,x=(v,o)=>{for(var i in o||(o={}))ct.call(o,i)&&st(v,i,o[i]);if(et)for(var i of et(o))_t.call(o,i)&&st(v,i,o[i]);return v},W=(v,o)=>rt(v,dt(o));import{b as N,d as Z,i as pt,k as gt,p as yt,c as ft,j as vt}from"./main.465728e1.js";import{J as j,B as z,k as F,C as bt,H as at,$ as St,r as d,o as $,e as D,h as c,t as b,f as t,w as r,U as Y,m as G,i as k,F as L,y as $t,l as E,u as e,j as R,ah as M,a0 as T,L as X,O as nt,aT as it,T as ot,x as H}from"./vendor.d12b5734.js";import{D as Bt,d as ht}from"./DragIcon.2da3872a.js";import{u as zt}from"./payment.93619753.js";import{_ as Vt}from"./ItemUnitModal.031bb625.js";const It={class:"text-gray-900 text-lg font-medium"},xt={class:"mt-1 text-sm text-gray-500"},wt={class:"overflow-x-auto"},Ct={class:"w-full mt-6 table-fixed"},Dt=c("colgroup",null,[c("col",{style:{width:"4%"}}),c("col",{style:{width:"45%"}}),c("col",{style:{width:"27%"}}),c("col",{style:{width:"24%"}})],-1),Ut=c("thead",null,[c("tr",null,[c("th",{class:"px-5 py-3 text-sm not-italic font-medium leading-5 text-left text-gray-700 border-t border-b border-gray-200 border-solid"}),c("th",{class:"px-5 py-3 text-sm not-italic font-medium leading-5 text-left text-gray-700 border-t border-b border-gray-200 border-solid"}," Component "),c("th",{class:"px-5 py-3 text-sm not-italic font-medium leading-5 text-left text-gray-700 border-t border-b border-gray-200 border-solid"}," Parameter "),c("th",{class:"px-5 py-3 text-sm not-italic font-medium leading-5 text-left text-gray-700 border-t border-b border-gray-200 border-solid"})])],-1),Ft={class:"relative"},kt={class:"text-gray-300 cursor-move handle align-middle"},Et={class:"px-5 py-4"},Nt={class:"block text-sm not-italic font-medium text-primary-800 whitespace-nowrap mr-2 min-w-[200px]"},Mt={class:"text-xs text-gray-500 mt-1"},Tt={class:"px-5 py-4 text-left align-middle"},Gt={class:"px-5 py-4 text-right align-middle pt-10"},qt=k(" Remove "),Lt={colspan:"2",class:"px-5 py-4"},Rt={class:"px-5 py-4 text-right align-middle",colspan:"2"},tt={props:{type:{type:String,required:!0},typeStore:{type:Object,required:!0},defaultSeries:{type:String,default:"INV"}},setup(v){const o=v,{t:i}=j(),p=N(),g=Z(),u=z([]),a=z(!1),m=z([{label:i("settings.customization.series"),description:i("settings.customization.series_description"),name:"SERIES",paramLabel:i("settings.customization.series_param_label"),value:o.defaultSeries,inputDisabled:!1,inputType:"text",allowMultiple:!1},{label:i("settings.customization.sequence"),description:i("settings.customization.sequence_description"),name:"SEQUENCE",paramLabel:i("settings.customization.sequence_param_label"),value:"6",inputDisabled:!1,inputType:"number",allowMultiple:!1},{label:i("settings.customization.delimiter"),description:i("settings.customization.delimiter_description"),name:"DELIMITER",paramLabel:i("settings.customization.delimiter_param_label"),value:"-",inputDisabled:!1,inputType:"text",allowMultiple:!0},{label:i("settings.customization.customer_series"),description:i("settings.customization.customer_series_description"),name:"CUSTOMER_SERIES",paramLabel:"",value:"",inputDisabled:!0,inputType:"text",allowMultiple:!1},{label:i("settings.customization.customer_sequence"),description:i("settings.customization.customer_sequence_description"),name:"CUSTOMER_SEQUENCE",paramLabel:i("settings.customization.customer_sequence_param_label"),value:"6",inputDisabled:!1,inputType:"number",allowMultiple:!1},{label:i("settings.customization.date_format"),description:i("settings.customization.date_format_description"),name:"DATE_FORMAT",paramLabel:i("settings.customization.date_format_param_label"),value:"Y",inputDisabled:!1,inputType:"text",allowMultiple:!0},{label:i("settings.customization.random_sequence"),description:i("settings.customization.random_sequence_description"),name:"RANDOM_SEQUENCE",paramLabel:i("settings.customization.random_sequence_param_label"),value:"6",inputDisabled:!1,inputType:"number",allowMultiple:!1}]),s=F(()=>m.value.filter(function(f){return!u.value.some(function(V){return f.allowMultiple?!1:f.name==V.name})})),_=z(""),n=z(!1),l=z(!1),y=F(()=>{let f="";return u.value.forEach(V=>{let q=`{{${V.name}`;V.value&&(q+=`:${V.value}`),f+=`${q}}}`}),f});bt(u,f=>{U()}),B();async function B(){let f={format:p.selectedCompanySettings[`${o.type}_number_format`]};l.value=!0,(await g.fetchPlaceholders(f)).data.placeholders.forEach(q=>{var O;let J=m.value.find(K=>K.name===q.name);const Q=(O=q.value)!=null?O:"";u.value.push(W(x({},J),{value:Q,id:at.raw()}))}),l.value=!1,U()}function C(f){return u.value.find(V=>V.name===f.name)}function h(f){C(f)&&!f.allowMultiple||(u.value.push(W(x({},f),{id:at.raw()})),U())}function S(f){u.value=u.value.filter(function(V){return f.id!==V.id})}function w(f,V){switch(V.name){case"SERIES":f.length>=6&&(f=f.substring(0,6));break;case"DELIMITER":f.length>=1&&(f=f.substring(0,1));break}setTimeout(()=>{V.value=f,U()},100)}const U=St(()=>{P()},500);async function P(){if(!y.value){_.value="";return}let f={key:o.type,format:y.value};n.value=!0;let V=await o.typeStore.getNextNumber(f);n.value=!1,V.data&&(_.value=V.data.nextNumber)}async function lt(){if(n.value||l.value)return;a.value=!0;let f={settings:{}};return f.settings[o.type+"_number_format"]=y.value,await p.updateCompanySettings({data:f,message:`settings.customization.${o.type}s.${o.type}_settings_updated`}),a.value=!1,!0}return(f,V)=>{const q=d("BaseInput"),J=d("BaseInputGroup"),Q=d("BaseIcon"),O=d("BaseButton"),K=d("BaseDropdownItem"),mt=d("BaseDropdown");return $(),D(L,null,[c("h6",It,b(f.$t(`settings.customization.${v.type}s.${v.type}_number_format`)),1),c("p",xt,b(f.$t(`settings.customization.${v.type}s.${v.type}_number_format_description`)),1),c("div",wt,[c("table",Ct,[Dt,Ut,t(e(ht),{modelValue:u.value,"onUpdate:modelValue":V[1]||(V[1]=I=>u.value=I),class:"divide-y divide-gray-200","item-key":"id",tag:"tbody",handle:".handle",filter:".ignore-element"},{item:r(({element:I})=>[c("tr",Ft,[c("td",kt,[t(Bt)]),c("td",Et,[c("label",Nt,b(I.label),1),c("p",Mt,b(I.description),1)]),c("td",Tt,[t(J,{label:I.paramLabel,class:"lg:col-span-3",required:""},{default:r(()=>[t(q,{modelValue:I.value,"onUpdate:modelValue":[A=>I.value=A,A=>w(A,I)],disabled:I.inputDisabled,type:I.inputType},null,8,["modelValue","onUpdate:modelValue","disabled","type"])]),_:2},1032,["label"])]),c("td",Gt,[t(O,{variant:"white",onClick:Y(A=>S(I),["prevent"])},{left:r(A=>[t(Q,{name:"XIcon",class:G(["!sm:m-0",A.class])},null,8,["class"])]),default:r(()=>[qt]),_:2},1032,["onClick"])])])]),footer:r(()=>[c("tr",null,[c("td",Lt,[t(J,{label:f.$t(`settings.customization.${v.type}s.preview_${v.type}_number`)},{default:r(()=>[t(q,{modelValue:_.value,"onUpdate:modelValue":V[0]||(V[0]=I=>_.value=I),disabled:"",loading:n.value},null,8,["modelValue","loading"])]),_:1},8,["label"])]),c("td",Rt,[t(mt,{"wrapper-class":"flex items-center justify-end mt-5"},{activator:r(()=>[t(O,{variant:"primary-outline"},{left:r(I=>[t(Q,{class:G(I.class),name:"PlusIcon"},null,8,["class"])]),default:r(()=>[k(" "+b(f.$t("settings.customization.add_new_component")),1)]),_:1})]),default:r(()=>[($(!0),D(L,null,$t(e(s),I=>($(),E(K,{key:I.label,onClick:Y(A=>h(I),["prevent"])},{default:r(()=>[k(b(I.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})])])]),_:1},8,["modelValue"])])]),t(O,{loading:a.value,disabled:a.value,variant:"primary",type:"submit",class:"mt-4",onClick:lt},{left:r(I=>[a.value?R("",!0):($(),E(Q,{key:0,class:G(I.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(f.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],64)}}},At={setup(v){const o=pt();return(i,p)=>($(),E(tt,{type:"invoice","type-store":e(o),"default-series":"INV"},null,8,["type-store"]))}},Yt={class:"text-gray-900 text-lg font-medium"},Ot={class:"mt-1 text-sm text-gray-500"},jt={setup(v){const{t:o,tm:i}=j(),p=N(),g=Z(),u=M("utils"),a=T({retrospective_edits:null});u.mergeSettings(a,x({},p.selectedCompanySettings)),F(()=>g.config.retrospective_edits.map(s=>(s.title=o(s.key),s)));async function m(){let s={settings:x({},a)};return await p.updateCompanySettings({data:s,message:"settings.customization.invoices.invoice_settings_updated"}),!0}return(s,_)=>{const n=d("BaseRadio"),l=d("BaseInputGroup");return $(),D(L,null,[c("h6",Yt,b(s.$tc("settings.customization.invoices.retrospective_edits")),1),c("p",Ot,b(s.$t("settings.customization.invoices.retrospective_edits_description")),1),t(l,{required:""},{default:r(()=>[t(n,{id:"allow",modelValue:e(a).retrospective_edits,"onUpdate:modelValue":[_[0]||(_[0]=y=>e(a).retrospective_edits=y),m],label:s.$t("settings.customization.invoices.allow"),size:"sm",name:"filter",value:"allow",class:"mt-2"},null,8,["modelValue","label"]),t(n,{id:"disable_on_invoice_partial_paid",modelValue:e(a).retrospective_edits,"onUpdate:modelValue":[_[1]||(_[1]=y=>e(a).retrospective_edits=y),m],label:s.$t("settings.customization.invoices.disable_on_invoice_partial_paid"),size:"sm",name:"filter",value:"disable_on_invoice_partial_paid",class:"mt-2"},null,8,["modelValue","label"]),t(n,{id:"disable_on_invoice_paid",modelValue:e(a).retrospective_edits,"onUpdate:modelValue":[_[2]||(_[2]=y=>e(a).retrospective_edits=y),m],label:s.$t("settings.customization.invoices.disable_on_invoice_paid"),size:"sm",name:"filter",value:"disable_on_invoice_paid",class:"my-2"},null,8,["modelValue","label"]),t(n,{id:"disable_on_invoice_sent",modelValue:e(a).retrospective_edits,"onUpdate:modelValue":[_[3]||(_[3]=y=>e(a).retrospective_edits=y),m],label:s.$t("settings.customization.invoices.disable_on_invoice_sent"),size:"sm",name:"filter",value:"disable_on_invoice_sent"},null,8,["modelValue","label"])]),_:1})],64)}}},Pt=["onSubmit"],Qt={class:"text-gray-900 text-lg font-medium"},Ht={class:"mt-1 text-sm text-gray-500 mb-2"},Jt={class:"w-full sm:w-1/2 md:w-1/4 lg:w-1/5"},Xt={setup(v){const{t:o}=j(),i=N(),p=M("utils");let g=z(!1);const u=T({invoice_set_due_date_automatically:null,invoice_due_date_days:null});p.mergeSettings(u,x({},i.selectedCompanySettings));const a=F({get:()=>u.invoice_set_due_date_automatically==="YES",set:async n=>{const l=n?"YES":"NO";u.invoice_set_due_date_automatically=l}}),m=F(()=>({dueDateSettings:{invoice_due_date_days:{required:X.withMessage(o("validation.required"),nt(a.value)),numeric:X.withMessage(o("validation.numbers_only"),it)}}})),s=ot(m,{dueDateSettings:u});async function _(){if(s.value.dueDateSettings.$touch(),s.value.dueDateSettings.$invalid)return!1;g.value=!0;let n={settings:x({},u)};return a.value||delete n.settings.invoice_due_date_days,await i.updateCompanySettings({data:n,message:"settings.customization.invoices.invoice_settings_updated"}),g.value=!1,!0}return(n,l)=>{const y=d("BaseSwitchSection"),B=d("BaseInput"),C=d("BaseInputGroup"),h=d("BaseIcon"),S=d("BaseButton");return $(),D("form",{onSubmit:Y(_,["prevent"])},[c("h6",Qt,b(n.$t("settings.customization.invoices.due_date")),1),c("p",Ht,b(n.$t("settings.customization.invoices.due_date_description")),1),t(y,{modelValue:e(a),"onUpdate:modelValue":l[0]||(l[0]=w=>H(a)?a.value=w:null),title:n.$t("settings.customization.invoices.set_due_date_automatically"),description:n.$t("settings.customization.invoices.set_due_date_automatically_description")},null,8,["modelValue","title","description"]),e(a)?($(),E(C,{key:0,label:n.$t("settings.customization.invoices.due_date_days"),error:e(s).dueDateSettings.invoice_due_date_days.$error&&e(s).dueDateSettings.invoice_due_date_days.$errors[0].$message,class:"mt-2 mb-4"},{default:r(()=>[c("div",Jt,[t(B,{modelValue:e(u).invoice_due_date_days,"onUpdate:modelValue":l[1]||(l[1]=w=>e(u).invoice_due_date_days=w),invalid:e(s).dueDateSettings.invoice_due_date_days.$error,type:"number",onInput:l[2]||(l[2]=w=>e(s).dueDateSettings.invoice_due_date_days.$touch())},null,8,["modelValue","invalid"])])]),_:1},8,["label","error"])):R("",!0),t(S,{loading:e(g),disabled:e(g),variant:"primary",type:"submit",class:"mt-4"},{left:r(w=>[e(g)?R("",!0):($(),E(h,{key:0,class:G(w.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(n.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],40,Pt)}}},Kt=["onSubmit"],Wt={class:"text-gray-900 text-lg font-medium"},Zt={class:"mt-1 text-sm text-gray-500 mb-2"},te={setup(v){const o=N(),i=M("utils"),p=z(["customer","customerCustom","invoice","invoiceCustom","company"]),g=z(["billing","customer","customerCustom","invoiceCustom"]),u=z(["shipping","customer","customerCustom","invoiceCustom"]),a=z(["company","invoiceCustom"]);let m=z(!1);const s=T({invoice_mail_body:null,invoice_company_address_format:null,invoice_shipping_address_format:null,invoice_billing_address_format:null});i.mergeSettings(s,x({},o.selectedCompanySettings));async function _(){m.value=!0;let n={settings:x({},s)};return await o.updateCompanySettings({data:n,message:"settings.customization.invoices.invoice_settings_updated"}),m.value=!1,!0}return(n,l)=>{const y=d("BaseCustomInput"),B=d("BaseInputGroup"),C=d("BaseIcon"),h=d("BaseButton");return $(),D("form",{onSubmit:Y(_,["prevent"])},[c("h6",Wt,b(n.$t("settings.customization.invoices.default_formats")),1),c("p",Zt,b(n.$t("settings.customization.invoices.default_formats_description")),1),t(B,{label:n.$t("settings.customization.invoices.default_invoice_email_body"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).invoice_mail_body,"onUpdate:modelValue":l[0]||(l[0]=S=>e(s).invoice_mail_body=S),fields:p.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.invoices.company_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).invoice_company_address_format,"onUpdate:modelValue":l[1]||(l[1]=S=>e(s).invoice_company_address_format=S),fields:a.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.invoices.shipping_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).invoice_shipping_address_format,"onUpdate:modelValue":l[2]||(l[2]=S=>e(s).invoice_shipping_address_format=S),fields:u.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.invoices.billing_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).invoice_billing_address_format,"onUpdate:modelValue":l[3]||(l[3]=S=>e(s).invoice_billing_address_format=S),fields:g.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(h,{loading:e(m),disabled:e(m),variant:"primary",type:"submit",class:"mt-4"},{left:r(S=>[e(m)?R("",!0):($(),E(C,{key:0,class:G(S.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(n.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],40,Kt)}}},ee={class:"divide-y divide-gray-200"},se={setup(v){const o=M("utils"),i=N(),p=T({invoice_email_attachment:null});o.mergeSettings(p,x({},i.selectedCompanySettings));const g=F({get:()=>p.invoice_email_attachment==="YES",set:async u=>{const a=u?"YES":"NO";let m={settings:{invoice_email_attachment:a}};p.invoice_email_attachment=a,await i.updateCompanySettings({data:m,message:"general.setting_updated"})}});return(u,a)=>{const m=d("BaseDivider"),s=d("BaseSwitchSection");return $(),D(L,null,[t(At),t(m,{class:"my-8"}),t(Xt),t(m,{class:"my-8"}),t(jt),t(m,{class:"my-8"}),t(te),t(m,{class:"mt-6 mb-2"}),c("ul",ee,[t(s,{modelValue:e(g),"onUpdate:modelValue":a[0]||(a[0]=_=>H(g)?g.value=_:null),title:u.$t("settings.customization.invoices.invoice_email_attachment"),description:u.$t("settings.customization.invoices.invoice_email_attachment_setting_description")},null,8,["modelValue","title","description"])])],64)}}},ae={setup(v){const o=gt();return(i,p)=>($(),E(tt,{type:"estimate","type-store":e(o),"default-series":"EST"},null,8,["type-store"]))}},ne=["onSubmit"],ie={class:"text-gray-900 text-lg font-medium"},oe={class:"mt-1 text-sm text-gray-500 mb-2"},le={class:"w-full sm:w-1/2 md:w-1/4 lg:w-1/5"},me={setup(v){const{t:o}=j(),i=N(),p=M("utils");let g=z(!1);const u=T({estimate_set_expiry_date_automatically:null,estimate_expiry_date_days:null});p.mergeSettings(u,x({},i.selectedCompanySettings));const a=F({get:()=>u.estimate_set_expiry_date_automatically==="YES",set:async n=>{const l=n?"YES":"NO";u.estimate_set_expiry_date_automatically=l}}),m=F(()=>({expiryDateSettings:{estimate_expiry_date_days:{required:X.withMessage(o("validation.required"),nt(a.value)),numeric:X.withMessage(o("validation.numbers_only"),it)}}})),s=ot(m,{expiryDateSettings:u});async function _(){if(s.value.expiryDateSettings.$touch(),s.value.expiryDateSettings.$invalid)return!1;g.value=!0;let n={settings:x({},u)};return a.value||delete n.settings.estimate_expiry_date_days,await i.updateCompanySettings({data:n,message:"settings.customization.estimates.estimate_settings_updated"}),g.value=!1,!0}return(n,l)=>{const y=d("BaseSwitchSection"),B=d("BaseInput"),C=d("BaseInputGroup"),h=d("BaseIcon"),S=d("BaseButton");return $(),D("form",{onSubmit:Y(_,["prevent"])},[c("h6",ie,b(n.$t("settings.customization.estimates.expiry_date")),1),c("p",oe,b(n.$t("settings.customization.estimates.expiry_date_description")),1),t(y,{modelValue:e(a),"onUpdate:modelValue":l[0]||(l[0]=w=>H(a)?a.value=w:null),title:n.$t("settings.customization.estimates.set_expiry_date_automatically"),description:n.$t("settings.customization.estimates.set_expiry_date_automatically_description")},null,8,["modelValue","title","description"]),e(a)?($(),E(C,{key:0,label:n.$t("settings.customization.estimates.expiry_date_days"),error:e(s).expiryDateSettings.estimate_expiry_date_days.$error&&e(s).expiryDateSettings.estimate_expiry_date_days.$errors[0].$message,class:"mt-2 mb-4"},{default:r(()=>[c("div",le,[t(B,{modelValue:e(u).estimate_expiry_date_days,"onUpdate:modelValue":l[1]||(l[1]=w=>e(u).estimate_expiry_date_days=w),invalid:e(s).expiryDateSettings.estimate_expiry_date_days.$error,type:"number",onInput:l[2]||(l[2]=w=>e(s).expiryDateSettings.estimate_expiry_date_days.$touch())},null,8,["modelValue","invalid"])])]),_:1},8,["label","error"])):R("",!0),t(S,{loading:e(g),disabled:e(g),variant:"primary",type:"submit",class:"mt-4"},{left:r(w=>[e(g)?R("",!0):($(),E(h,{key:0,class:G(w.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(n.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],40,ne)}}},ue=["onSubmit"],re={class:"text-gray-900 text-lg font-medium"},de={class:"mt-1 text-sm text-gray-500 mb-2"},ce={setup(v){const o=N(),i=M("utils"),p=z(["customer","customerCustom","estimate","estimateCustom","company"]),g=z(["billing","customer","customerCustom","estimateCustom"]),u=z(["shipping","customer","customerCustom","estimateCustom"]),a=z(["company","estimateCustom"]);let m=z(!1);const s=T({estimate_mail_body:null,estimate_company_address_format:null,estimate_shipping_address_format:null,estimate_billing_address_format:null});i.mergeSettings(s,x({},o.selectedCompanySettings));async function _(){m.value=!0;let n={settings:x({},s)};return await o.updateCompanySettings({data:n,message:"settings.customization.estimates.estimate_settings_updated"}),m.value=!1,!0}return(n,l)=>{const y=d("BaseCustomInput"),B=d("BaseInputGroup"),C=d("BaseIcon"),h=d("BaseButton");return $(),D("form",{onSubmit:Y(_,["prevent"])},[c("h6",re,b(n.$t("settings.customization.estimates.default_formats")),1),c("p",de,b(n.$t("settings.customization.estimates.default_formats_description")),1),t(B,{label:n.$t("settings.customization.estimates.default_estimate_email_body"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).estimate_mail_body,"onUpdate:modelValue":l[0]||(l[0]=S=>e(s).estimate_mail_body=S),fields:p.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.estimates.company_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).estimate_company_address_format,"onUpdate:modelValue":l[1]||(l[1]=S=>e(s).estimate_company_address_format=S),fields:a.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.estimates.shipping_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).estimate_shipping_address_format,"onUpdate:modelValue":l[2]||(l[2]=S=>e(s).estimate_shipping_address_format=S),fields:u.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(B,{label:n.$t("settings.customization.estimates.billing_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(y,{modelValue:e(s).estimate_billing_address_format,"onUpdate:modelValue":l[3]||(l[3]=S=>e(s).estimate_billing_address_format=S),fields:g.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(h,{loading:e(m),disabled:e(m),variant:"primary",type:"submit",class:"mt-4"},{left:r(S=>[e(m)?R("",!0):($(),E(C,{key:0,class:G(S.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(n.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],40,ue)}}},_e={class:"text-gray-900 text-lg font-medium"},pe={class:"mt-1 text-sm text-gray-500"},ge={setup(v){const{t:o,tm:i}=j(),p=N(),g=Z(),u=M("utils"),a=T({estimate_convert_action:null});u.mergeSettings(a,x({},p.selectedCompanySettings)),F(()=>g.config.estimate_convert_action.map(s=>(s.title=o(s.key),s)));async function m(){let s={settings:x({},a)};return await p.updateCompanySettings({data:s,message:"settings.customization.estimates.estimate_settings_updated"}),!0}return(s,_)=>{const n=d("BaseRadio"),l=d("BaseInputGroup");return $(),D(L,null,[c("h6",_e,b(s.$tc("settings.customization.estimates.convert_estimate_options")),1),c("p",pe,b(s.$t("settings.customization.estimates.convert_estimate_description")),1),t(l,{required:""},{default:r(()=>[t(n,{id:"no_action",modelValue:e(a).estimate_convert_action,"onUpdate:modelValue":[_[0]||(_[0]=y=>e(a).estimate_convert_action=y),m],label:s.$t("settings.customization.estimates.no_action"),size:"sm",name:"filter",value:"no_action",class:"mt-2"},null,8,["modelValue","label"]),t(n,{id:"delete_estimate",modelValue:e(a).estimate_convert_action,"onUpdate:modelValue":[_[1]||(_[1]=y=>e(a).estimate_convert_action=y),m],label:s.$t("settings.customization.estimates.delete_estimate"),size:"sm",name:"filter",value:"delete_estimate",class:"my-2"},null,8,["modelValue","label"]),t(n,{id:"mark_estimate_as_accepted",modelValue:e(a).estimate_convert_action,"onUpdate:modelValue":[_[2]||(_[2]=y=>e(a).estimate_convert_action=y),m],label:s.$t("settings.customization.estimates.mark_estimate_as_accepted"),size:"sm",name:"filter",value:"mark_estimate_as_accepted"},null,8,["modelValue","label"])]),_:1})],64)}}},ye={class:"divide-y divide-gray-200"},fe={setup(v){const o=M("utils"),i=N(),p=T({estimate_email_attachment:null});o.mergeSettings(p,x({},i.selectedCompanySettings));const g=F({get:()=>p.estimate_email_attachment==="YES",set:async u=>{const a=u?"YES":"NO";let m={settings:{estimate_email_attachment:a}};p.estimate_email_attachment=a,await i.updateCompanySettings({data:m,message:"general.setting_updated"})}});return(u,a)=>{const m=d("BaseDivider"),s=d("BaseSwitchSection");return $(),D(L,null,[t(ae),t(m,{class:"my-8"}),t(me),t(m,{class:"my-8"}),t(ge),t(m,{class:"my-8"}),t(ce),t(m,{class:"mt-6 mb-2"}),c("ul",ye,[t(s,{modelValue:e(g),"onUpdate:modelValue":a[0]||(a[0]=_=>H(g)?g.value=_:null),title:u.$t("settings.customization.estimates.estimate_email_attachment"),description:u.$t("settings.customization.estimates.estimate_email_attachment_setting_description")},null,8,["modelValue","title","description"])])],64)}}},ve={setup(v){const o=zt();return(i,p)=>($(),E(tt,{type:"payment","type-store":e(o),"default-series":"PAY"},null,8,["type-store"]))}},be=["onSubmit"],Se={class:"text-gray-900 text-lg font-medium"},$e={class:"mt-1 text-sm text-gray-500 mb-2"},Be={setup(v){const o=N(),i=M("utils"),p=z(["customer","customerCustom","company","payment","paymentCustom"]),g=z(["billing","customer","customerCustom","paymentCustom"]),u=z(["company","paymentCustom"]);let a=z(!1);const m=T({payment_mail_body:null,payment_company_address_format:null,payment_from_customer_address_format:null});i.mergeSettings(m,x({},o.selectedCompanySettings));async function s(){a.value=!0;let _={settings:x({},m)};return await o.updateCompanySettings({data:_,message:"settings.customization.payments.payment_settings_updated"}),a.value=!1,!0}return(_,n)=>{const l=d("BaseCustomInput"),y=d("BaseInputGroup"),B=d("BaseIcon"),C=d("BaseButton");return $(),D("form",{onSubmit:Y(s,["prevent"])},[c("h6",Se,b(_.$t("settings.customization.payments.default_formats")),1),c("p",$e,b(_.$t("settings.customization.payments.default_formats_description")),1),t(y,{label:_.$t("settings.customization.payments.default_payment_email_body"),class:"mt-6 mb-4"},{default:r(()=>[t(l,{modelValue:e(m).payment_mail_body,"onUpdate:modelValue":n[0]||(n[0]=h=>e(m).payment_mail_body=h),fields:p.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(y,{label:_.$t("settings.customization.payments.company_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(l,{modelValue:e(m).payment_company_address_format,"onUpdate:modelValue":n[1]||(n[1]=h=>e(m).payment_company_address_format=h),fields:u.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(y,{label:_.$t("settings.customization.payments.from_customer_address_format"),class:"mt-6 mb-4"},{default:r(()=>[t(l,{modelValue:e(m).payment_from_customer_address_format,"onUpdate:modelValue":n[2]||(n[2]=h=>e(m).payment_from_customer_address_format=h),fields:g.value},null,8,["modelValue","fields"])]),_:1},8,["label"]),t(C,{loading:e(a),disabled:e(a),variant:"primary",type:"submit",class:"mt-4"},{left:r(h=>[e(a)?R("",!0):($(),E(B,{key:0,class:G(h.class),name:"SaveIcon"},null,8,["class"]))]),default:r(()=>[k(" "+b(_.$t("settings.customization.save")),1)]),_:1},8,["loading","disabled"])],40,be)}}},he={class:"divide-y divide-gray-200"},ze={setup(v){const o=M("utils"),i=N(),p=T({payment_email_attachment:null});o.mergeSettings(p,x({},i.selectedCompanySettings));const g=F({get:()=>p.payment_email_attachment==="YES",set:async u=>{const a=u?"YES":"NO";let m={settings:{payment_email_attachment:a}};p.payment_email_attachment=a,await i.updateCompanySettings({data:m,message:"general.setting_updated"})}});return(u,a)=>{const m=d("BaseDivider"),s=d("BaseSwitchSection");return $(),D(L,null,[t(ve),t(m,{class:"my-8"}),t(Be),t(m,{class:"mt-6 mb-2"}),c("ul",he,[t(s,{modelValue:e(g),"onUpdate:modelValue":a[0]||(a[0]=_=>H(g)?g.value=_:null),title:u.$t("settings.customization.payments.payment_email_attachment"),description:u.$t("settings.customization.payments.payment_email_attachment_setting_description")},null,8,["modelValue","title","description"])])],64)}}},Ve={class:"flex flex-wrap justify-end mt-2 lg:flex-nowrap"},Ie={class:"inline-block"},xe={setup(v){const{t:o}=j(),i=z(null),p=yt(),g=ft(),u=vt(),a=F(()=>[{key:"name",label:o("settings.customization.items.unit_name"),thClass:"extra",tdClass:"font-medium text-gray-900"},{key:"actions",label:"",tdClass:"text-right text-sm font-medium",sortable:!1}]);async function m({page:l,filter:y,sort:B}){let C={orderByField:B.fieldName||"created_at",orderBy:B.order||"desc",page:l},h=await p.fetchItemUnits(C);return{data:h.data.data,pagination:{totalPages:h.data.meta.last_page,currentPage:l,totalCount:h.data.meta.total,limit:5}}}async function s(){g.openModal({title:o("settings.customization.items.add_item_unit"),componentName:"ItemUnitModal",refreshData:i.value.refresh,size:"sm"})}async function _(l){p.fetchItemUnit(l.data.id),g.openModal({title:o("settings.customization.items.edit_item_unit"),componentName:"ItemUnitModal",id:l.data.id,data:l.data,refreshData:i.value&&i.value.refresh})}function n(l){u.openDialog({title:o("general.are_you_sure"),message:o("settings.customization.items.item_unit_confirm_delete"),yesLabel:o("general.yes"),noLabel:o("general.no"),variant:"danger",hideNoButton:!1,size:"lg"}).then(async y=>{y&&(await p.deleteItemUnit(l.data.id),i.value&&i.value.refresh())})}return(l,y)=>{const B=d("BaseIcon"),C=d("BaseButton"),h=d("BaseDropdownItem"),S=d("BaseDropdown"),w=d("BaseTable");return $(),D(L,null,[t(Vt),c("div",Ve,[t(C,{variant:"primary-outline",onClick:s},{left:r(U=>[t(B,{class:G(U.class),name:"PlusIcon"},null,8,["class"])]),default:r(()=>[k(" "+b(l.$t("settings.customization.items.add_item_unit")),1)]),_:1})]),t(w,{ref:(U,P)=>{P.table=U,i.value=U},class:"mt-10",data:m,columns:e(a)},{"cell-actions":r(({row:U})=>[t(S,null,{activator:r(()=>[c("div",Ie,[t(B,{name:"DotsHorizontalIcon",class:"text-gray-500"})])]),default:r(()=>[t(h,{onClick:P=>_(U)},{default:r(()=>[t(B,{name:"PencilIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),k(" "+b(l.$t("general.edit")),1)]),_:2},1032,["onClick"]),t(h,{onClick:P=>n(U)},{default:r(()=>[t(B,{name:"TrashIcon",class:"w-5 h-5 mr-3 text-gray-400 group-hover:text-gray-500"}),k(" "+b(l.$t("general.delete")),1)]),_:2},1032,["onClick"])]),_:2},1024)]),_:1},8,["columns"])],64)}}},we={class:"relative"},Ne={setup(v){return(o,i)=>{const p=d("BaseTab"),g=d("BaseTabGroup"),u=d("BaseCard");return $(),D("div",we,[t(u,{"container-class":"px-4 py-5 sm:px-8 sm:py-2"},{default:r(()=>[t(g,null,{default:r(()=>[t(p,{"tab-panel-container":"py-4 mt-px",title:o.$t("settings.customization.invoices.title")},{default:r(()=>[t(se)]),_:1},8,["title"]),t(p,{"tab-panel-container":"py-4 mt-px",title:o.$t("settings.customization.estimates.title")},{default:r(()=>[t(fe)]),_:1},8,["title"]),t(p,{"tab-panel-container":"py-4 mt-px",title:o.$t("settings.customization.payments.title")},{default:r(()=>[t(ze)]),_:1},8,["title"]),t(p,{"tab-panel-container":"py-4 mt-px",title:o.$t("settings.customization.items.title")},{default:r(()=>[t(xe)]),_:1},8,["title"])]),_:1})]),_:1})])}}};export{Ne as default}; diff --git a/public/build/assets/Dashboard.db3b8908.js b/public/build/assets/Dashboard.db3b8908.js deleted file mode 100644 index a3e93c279..000000000 --- a/public/build/assets/Dashboard.db3b8908.js +++ /dev/null @@ -1 +0,0 @@ -import{D as I,_ as L,a as M}from"./EstimateIcon.7f89fb19.js";import{o as m,e as v,m as $,h as c,a as V,r as i,l as h,w as s,f as t,g as F,t as u,aj as T,ah as w,u as n,i as _,J as z,G as A,k as D}from"./vendor.d12b5734.js";import{u as C}from"./global.dc565c4e.js";import{h as Z}from"./auth.c88ceb4c.js";import{_ as k}from"./main.465728e1.js";import S from"./BaseTable.ec8995dc.js";const q=c("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),N=c("path",{d:"M17.8 17.8C17.1635 17.8 16.5531 18.0529 16.103 18.503C15.6529 18.9531 15.4 19.5635 15.4 20.2V21.4H34.6V20.2C34.6 19.5635 34.3472 18.9531 33.8971 18.503C33.447 18.0529 32.8365 17.8 32.2 17.8H17.8Z",fill:"currentColor"},null,-1),G=c("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M34.6 23.8H15.4V29.8C15.4 30.4366 15.6529 31.047 16.103 31.4971C16.5531 31.9472 17.1635 32.2 17.8 32.2H32.2C32.8365 32.2 33.447 31.9472 33.8971 31.4971C34.3472 31.047 34.6 30.4366 34.6 29.8V23.8ZM17.8 28.6C17.8 28.2818 17.9265 27.9766 18.1515 27.7515C18.3765 27.5265 18.6818 27.4 19 27.4H20.2C20.5183 27.4 20.8235 27.5265 21.0486 27.7515C21.2736 27.9766 21.4 28.2818 21.4 28.6C21.4 28.9183 21.2736 29.2235 21.0486 29.4486C20.8235 29.6736 20.5183 29.8 20.2 29.8H19C18.6818 29.8 18.3765 29.6736 18.1515 29.4486C17.9265 29.2235 17.8 28.9183 17.8 28.6ZM23.8 27.4C23.4818 27.4 23.1765 27.5265 22.9515 27.7515C22.7265 27.9766 22.6 28.2818 22.6 28.6C22.6 28.9183 22.7265 29.2235 22.9515 29.4486C23.1765 29.6736 23.4818 29.8 23.8 29.8H25C25.3183 29.8 25.6235 29.6736 25.8486 29.4486C26.0736 29.2235 26.2 28.9183 26.2 28.6C26.2 28.2818 26.0736 27.9766 25.8486 27.7515C25.6235 27.5265 25.3183 27.4 25 27.4H23.8Z",fill:"currentColor"},null,-1),O=[q,N,G],J={props:{colorClass:{type:String,default:"text-primary-500"}},setup(r){return(a,o)=>(m(),v("svg",{width:"50",height:"50",viewBox:"0 0 50 50",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:$(r.colorClass)},O,2))}},{defineStore:R}=window.pinia,P=R({id:"dashboard",state:()=>({recentInvoices:[],recentEstimates:[],invoiceCount:0,estimateCount:0,paymentCount:0,totalDueAmount:[],isDashboardDataLoaded:!1}),actions:{loadData(r){const a=C();return new Promise((o,d)=>{V.get(`/api/v1/${a.companySlug}/customer/dashboard`,{data:r}).then(e=>{this.totalDueAmount=e.data.due_amount,this.estimateCount=e.data.estimate_count,this.invoiceCount=e.data.invoice_count,this.paymentCount=e.data.payment_count,this.recentInvoices=e.data.recentInvoices,this.recentEstimates=e.data.recentEstimates,a.getDashboardDataLoaded=!0,o(e)}).catch(e=>{Z(e),d(e)})})}}}),K={},Q={class:"flex items-center"};function U(r,a){const o=i("BaseContentPlaceholdersText"),d=i("BaseContentPlaceholdersBox"),e=i("BaseContentPlaceholders");return m(),h(e,{rounded:!0,class:"relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4"},{default:s(()=>[c("div",null,[t(o,{class:"h-5 -mb-1 w-14 xl:mb-6 xl:h-7",lines:1}),t(o,{class:"h-3 w-28 xl:h-4",lines:1})]),c("div",Q,[t(d,{circle:!0,class:"w-10 h-10 xl:w-12 xl:h-12"})])]),_:1})}var W=k(K,[["render",U]]);const X={},Y={class:"flex items-center"};function ee(r,a){const o=i("BaseContentPlaceholdersText"),d=i("BaseContentPlaceholdersBox"),e=i("BaseContentPlaceholders");return m(),h(e,{rounded:!0,class:"relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-2 xl:p-4"},{default:s(()=>[c("div",null,[t(o,{class:"w-12 h-5 -mb-1 xl:mb-6 xl:h-7",lines:1}),t(o,{class:"w-20 h-3 xl:h-4",lines:1})]),c("div",Y,[t(d,{circle:!0,class:"w-10 h-10 xl:w-12 xl:h-12"})])]),_:1})}var te=k(X,[["render",ee]]);const ae={class:"text-xl font-semibold leading-tight text-black xl:text-3xl"},se={class:"block mt-1 text-sm leading-tight text-gray-500 xl:text-lg"},oe={class:"flex items-center"},f={props:{iconComponent:{type:Object,required:!0},loading:{type:Boolean,default:!1},route:{type:Object,required:!0},label:{type:String,required:!0},large:{type:Boolean,default:!1}},setup(r){return(a,o)=>{const d=i("router-link");return r.loading?r.large?(m(),h(W,{key:1})):(m(),h(te,{key:2})):(m(),h(d,{key:0,class:$(["relative flex justify-between p-3 bg-white rounded shadow hover:bg-gray-50 xl:p-4 lg:col-span-2",{"lg:!col-span-3":r.large}]),to:r.route},{default:s(()=>[c("div",null,[c("span",ae,[F(a.$slots,"default")]),c("span",se,u(r.label),1)]),c("div",oe,[(m(),h(T(r.iconComponent),{class:"w-10 h-10 xl:w-12 xl:h-12"}))])]),_:3},8,["class","to"]))}}},ne={class:"grid gap-6 sm:grid-cols-2 lg:grid-cols-9 xl:gap-8"},le={setup(r){w("utils");const a=C(),o=P();return o.loadData(),(d,e)=>{const g=i("BaseFormatMoney");return m(),v("div",ne,[t(f,{"icon-component":I,loading:!n(a).getDashboardDataLoaded,route:{name:"invoices.dashboard"},large:!0,label:d.$t("dashboard.cards.due_amount")},{default:s(()=>[t(g,{amount:n(o).totalDueAmount,currency:n(a).currency},null,8,["amount","currency"])]),_:1},8,["loading","route","label"]),t(f,{"icon-component":L,loading:!n(a).getDashboardDataLoaded,route:{name:"invoices.dashboard"},label:d.$t("dashboard.cards.invoices")},{default:s(()=>[_(u(n(o).invoiceCount),1)]),_:1},8,["loading","route","label"]),t(f,{"icon-component":M,loading:!n(a).getDashboardDataLoaded,route:{name:"estimates.dashboard"},label:d.$t("dashboard.cards.estimates")},{default:s(()=>[_(u(n(o).estimateCount),1)]),_:1},8,["loading","route","label"]),t(f,{"icon-component":J,loading:!n(a).getDashboardDataLoaded,route:{name:"payments.dashboard"},label:d.$t("dashboard.cards.payments")},{default:s(()=>[_(u(n(o).paymentCount),1)]),_:1},8,["loading","route","label"])])}}},ce={class:"grid grid-cols-1 gap-6 mt-10 xl:grid-cols-2"},re={class:"due-invoices"},de={class:"relative z-10 flex items-center justify-between mb-3"},ie={class:"mb-0 text-xl font-semibold leading-normal"},ue={class:"recent-estimates"},me={class:"relative z-10 flex items-center justify-between mb-3"},_e={class:"mb-0 text-xl font-semibold leading-normal"},he={setup(r){const a=C(),o=P(),{tm:d,t:e}=z();w("utils"),A();const g=D(()=>[{key:"formattedDueDate",label:e("dashboard.recent_invoices_card.due_on")},{key:"invoice_number",label:e("invoices.number")},{key:"paid_status",label:e("invoices.status")},{key:"due_amount",label:e("dashboard.recent_invoices_card.amount_due")}]),j=D(()=>[{key:"formattedEstimateDate",label:e("dashboard.recent_estimate_card.date")},{key:"estimate_number",label:e("estimates.number")},{key:"status",label:e("estimates.status")},{key:"total",label:e("dashboard.recent_estimate_card.amount_due")}]);return(b,p)=>{const x=i("BaseButton"),y=i("router-link"),E=i("BasePaidStatusBadge"),B=i("BaseFormatMoney"),H=i("BaseEstimateStatusBadge");return m(),v("div",ce,[c("div",re,[c("div",de,[c("h6",ie,u(b.$t("dashboard.recent_invoices_card.title")),1),t(x,{size:"sm",variant:"primary-outline",onClick:p[0]||(p[0]=l=>b.$router.push({name:"invoices.dashboard"}))},{default:s(()=>[_(u(b.$t("dashboard.recent_invoices_card.view_all")),1)]),_:1})]),t(S,{data:n(o).recentInvoices,columns:n(g),loading:!n(a).getDashboardDataLoaded},{"cell-invoice_number":s(({row:l})=>[t(y,{to:{path:`/${n(a).companySlug}/customer/invoices/${l.data.id}/view`},class:"font-medium text-primary-500"},{default:s(()=>[_(u(l.data.invoice_number),1)]),_:2},1032,["to"])]),"cell-paid_status":s(({row:l})=>[t(E,{status:l.data.paid_status},{default:s(()=>[_(u(l.data.paid_status),1)]),_:2},1032,["status"])]),"cell-due_amount":s(({row:l})=>[t(B,{amount:l.data.due_amount,currency:n(a).currency},null,8,["amount","currency"])]),_:1},8,["data","columns","loading"])]),c("div",ue,[c("div",me,[c("h6",_e,u(b.$t("dashboard.recent_estimate_card.title")),1),t(x,{variant:"primary-outline",size:"sm",onClick:p[1]||(p[1]=l=>b.$router.push({name:"estimates.dashboard"}))},{default:s(()=>[_(u(b.$t("dashboard.recent_estimate_card.view_all")),1)]),_:1})]),t(S,{data:n(o).recentEstimates,columns:n(j),loading:!n(a).getDashboardDataLoaded},{"cell-estimate_number":s(({row:l})=>[t(y,{to:{path:`/${n(a).companySlug}/customer/estimates/${l.data.id}/view`},class:"font-medium text-primary-500"},{default:s(()=>[_(u(l.data.estimate_number),1)]),_:2},1032,["to"])]),"cell-status":s(({row:l})=>[t(H,{status:l.data.status,class:"px-3 py-1"},{default:s(()=>[_(u(l.data.status),1)]),_:2},1032,["status"])]),"cell-total":s(({row:l})=>[t(B,{amount:l.data.total,currency:n(a).currency},null,8,["amount","currency"])]),_:1},8,["data","columns","loading"])])])}}},xe={setup(r){return(a,o)=>{const d=i("BasePage");return m(),h(d,null,{default:s(()=>[t(le),t(he)]),_:1})}}};export{xe as default}; diff --git a/public/build/assets/Dashboard.f55bd37e.js b/public/build/assets/Dashboard.f55bd37e.js deleted file mode 100644 index 89c3dfba7..000000000 --- a/public/build/assets/Dashboard.f55bd37e.js +++ /dev/null @@ -1 +0,0 @@ -import{D as L,_ as F,a as R}from"./EstimateIcon.7f89fb19.js";import{o as c,e as C,m as j,h as t,r,l as p,w as i,f as a,g as W,t as _,aj as z,a as q,d as H,ah as V,u as e,j as v,i as y,B as D,C as U,J as Z,k as M,V as N,G,aN as J,D as Y}from"./vendor.d12b5734.js";import{_ as T,h as K,b as O,e as E,g as h}from"./main.465728e1.js";import{_ as Q}from"./LineChart.8ef63104.js";import{_ as X}from"./InvoiceIndexDropdown.c4bcaa08.js";import{_ as tt}from"./EstimateIndexDropdown.8917d9cc.js";const et=t("circle",{cx:"25",cy:"25",r:"25",fill:"#EAF1FB"},null,-1),at=t("path",{d:"M28.2656 23.0547C27.3021 24.0182 26.1302 24.5 24.75 24.5C23.3698 24.5 22.1849 24.0182 21.1953 23.0547C20.2318 22.0651 19.75 20.8802 19.75 19.5C19.75 18.1198 20.2318 16.9479 21.1953 15.9844C22.1849 14.9948 23.3698 14.5 24.75 14.5C26.1302 14.5 27.3021 14.9948 28.2656 15.9844C29.2552 16.9479 29.75 18.1198 29.75 19.5C29.75 20.8802 29.2552 22.0651 28.2656 23.0547ZM28.2656 25.75C29.6979 25.75 30.9219 26.2708 31.9375 27.3125C32.9792 28.3281 33.5 29.5521 33.5 30.9844V32.625C33.5 33.1458 33.3177 33.5885 32.9531 33.9531C32.5885 34.3177 32.1458 34.5 31.625 34.5H17.875C17.3542 34.5 16.9115 34.3177 16.5469 33.9531C16.1823 33.5885 16 33.1458 16 32.625V30.9844C16 29.5521 16.5078 28.3281 17.5234 27.3125C18.5651 26.2708 19.8021 25.75 21.2344 25.75H21.8984C22.8099 26.1667 23.7604 26.375 24.75 26.375C25.7396 26.375 26.6901 26.1667 27.6016 25.75H28.2656Z",fill:"currentColor"},null,-1),st=[et,at],ot={props:{colorClass:{type:String,default:"text-primary-500"}},setup(d){return(o,s)=>(c(),C("svg",{width:"50",height:"50",viewBox:"0 0 50 50",class:j(d.colorClass),fill:"none",xmlns:"http://www.w3.org/2000/svg"},st,2))}},lt={},nt={class:"flex items-center"};function ct(d,o){const s=r("BaseContentPlaceholdersText"),n=r("BaseContentPlaceholdersBox"),u=r("BaseContentPlaceholders");return c(),p(u,{rounded:!0,class:"relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-3 xl:p-4"},{default:i(()=>[t("div",null,[a(s,{class:"h-5 -mb-1 w-14 xl:mb-6 xl:h-7",lines:1}),a(s,{class:"h-3 w-28 xl:h-4",lines:1})]),t("div",nt,[a(n,{circle:!0,class:"w-10 h-10 xl:w-12 xl:h-12"})])]),_:1})}var rt=T(lt,[["render",ct]]);const it={},dt={class:"flex items-center"};function ut(d,o){const s=r("BaseContentPlaceholdersText"),n=r("BaseContentPlaceholdersBox"),u=r("BaseContentPlaceholders");return c(),p(u,{rounded:!0,class:"relative flex justify-between w-full p-3 bg-white rounded shadow lg:col-span-2 xl:p-4"},{default:i(()=>[t("div",null,[a(s,{class:"w-12 h-5 -mb-1 xl:mb-6 xl:h-7",lines:1}),a(s,{class:"w-20 h-3 xl:h-4",lines:1})]),t("div",dt,[a(n,{circle:!0,class:"w-10 h-10 xl:w-12 xl:h-12"})])]),_:1})}var mt=T(it,[["render",ut]]);const _t={class:"text-xl font-semibold leading-tight text-black xl:text-3xl"},ht={class:"block mt-1 text-sm leading-tight text-gray-500 xl:text-lg"},pt={class:"flex items-center"},B={props:{iconComponent:{type:Object,required:!0},loading:{type:Boolean,default:!1},route:{type:String,required:!0},label:{type:String,required:!0},large:{type:Boolean,default:!1}},setup(d){return(o,s)=>{const n=r("router-link");return d.loading?d.large?(c(),p(rt,{key:1})):(c(),p(mt,{key:2})):(c(),p(n,{key:0,class:j(["relative flex justify-between p-3 bg-white rounded shadow hover:bg-gray-50 xl:p-4 lg:col-span-2",{"lg:!col-span-3":d.large}]),to:d.route},{default:i(()=>[t("div",null,[t("span",_t,[W(o.$slots,"default")]),t("span",ht,_(d.label),1)]),t("div",pt,[(c(),p(z(d.iconComponent),{class:"w-10 h-10 xl:w-12 xl:h-12"}))])]),_:3},8,["class","to"]))}}},S=(d=!1)=>(d?window.pinia.defineStore:H)({id:"dashboard",state:()=>({stats:{totalAmountDue:0,totalCustomerCount:0,totalInvoiceCount:0,totalEstimateCount:0},chartData:{months:[],invoiceTotals:[],expenseTotals:[],receiptTotals:[],netIncomeTotals:[]},totalSales:null,totalReceipts:null,totalExpenses:null,totalNetIncome:null,recentDueInvoices:[],recentEstimates:[],isDashboardDataLoaded:!1}),actions:{loadData(s){return new Promise((n,u)=>{q.get("/api/v1/dashboard",{params:s}).then(l=>{this.stats.totalAmountDue=l.data.total_amount_due,this.stats.totalCustomerCount=l.data.total_customer_count,this.stats.totalInvoiceCount=l.data.total_invoice_count,this.stats.totalEstimateCount=l.data.total_estimate_count,this.chartData&&l.data.chart_data&&(this.chartData.months=l.data.chart_data.months,this.chartData.invoiceTotals=l.data.chart_data.invoice_totals,this.chartData.expenseTotals=l.data.chart_data.expense_totals,this.chartData.receiptTotals=l.data.chart_data.receipt_totals,this.chartData.netIncomeTotals=l.data.chart_data.net_income_totals),this.totalSales=l.data.total_sales,this.totalReceipts=l.data.total_receipts,this.totalExpenses=l.data.total_expenses,this.totalNetIncome=l.data.total_net_income,this.recentDueInvoices=l.data.recent_due_invoices,this.recentEstimates=l.data.recent_estimates,this.isDashboardDataLoaded=!0,n(l)}).catch(l=>{K(l),u(l)})})}}})(),bt={class:"grid gap-6 sm:grid-cols-2 lg:grid-cols-9 xl:gap-8"},xt={setup(d){V("utils");const o=S(),s=O(),n=E();return(u,l)=>{const f=r("BaseFormatMoney");return c(),C("div",bt,[e(n).hasAbilities(e(h).VIEW_INVOICE)?(c(),p(B,{key:0,"icon-component":L,loading:!e(o).isDashboardDataLoaded,route:"/admin/invoices",large:!0,label:u.$t("dashboard.cards.due_amount")},{default:i(()=>[a(f,{amount:e(o).stats.totalAmountDue,currency:e(s).selectedCompanyCurrency},null,8,["amount","currency"])]),_:1},8,["loading","label"])):v("",!0),e(n).hasAbilities(e(h).VIEW_CUSTOMER)?(c(),p(B,{key:1,"icon-component":ot,loading:!e(o).isDashboardDataLoaded,route:"/admin/customers",label:u.$t("dashboard.cards.customers")},{default:i(()=>[y(_(e(o).stats.totalCustomerCount),1)]),_:1},8,["loading","label"])):v("",!0),e(n).hasAbilities(e(h).VIEW_INVOICE)?(c(),p(B,{key:2,"icon-component":F,loading:!e(o).isDashboardDataLoaded,route:"/admin/invoices",label:u.$t("dashboard.cards.invoices")},{default:i(()=>[y(_(e(o).stats.totalInvoiceCount),1)]),_:1},8,["loading","label"])):v("",!0),e(n).hasAbilities(e(h).VIEW_ESTIMATE)?(c(),p(B,{key:3,"icon-component":R,loading:!e(o).isDashboardDataLoaded,route:"/admin/estimates",label:u.$t("dashboard.cards.estimates")},{default:i(()=>[y(_(e(o).stats.totalEstimateCount),1)]),_:1},8,["loading","label"])):v("",!0)])}}},ft={},gt={class:"grid grid-cols-1 col-span-10 px-4 py-5 lg:col-span-7 xl:col-span-8 sm:p-8"},yt={class:"flex items-center justify-between mb-2 xl:mb-4"},Ct={class:"grid grid-cols-3 col-span-10 text-center border-t border-l border-gray-200 border-solid lg:border-t-0 lg:text-right lg:col-span-3 xl:col-span-2 lg:grid-cols-1"},vt={class:"flex flex-col items-center justify-center p-6 lg:justify-end lg:items-end"},wt={class:"flex flex-col items-center justify-center p-6 lg:justify-end lg:items-end"},$t={class:"flex flex-col items-center justify-center p-6 lg:justify-end lg:items-end"},Dt={class:"flex flex-col items-center justify-center col-span-3 p-6 border-t border-gray-200 border-solid lg:justify-end lg:items-end lg:col-span-1"};function Et(d,o){const s=r("BaseContentPlaceholdersText"),n=r("BaseContentPlaceholdersBox"),u=r("BaseContentPlaceholders");return c(),p(u,{class:"grid grid-cols-10 mt-8 bg-white rounded shadow"},{default:i(()=>[t("div",gt,[t("div",yt,[a(s,{class:"h-10 w-36",lines:1}),a(s,{class:"h-10 w-36 !mt-0",lines:1})]),a(n,{class:"h-80 xl:h-72 sm:w-full"})]),t("div",Ct,[t("div",vt,[a(s,{class:"h-3 w-14 xl:h-4",lines:1}),a(s,{class:"w-20 h-5 xl:h-6",lines:1})]),t("div",wt,[a(s,{class:"h-3 w-14 xl:h-4",lines:1}),a(s,{class:"w-20 h-5 xl:h-6",lines:1})]),t("div",$t,[a(s,{class:"h-3 w-14 xl:h-4",lines:1}),a(s,{class:"w-20 h-5 xl:h-6",lines:1})]),t("div",Dt,[a(s,{class:"h-3 w-14 xl:h-4",lines:1}),a(s,{class:"w-20 h-5 xl:h-6",lines:1})])])]),_:1})}var Bt=T(ft,[["render",Et]]);const It={key:0,class:"grid grid-cols-10 mt-8 bg-white rounded shadow"},Tt={class:"grid grid-cols-1 col-span-10 px-4 py-5 lg:col-span-7 xl:col-span-8 sm:p-6"},St={class:"flex justify-between mt-1 mb-4 flex-col md:flex-row"},kt={class:"flex items-center sw-section-title h-10"},At={class:"w-full my-2 md:m-0 md:w-40 h-10"},Pt={class:"grid grid-cols-3 col-span-10 text-center border-t border-l border-gray-200 border-solid lg:border-t-0 lg:text-right lg:col-span-3 xl:col-span-2 lg:grid-cols-1"},jt={class:"p-6"},Vt={class:"text-xs leading-5 lg:text-sm"},Mt=t("br",null,null,-1),Nt={class:"block mt-1 text-xl font-semibold leading-8 lg:text-2xl"},Ot={class:"p-6"},Lt={class:"text-xs leading-5 lg:text-sm"},Ft=t("br",null,null,-1),Rt={class:"block mt-1 text-xl font-semibold leading-8 lg:text-2xl text-green-400"},Wt={class:"p-6"},zt={class:"text-xs leading-5 lg:text-sm"},qt=t("br",null,null,-1),Ht={class:"block mt-1 text-xl font-semibold leading-8 lg:text-2xl text-red-400"},Ut={class:"col-span-3 p-6 border-t border-gray-200 border-solid lg:col-span-1"},Zt={class:"text-xs leading-5 lg:text-sm"},Gt=t("br",null,null,-1),Jt={class:"block mt-1 text-xl font-semibold leading-8 lg:text-2xl text-primary-500"},Yt={setup(d){const o=S(),s=O();V("utils");const n=E(),u=D(["This year","Previous year"]),l=D("This year");U(l,b=>{b==="Previous year"?f({previous_year:!0}):f()},{immediate:!0});async function f(b){n.hasAbilities(h.DASHBOARD)&&await o.loadData(b)}return(b,w)=>{const I=r("BaseIcon"),g=r("BaseMultiselect"),x=r("BaseFormatMoney");return c(),C("div",null,[e(o).isDashboardDataLoaded?(c(),C("div",It,[t("div",Tt,[t("div",St,[t("h6",kt,[a(I,{name:"ChartSquareBarIcon",class:"text-primary-400 mr-1"}),y(" "+_(b.$t("dashboard.monthly_chart.title")),1)]),t("div",At,[a(g,{modelValue:l.value,"onUpdate:modelValue":w[0]||(w[0]=$=>l.value=$),options:u.value,"allow-empty":!1,"show-labels":!1,placeholder:b.$t("dashboard.select_year"),"can-deselect":!1},null,8,["modelValue","options","placeholder"])])]),a(Q,{invoices:e(o).chartData.invoiceTotals,expenses:e(o).chartData.expenseTotals,receipts:e(o).chartData.receiptTotals,income:e(o).chartData.netIncomeTotals,labels:e(o).chartData.months,class:"sm:w-full"},null,8,["invoices","expenses","receipts","income","labels"])]),t("div",Pt,[t("div",jt,[t("span",Vt,_(b.$t("dashboard.chart_info.total_sales")),1),Mt,t("span",Nt,[a(x,{amount:e(o).totalSales,currency:e(s).selectedCompanyCurrency},null,8,["amount","currency"])])]),t("div",Ot,[t("span",Lt,_(b.$t("dashboard.chart_info.total_receipts")),1),Ft,t("span",Rt,[a(x,{amount:e(o).totalReceipts,currency:e(s).selectedCompanyCurrency},null,8,["amount","currency"])])]),t("div",Wt,[t("span",zt,_(b.$t("dashboard.chart_info.total_expense")),1),qt,t("span",Ht,[a(x,{amount:e(o).totalExpenses,currency:e(s).selectedCompanyCurrency},null,8,["amount","currency"])])]),t("div",Ut,[t("span",Zt,_(b.$t("dashboard.chart_info.net_income")),1),Gt,t("span",Jt,[a(x,{amount:e(o).totalNetIncome,currency:e(s).selectedCompanyCurrency},null,8,["amount","currency"])])])])])):(c(),p(Bt,{key:1}))])}}},Kt={class:"grid grid-cols-1 gap-6 mt-10 xl:grid-cols-2"},Qt={key:0,class:"due-invoices"},Xt={class:"relative z-10 flex items-center justify-between mb-3"},te={class:"mb-0 text-xl font-semibold leading-normal"},ee={key:1,class:"recent-estimates"},ae={class:"relative z-10 flex items-center justify-between mb-3"},se={class:"mb-0 text-xl font-semibold leading-normal"},oe={setup(d){const o=S(),{t:s}=Z(),n=E(),u=D(null),l=D(null),f=M(()=>[{key:"formattedDueDate",label:s("dashboard.recent_invoices_card.due_on")},{key:"user",label:s("dashboard.recent_invoices_card.customer")},{key:"due_amount",label:s("dashboard.recent_invoices_card.amount_due")},{key:"actions",tdClass:"text-right text-sm font-medium pl-0",thClass:"text-right pl-0",sortable:!1}]),b=M(()=>[{key:"formattedEstimateDate",label:s("dashboard.recent_estimate_card.date")},{key:"user",label:s("dashboard.recent_estimate_card.customer")},{key:"total",label:s("dashboard.recent_estimate_card.amount_due")},{key:"actions",tdClass:"text-right text-sm font-medium pl-0",thClass:"text-right pl-0",sortable:!1}]);function w(){return n.hasAbilities([h.DELETE_INVOICE,h.EDIT_INVOICE,h.VIEW_INVOICE,h.SEND_INVOICE])}function I(){return n.hasAbilities([h.CREATE_ESTIMATE,h.EDIT_ESTIMATE,h.VIEW_ESTIMATE,h.SEND_ESTIMATE])}return(g,x)=>{const $=r("BaseButton"),k=r("router-link"),A=r("BaseFormatMoney"),P=r("BaseTable");return c(),C("div",null,[t("div",Kt,[e(n).hasAbilities(e(h).VIEW_INVOICE)?(c(),C("div",Qt,[t("div",Xt,[t("h6",te,_(g.$t("dashboard.recent_invoices_card.title")),1),a($,{size:"sm",variant:"primary-outline",onClick:x[0]||(x[0]=m=>g.$router.push("/admin/invoices"))},{default:i(()=>[y(_(g.$t("dashboard.recent_invoices_card.view_all")),1)]),_:1})]),a(P,{data:e(o).recentDueInvoices,columns:e(f),loading:!e(o).isDashboardDataLoaded},N({"cell-user":i(({row:m})=>[a(k,{to:{path:`invoices/${m.data.id}/view`},class:"font-medium text-primary-500"},{default:i(()=>[y(_(m.data.customer.name),1)]),_:2},1032,["to"])]),"cell-due_amount":i(({row:m})=>[a(A,{amount:m.data.due_amount,currency:m.data.customer.currency},null,8,["amount","currency"])]),_:2},[w()?{name:"cell-actions",fn:i(({row:m})=>[a(X,{row:m.data,table:u.value},null,8,["row","table"])])}:void 0]),1032,["data","columns","loading"])])):v("",!0),e(n).hasAbilities(e(h).VIEW_ESTIMATE)?(c(),C("div",ee,[t("div",ae,[t("h6",se,_(g.$t("dashboard.recent_estimate_card.title")),1),a($,{variant:"primary-outline",size:"sm",onClick:x[1]||(x[1]=m=>g.$router.push("/admin/estimates"))},{default:i(()=>[y(_(g.$t("dashboard.recent_estimate_card.view_all")),1)]),_:1})]),a(P,{data:e(o).recentEstimates,columns:e(b),loading:!e(o).isDashboardDataLoaded},N({"cell-user":i(({row:m})=>[a(k,{to:{path:`estimates/${m.data.id}/view`},class:"font-medium text-primary-500"},{default:i(()=>[y(_(m.data.customer.name),1)]),_:2},1032,["to"])]),"cell-total":i(({row:m})=>[a(A,{amount:m.data.total,currency:m.data.customer.currency},null,8,["amount","currency"])]),_:2},[I()?{name:"cell-actions",fn:i(({row:m})=>[a(tt,{row:m,table:l.value},null,8,["row","table"])])}:void 0]),1032,["data","columns","loading"])])):v("",!0)])])}}},ue={setup(d){const o=G(),s=E(),n=J();return Y(()=>{o.meta.ability&&!s.hasAbilities(o.meta.ability)?n.push({name:"account.settings"}):o.meta.isOwner&&!s.currentUser.is_owner&&n.push({name:"account.settings"})}),(u,l)=>{const f=r("BasePage");return c(),p(f,null,{default:i(()=>[a(xt),a(Yt),a(oe)]),_:1})}}};export{ue as default}; diff --git a/public/build/assets/DateTimeType.6886ff98.js b/public/build/assets/DateTimeType.6886ff98.js deleted file mode 100644 index 385b5d897..000000000 --- a/public/build/assets/DateTimeType.6886ff98.js +++ /dev/null @@ -1 +0,0 @@ -import{I as r,k as d,r as m,o as p,l as c,u as i,x as f}from"./vendor.d12b5734.js";const k={props:{modelValue:{type:String,default:r().format("YYYY-MM-DD hh:MM")}},emits:["update:modelValue"],setup(t,{emit:l}){const s=t,e=d({get:()=>s.modelValue,set:o=>{l("update:modelValue",o)}});return(o,a)=>{const u=m("BaseDatePicker");return p(),c(u,{modelValue:i(e),"onUpdate:modelValue":a[0]||(a[0]=n=>f(e)?e.value=n:null),"enable-time":""},null,8,["modelValue"])}}};export{k as default}; diff --git a/public/build/assets/DateType.12fc8765.js b/public/build/assets/DateType.12fc8765.js deleted file mode 100644 index ca381239d..000000000 --- a/public/build/assets/DateType.12fc8765.js +++ /dev/null @@ -1 +0,0 @@ -import{I as r,k as d,r as m,o as p,l as c,u as f,x as i}from"./vendor.d12b5734.js";const k={props:{modelValue:{type:[String,Date],default:r().format("YYYY-MM-DD")}},emits:["update:modelValue"],setup(t,{emit:l}){const s=t,e=d({get:()=>s.modelValue,set:o=>{l("update:modelValue",o)}});return(o,a)=>{const u=m("BaseDatePicker");return p(),c(u,{modelValue:f(e),"onUpdate:modelValue":a[0]||(a[0]=n=>i(e)?e.value=n:null)},null,8,["modelValue"])}}};export{k as default}; diff --git a/public/build/assets/DragIcon.2da3872a.js b/public/build/assets/DragIcon.2da3872a.js deleted file mode 100644 index 1b70f7a9a..000000000 --- a/public/build/assets/DragIcon.2da3872a.js +++ /dev/null @@ -1,10 +0,0 @@ -import{aU as $r,aV as Br,aQ as Kr,aW as Hr,o as Wr,e as Xr,h as Yr}from"./vendor.d12b5734.js";import{_ as Vr}from"./main.465728e1.js";var gr={exports:{}};/**! - * Sortable 1.14.0 - * @author RubaXa - * @author owenm - * @license MIT - */function pr(l,r){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(l);r&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(l,e).enumerable})),n.push.apply(n,i)}return n}function Bt(l){for(var r=1;r=0)&&(n[e]=l[e]);return n}function Qr(l,r){if(l==null)return{};var n=Jr(l,r),i,e;if(Object.getOwnPropertySymbols){var f=Object.getOwnPropertySymbols(l);for(e=0;e=0)&&(!Object.prototype.propertyIsEnumerable.call(l,i)||(n[i]=l[i]))}return n}function Zr(l){return kr(l)||qr(l)||_r(l)||tn()}function kr(l){if(Array.isArray(l))return Ze(l)}function qr(l){if(typeof Symbol!="undefined"&&l[Symbol.iterator]!=null||l["@@iterator"]!=null)return Array.from(l)}function _r(l,r){if(!!l){if(typeof l=="string")return Ze(l,r);var n=Object.prototype.toString.call(l).slice(8,-1);if(n==="Object"&&l.constructor&&(n=l.constructor.name),n==="Map"||n==="Set")return Array.from(l);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ze(l,r)}}function Ze(l,r){(r==null||r>l.length)&&(r=l.length);for(var n=0,i=new Array(r);n"&&(r=r.substring(1)),l)try{if(l.matches)return l.matches(r);if(l.msMatchesSelector)return l.msMatchesSelector(r);if(l.webkitMatchesSelector)return l.webkitMatchesSelector(r)}catch{return!1}return!1}}function nn(l){return l.host&&l!==document&&l.host.nodeType?l.host:l.parentNode}function wt(l,r,n,i){if(l){n=n||document;do{if(r!=null&&(r[0]===">"?l.parentNode===n&&Ne(l,r):Ne(l,r))||i&&l===n)return l;if(l===n)break}while(l=nn(l))}return null}var br=/\s+/g;function lt(l,r,n){if(l&&r)if(l.classList)l.classList[n?"add":"remove"](r);else{var i=(" "+l.className+" ").replace(br," ").replace(" "+r+" "," ");l.className=(i+(n?" "+r:"")).replace(br," ")}}function L(l,r,n){var i=l&&l.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(l,""):l.currentStyle&&(n=l.currentStyle),r===void 0?n:n[r];!(r in i)&&r.indexOf("webkit")===-1&&(r="-webkit-"+r),i[r]=n+(typeof n=="string"?"":"px")}}function qt(l,r){var n="";if(typeof l=="string")n=l;else do{var i=L(l,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!r&&(l=l.parentNode));var e=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return e&&new e(n)}function Er(l,r,n){if(l){var i=l.getElementsByTagName(r),e=0,f=i.length;if(n)for(;e=f:t=e<=f,!t)return i;if(i===Kt())break;i=zt(i,!1)}return!1}function ne(l,r,n,i){for(var e=0,f=0,t=l.children;f2&&arguments[2]!==void 0?arguments[2]:{},e=i.evt,f=Qr(i,cn);ye.pluginEvent.bind(K)(r,n,Bt({dragEl:A,parentEl:ct,ghostEl:z,rootEl:at,nextEl:_t,lastDownEl:je,cloneEl:dt,cloneHidden:Jt,dragStarted:Ee,putSortable:Et,activeSortable:K.active,originalEvent:e,oldIndex:ae,oldDraggableIndex:be,newIndex:Rt,newDraggableIndex:Qt,hideGhostForTarget:jr,unhideGhostForTarget:Fr,cloneNowHidden:function(){Jt=!0},cloneNowShown:function(){Jt=!1},dispatchSortableEvent:function(o){It({sortable:n,name:o,originalEvent:e})}},f))};function It(l){Se(Bt({putSortable:Et,cloneEl:dt,targetEl:A,rootEl:at,oldIndex:ae,oldDraggableIndex:be,newIndex:Rt,newDraggableIndex:Qt},l))}var A,ct,z,at,_t,je,dt,Jt,ae,Rt,be,Qt,Fe,Et,ie=!1,we=!1,Le=[],te,Lt,rr,nr,Dr,Cr,Ee,le,xe,Oe=!1,Ue=!1,Ge,Ot,or=[],ar=!1,$e=[],Be=typeof document!="undefined",Ke=yr,Ar=ge||Xt?"cssFloat":"float",dn=Be&&!rn&&!yr&&"draggable"in document.createElement("div"),Rr=function(){if(!!Be){if(Xt)return!1;var l=document.createElement("x");return l.style.cssText="pointer-events:auto",l.style.pointerEvents==="auto"}}(),Mr=function(r,n){var i=L(r),e=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),f=ne(r,0,n),t=ne(r,1,n),o=f&&L(f),a=t&&L(t),s=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+ot(f).width,c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+ot(t).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(f&&o.float&&o.float!=="none"){var u=o.float==="left"?"left":"right";return t&&(a.clear==="both"||a.clear===u)?"vertical":"horizontal"}return f&&(o.display==="block"||o.display==="flex"||o.display==="table"||o.display==="grid"||s>=e&&i[Ar]==="none"||t&&i[Ar]==="none"&&s+c>e)?"vertical":"horizontal"},vn=function(r,n,i){var e=i?r.left:r.top,f=i?r.right:r.bottom,t=i?r.width:r.height,o=i?n.left:n.top,a=i?n.right:n.bottom,s=i?n.width:n.height;return e===o||f===a||e+t/2===o+s/2},hn=function(r,n){var i;return Le.some(function(e){var f=e[xt].options.emptyInsertThreshold;if(!(!f||ke(e))){var t=ot(e),o=r>=t.left-f&&r<=t.right+f,a=n>=t.top-f&&n<=t.bottom+f;if(o&&a)return i=e}}),i},Nr=function(r){function n(f,t){return function(o,a,s,c){var u=o.options.group.name&&a.options.group.name&&o.options.group.name===a.options.group.name;if(f==null&&(t||u))return!0;if(f==null||f===!1)return!1;if(t&&f==="clone")return f;if(typeof f=="function")return n(f(o,a,s,c),t)(o,a,s,c);var d=(t?o:a).options.group.name;return f===!0||typeof f=="string"&&f===d||f.join&&f.indexOf(d)>-1}}var i={},e=r.group;(!e||Me(e)!="object")&&(e={name:e}),i.name=e.name,i.checkPull=n(e.pull,!0),i.checkPut=n(e.put),i.revertClone=e.revertClone,r.group=i},jr=function(){!Rr&&z&&L(z,"display","none")},Fr=function(){!Rr&&z&&L(z,"display","")};Be&&document.addEventListener("click",function(l){if(we)return l.preventDefault(),l.stopPropagation&&l.stopPropagation(),l.stopImmediatePropagation&&l.stopImmediatePropagation(),we=!1,!1},!0);var ee=function(r){if(A){r=r.touches?r.touches[0]:r;var n=hn(r.clientX,r.clientY);if(n){var i={};for(var e in r)r.hasOwnProperty(e)&&(i[e]=r[e]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[xt]._onDragOver(i)}}},gn=function(r){A&&A.parentNode[xt]._isOutsideThisEl(r.target)};function K(l,r){if(!(l&&l.nodeType&&l.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(l));this.el=l,this.options=r=Nt({},r),l[xt]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(l.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Mr(l,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,o){t.setData("Text",o.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:K.supportPointer!==!1&&"PointerEvent"in window&&!pe,emptyInsertThreshold:5};ye.initializePlugins(this,l,n);for(var i in n)!(i in r)&&(r[i]=n[i]);Nr(r);for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this));this.nativeDraggable=r.forceFallback?!1:dn,this.nativeDraggable&&(this.options.touchStartThreshold=1),r.supportPointer?Z(l,"pointerdown",this._onTapStart):(Z(l,"mousedown",this._onTapStart),Z(l,"touchstart",this._onTapStart)),this.nativeDraggable&&(Z(l,"dragover",this),Z(l,"dragenter",this)),Le.push(this.el),r.store&&r.store.get&&this.sort(r.store.get(this)||[]),Nt(this,sn())}K.prototype={constructor:K,_isOutsideThisEl:function(r){!this.el.contains(r)&&r!==this.el&&(le=null)},_getDirection:function(r,n){return typeof this.options.direction=="function"?this.options.direction.call(this,r,n,A):this.options.direction},_onTapStart:function(r){if(!!r.cancelable){var n=this,i=this.el,e=this.options,f=e.preventOnFilter,t=r.type,o=r.touches&&r.touches[0]||r.pointerType&&r.pointerType==="touch"&&r,a=(o||r).target,s=r.target.shadowRoot&&(r.path&&r.path[0]||r.composedPath&&r.composedPath()[0])||a,c=e.filter;if(On(i),!A&&!(/mousedown|pointerdown/.test(t)&&r.button!==0||e.disabled)&&!s.isContentEditable&&!(!this.nativeDraggable&&pe&&a&&a.tagName.toUpperCase()==="SELECT")&&(a=wt(a,e.draggable,i,!1),!(a&&a.animated)&&je!==a)){if(ae=ut(a),be=ut(a,e.draggable),typeof c=="function"){if(c.call(this,r,a,this)){It({sortable:n,rootEl:s,name:"filter",targetEl:a,toEl:i,fromEl:i}),Dt("filter",n,{evt:r}),f&&r.cancelable&&r.preventDefault();return}}else if(c&&(c=c.split(",").some(function(u){if(u=wt(s,u.trim(),i,!1),u)return It({sortable:n,rootEl:u,name:"filter",targetEl:a,fromEl:i,toEl:i}),Dt("filter",n,{evt:r}),!0}),c)){f&&r.cancelable&&r.preventDefault();return}e.handle&&!wt(s,e.handle,i,!1)||this._prepareDragStart(r,o,a)}}},_prepareDragStart:function(r,n,i){var e=this,f=e.el,t=e.options,o=f.ownerDocument,a;if(i&&!A&&i.parentNode===f){var s=ot(i);if(at=f,A=i,ct=A.parentNode,_t=A.nextSibling,je=i,Fe=t.group,K.dragged=A,te={target:A,clientX:(n||r).clientX,clientY:(n||r).clientY},Dr=te.clientX-s.left,Cr=te.clientY-s.top,this._lastX=(n||r).clientX,this._lastY=(n||r).clientY,A.style["will-change"]="all",a=function(){if(Dt("delayEnded",e,{evt:r}),K.eventCanceled){e._onDrop();return}e._disableDelayedDragEvents(),!mr&&e.nativeDraggable&&(A.draggable=!0),e._triggerDragStart(r,n),It({sortable:e,name:"choose",originalEvent:r}),lt(A,t.chosenClass,!0)},t.ignore.split(",").forEach(function(c){Er(A,c.trim(),ir)}),Z(o,"dragover",ee),Z(o,"mousemove",ee),Z(o,"touchmove",ee),Z(o,"mouseup",e._onDrop),Z(o,"touchend",e._onDrop),Z(o,"touchcancel",e._onDrop),mr&&this.nativeDraggable&&(this.options.touchStartThreshold=4,A.draggable=!0),Dt("delayStart",this,{evt:r}),t.delay&&(!t.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(ge||Xt))){if(K.eventCanceled){this._onDrop();return}Z(o,"mouseup",e._disableDelayedDrag),Z(o,"touchend",e._disableDelayedDrag),Z(o,"touchcancel",e._disableDelayedDrag),Z(o,"mousemove",e._delayedDragTouchMoveHandler),Z(o,"touchmove",e._delayedDragTouchMoveHandler),t.supportPointer&&Z(o,"pointermove",e._delayedDragTouchMoveHandler),e._dragStartTimer=setTimeout(a,t.delay)}else a()}},_delayedDragTouchMoveHandler:function(r){var n=r.touches?r.touches[0]:r;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){A&&ir(A),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var r=this.el.ownerDocument;Q(r,"mouseup",this._disableDelayedDrag),Q(r,"touchend",this._disableDelayedDrag),Q(r,"touchcancel",this._disableDelayedDrag),Q(r,"mousemove",this._delayedDragTouchMoveHandler),Q(r,"touchmove",this._delayedDragTouchMoveHandler),Q(r,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(r,n){n=n||r.pointerType=="touch"&&r,!this.nativeDraggable||n?this.options.supportPointer?Z(document,"pointermove",this._onTouchMove):n?Z(document,"touchmove",this._onTouchMove):Z(document,"mousemove",this._onTouchMove):(Z(A,"dragend",this),Z(at,"dragstart",this._onDragStart));try{document.selection?We(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(r,n){if(ie=!1,at&&A){Dt("dragStarted",this,{evt:n}),this.nativeDraggable&&Z(document,"dragover",gn);var i=this.options;!r&<(A,i.dragClass,!1),lt(A,i.ghostClass,!0),K.active=this,r&&this._appendGhost(),It({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(Lt){this._lastX=Lt.clientX,this._lastY=Lt.clientY,jr();for(var r=document.elementFromPoint(Lt.clientX,Lt.clientY),n=r;r&&r.shadowRoot&&(r=r.shadowRoot.elementFromPoint(Lt.clientX,Lt.clientY),r!==n);)n=r;if(A.parentNode[xt]._isOutsideThisEl(r),n)do{if(n[xt]){var i=void 0;if(i=n[xt]._onDragOver({clientX:Lt.clientX,clientY:Lt.clientY,target:r,rootEl:n}),i&&!this.options.dragoverBubble)break}r=n}while(n=n.parentNode);Fr()}},_onTouchMove:function(r){if(te){var n=this.options,i=n.fallbackTolerance,e=n.fallbackOffset,f=r.touches?r.touches[0]:r,t=z&&qt(z,!0),o=z&&t&&t.a,a=z&&t&&t.d,s=Ke&&Ot&&Or(Ot),c=(f.clientX-te.clientX+e.x)/(o||1)+(s?s[0]-or[0]:0)/(o||1),u=(f.clientY-te.clientY+e.y)/(a||1)+(s?s[1]-or[1]:0)/(a||1);if(!K.active&&!ie){if(i&&Math.max(Math.abs(f.clientX-this._lastX),Math.abs(f.clientY-this._lastY))=0&&(It({rootEl:ct,name:"add",toEl:ct,fromEl:at,originalEvent:r}),It({sortable:this,name:"remove",toEl:ct,originalEvent:r}),It({rootEl:ct,name:"sort",toEl:ct,fromEl:at,originalEvent:r}),It({sortable:this,name:"sort",toEl:ct,originalEvent:r})),Et&&Et.save()):Rt!==ae&&Rt>=0&&(It({sortable:this,name:"update",toEl:ct,originalEvent:r}),It({sortable:this,name:"sort",toEl:ct,originalEvent:r})),K.active&&((Rt==null||Rt===-1)&&(Rt=ae,Qt=be),It({sortable:this,name:"end",toEl:ct,originalEvent:r}),this.save()))),this._nulling()},_nulling:function(){Dt("nulling",this),at=A=ct=z=_t=dt=je=Jt=te=Lt=Ee=Rt=Qt=ae=be=le=xe=Et=Fe=K.dragged=K.ghost=K.clone=K.active=null,$e.forEach(function(r){r.checked=!0}),$e.length=rr=nr=0},handleEvent:function(r){switch(r.type){case"drop":case"dragend":this._onDrop(r);break;case"dragenter":case"dragover":A&&(this._onDragOver(r),pn(r));break;case"selectstart":r.preventDefault();break}},toArray:function(){for(var r=[],n,i=this.el.children,e=0,f=i.length,t=this.options;ei.right+e||l.clientX<=i.right&&l.clientY>i.bottom&&l.clientX>=i.left:l.clientX>i.right&&l.clientY>i.top||l.clientX<=i.right&&l.clientY>i.bottom+e}function bn(l,r,n,i,e,f,t,o){var a=i?l.clientY:l.clientX,s=i?n.height:n.width,c=i?n.top:n.left,u=i?n.bottom:n.right,d=!1;if(!t){if(o&&Gec+s*f/2:au-Ge)return-xe}else if(a>c+s*(1-e)/2&&au-s*f/2)?a>c+s/2?1:-1:0}function En(l){return ut(A)1&&(V.forEach(function(o){f.addAnimationState({target:o,rect:Ct?ot(o):t}),tr(o),o.fromRect=t,i.removeAnimationState(o)}),Ct=!1,Cn(!this.options.removeCloneOnHide,e))},dragOverCompleted:function(n){var i=n.sortable,e=n.isOwner,f=n.insertion,t=n.activeSortable,o=n.parentEl,a=n.putSortable,s=this.options;if(f){if(e&&t._hideClone(),De=!1,s.animation&&V.length>1&&(Ct||!e&&!t.options.sort&&!a)){var c=ot(et,!1,!0,!0);V.forEach(function(d){d!==et&&(Pr(d,c),o.appendChild(d))}),Ct=!0}if(!e)if(Ct||ze(),V.length>1){var u=Ve;t._showClone(i),t.options.animation&&!Ve&&u&&Mt.forEach(function(d){t.addAnimationState({target:d,rect:Ce}),d.fromRect=Ce,d.thisAnimationDuration=null})}else t._showClone(i)}},dragOverAnimationCapture:function(n){var i=n.dragRect,e=n.isOwner,f=n.activeSortable;if(V.forEach(function(o){o.thisAnimationDuration=null}),f.options.animation&&!e&&f.multiDrag.isMultiDrag){Ce=Nt({},i);var t=qt(et,!0);Ce.top-=t.f,Ce.left-=t.e}},dragOverAnimationComplete:function(){Ct&&(Ct=!1,ze())},drop:function(n){var i=n.originalEvent,e=n.rootEl,f=n.parentEl,t=n.sortable,o=n.dispatchSortableEvent,a=n.oldIndex,s=n.putSortable,c=s||this.sortable;if(!!i){var u=this.options,d=f.children;if(!se)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),lt(et,u.selectedClass,!~V.indexOf(et)),~V.indexOf(et))V.splice(V.indexOf(et),1),Pe=null,Se({sortable:t,rootEl:e,name:"deselect",targetEl:et,originalEvt:i});else{if(V.push(et),Se({sortable:t,rootEl:e,name:"select",targetEl:et,originalEvt:i}),i.shiftKey&&Pe&&t.el.contains(Pe)){var v=ut(Pe),h=ut(et);if(~v&&~h&&v!==h){var g,p;for(h>v?(p=v,g=h):(p=h,g=v+1);p1){var S=ot(et),b=ut(et,":not(."+this.options.selectedClass+")");if(!De&&u.animation&&(et.thisAnimationDuration=null),c.captureAnimationState(),!De&&(u.animation&&(et.fromRect=S,V.forEach(function(x){if(x.thisAnimationDuration=null,x!==et){var P=Ct?ot(x):S;x.fromRect=P,c.addAnimationState({target:x,rect:P})}})),ze(),V.forEach(function(x){d[b]?f.insertBefore(x,d[b]):f.appendChild(x),b++}),a===ut(et))){var I=!1;V.forEach(function(x){if(x.sortableIndex!==ut(x)){I=!0;return}}),I&&o("update")}V.forEach(function(x){tr(x)}),c.animateAll()}Ut=c}(e===f||s&&s.lastPutMode!=="clone")&&Mt.forEach(function(x){x.parentNode&&x.parentNode.removeChild(x)})}},nullingGlobal:function(){this.isMultiDrag=se=!1,Mt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),Q(document,"pointerup",this._deselectMultiDrag),Q(document,"mouseup",this._deselectMultiDrag),Q(document,"touchend",this._deselectMultiDrag),Q(document,"keydown",this._checkKeyDown),Q(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof se!="undefined"&&se)&&Ut===this.sortable&&!(n&&wt(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;V.length;){var i=V[0];lt(i,this.options.selectedClass,!1),V.shift(),Se({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i,originalEvt:n})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},Nt(l,{pluginName:"multiDrag",utils:{select:function(n){var i=n.parentNode[xt];!i||!i.options.multiDrag||~V.indexOf(n)||(Ut&&Ut!==i&&(Ut.multiDrag._deselectMultiDrag(),Ut=i),lt(n,i.options.selectedClass,!0),V.push(n))},deselect:function(n){var i=n.parentNode[xt],e=V.indexOf(n);!i||!i.options.multiDrag||!~e||(lt(n,i.options.selectedClass,!1),V.splice(e,1))}},eventProperties:function(){var n=this,i=[],e=[];return V.forEach(function(f){i.push({multiDragElement:f,index:f.sortableIndex});var t;Ct&&f!==et?t=-1:Ct?t=ut(f,":not(."+n.options.selectedClass+")"):t=ut(f),e.push({multiDragElement:f,index:t})}),{items:Zr(V),clones:[].concat(Mt),oldIndicies:i,newIndicies:e}},optionListeners:{multiDragKey:function(n){return n=n.toLowerCase(),n==="ctrl"?n="Control":n.length>1&&(n=n.charAt(0).toUpperCase()+n.substr(1)),n}}})}function Cn(l,r){V.forEach(function(n,i){var e=r.children[n.sortableIndex+(l?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function Ur(l,r){Mt.forEach(function(n,i){var e=r.children[n.sortableIndex+(l?Number(i):0)];e?r.insertBefore(n,e):r.appendChild(n)})}function ze(){V.forEach(function(l){l!==et&&l.parentNode&&l.parentNode.removeChild(l)})}K.mount(new Tn);K.mount(hr,vr);var An=Object.freeze({__proto__:null,[Symbol.toStringTag]:"Module",default:K,MultiDrag:Dn,Sortable:K,Swap:In}),Rn=$r(An);(function(l,r){(function(i,e){l.exports=e(Br,Rn)})(typeof self!="undefined"?self:Kr,function(n,i){return function(e){var f={};function t(o){if(f[o])return f[o].exports;var a=f[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=f,t.d=function(o,a,s){t.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:s})},t.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},t.t=function(o,a){if(a&1&&(o=t(o)),a&8||a&4&&typeof o=="object"&&o&&o.__esModule)return o;var s=Object.create(null);if(t.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:o}),a&2&&typeof o!="string")for(var c in o)t.d(s,c,function(u){return o[u]}.bind(null,c));return s},t.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return t.d(a,"a",a),a},t.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},t.p="",t(t.s="fb15")}({"00ee":function(e,f,t){var o=t("b622"),a=o("toStringTag"),s={};s[a]="z",e.exports=String(s)==="[object z]"},"0366":function(e,f,t){var o=t("1c0b");e.exports=function(a,s,c){if(o(a),s===void 0)return a;switch(c){case 0:return function(){return a.call(s)};case 1:return function(u){return a.call(s,u)};case 2:return function(u,d){return a.call(s,u,d)};case 3:return function(u,d,v){return a.call(s,u,d,v)}}return function(){return a.apply(s,arguments)}}},"057f":function(e,f,t){var o=t("fc6a"),a=t("241c").f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(d){try{return a(d)}catch{return c.slice()}};e.exports.f=function(v){return c&&s.call(v)=="[object Window]"?u(v):a(o(v))}},"06cf":function(e,f,t){var o=t("83ab"),a=t("d1e7"),s=t("5c6c"),c=t("fc6a"),u=t("c04e"),d=t("5135"),v=t("0cfb"),h=Object.getOwnPropertyDescriptor;f.f=o?h:function(p,S){if(p=c(p),S=u(S,!0),v)try{return h(p,S)}catch{}if(d(p,S))return s(!a.f.call(p,S),p[S])}},"0cfb":function(e,f,t){var o=t("83ab"),a=t("d039"),s=t("cc12");e.exports=!o&&!a(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(e,f,t){var o=t("23e7"),a=t("d58f").left,s=t("a640"),c=t("ae40"),u=s("reduce"),d=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!u||!d},{reduce:function(h){return a(this,h,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,f,t){var o=t("c6b6"),a=t("9263");e.exports=function(s,c){var u=s.exec;if(typeof u=="function"){var d=u.call(s,c);if(typeof d!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return d}if(o(s)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return a.call(s,c)}},"159b":function(e,f,t){var o=t("da84"),a=t("fdbc"),s=t("17c2"),c=t("9112");for(var u in a){var d=o[u],v=d&&d.prototype;if(v&&v.forEach!==s)try{c(v,"forEach",s)}catch{v.forEach=s}}},"17c2":function(e,f,t){var o=t("b727").forEach,a=t("a640"),s=t("ae40"),c=a("forEach"),u=s("forEach");e.exports=!c||!u?function(v){return o(this,v,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(e,f,t){var o=t("d066");e.exports=o("document","documentElement")},"1c0b":function(e,f){e.exports=function(t){if(typeof t!="function")throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(e,f,t){var o=t("b622"),a=o("iterator"),s=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){s=!0}};u[a]=function(){return this},Array.from(u,function(){throw 2})}catch{}e.exports=function(d,v){if(!v&&!s)return!1;var h=!1;try{var g={};g[a]=function(){return{next:function(){return{done:h=!0}}}},d(g)}catch{}return h}},"1d80":function(e,f){e.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},"1dde":function(e,f,t){var o=t("d039"),a=t("b622"),s=t("2d00"),c=a("species");e.exports=function(u){return s>=51||!o(function(){var d=[],v=d.constructor={};return v[c]=function(){return{foo:1}},d[u](Boolean).foo!==1})}},"23cb":function(e,f,t){var o=t("a691"),a=Math.max,s=Math.min;e.exports=function(c,u){var d=o(c);return d<0?a(d+u,0):s(d,u)}},"23e7":function(e,f,t){var o=t("da84"),a=t("06cf").f,s=t("9112"),c=t("6eeb"),u=t("ce4e"),d=t("e893"),v=t("94ca");e.exports=function(h,g){var p=h.target,S=h.global,b=h.stat,I,x,P,O,w,U;if(S?x=o:b?x=o[p]||u(p,{}):x=(o[p]||{}).prototype,x)for(P in g){if(w=g[P],h.noTargetGet?(U=a(x,P),O=U&&U.value):O=x[P],I=v(S?P:p+(b?".":"#")+P,h.forced),!I&&O!==void 0){if(typeof w==typeof O)continue;d(w,O)}(h.sham||O&&O.sham)&&s(w,"sham",!0),c(x,P,w,h)}}},"241c":function(e,f,t){var o=t("ca84"),a=t("7839"),s=a.concat("length","prototype");f.f=Object.getOwnPropertyNames||function(u){return o(u,s)}},"25f0":function(e,f,t){var o=t("6eeb"),a=t("825a"),s=t("d039"),c=t("ad6d"),u="toString",d=RegExp.prototype,v=d[u],h=s(function(){return v.call({source:"a",flags:"b"})!="/a/b"}),g=v.name!=u;(h||g)&&o(RegExp.prototype,u,function(){var S=a(this),b=String(S.source),I=S.flags,x=String(I===void 0&&S instanceof RegExp&&!("flags"in d)?c.call(S):I);return"/"+b+"/"+x},{unsafe:!0})},"2ca0":function(e,f,t){var o=t("23e7"),a=t("06cf").f,s=t("50c4"),c=t("5a34"),u=t("1d80"),d=t("ab13"),v=t("c430"),h="".startsWith,g=Math.min,p=d("startsWith"),S=!v&&!p&&!!function(){var b=a(String.prototype,"startsWith");return b&&!b.writable}();o({target:"String",proto:!0,forced:!S&&!p},{startsWith:function(I){var x=String(u(this));c(I);var P=s(g(arguments.length>1?arguments[1]:void 0,x.length)),O=String(I);return h?h.call(x,O,P):x.slice(P,P+O.length)===O}})},"2d00":function(e,f,t){var o=t("da84"),a=t("342f"),s=o.process,c=s&&s.versions,u=c&&c.v8,d,v;u?(d=u.split("."),v=d[0]+d[1]):a&&(d=a.match(/Edge\/(\d+)/),(!d||d[1]>=74)&&(d=a.match(/Chrome\/(\d+)/),d&&(v=d[1]))),e.exports=v&&+v},"342f":function(e,f,t){var o=t("d066");e.exports=o("navigator","userAgent")||""},"35a1":function(e,f,t){var o=t("f5df"),a=t("3f8c"),s=t("b622"),c=s("iterator");e.exports=function(u){if(u!=null)return u[c]||u["@@iterator"]||a[o(u)]}},"37e8":function(e,f,t){var o=t("83ab"),a=t("9bf2"),s=t("825a"),c=t("df75");e.exports=o?Object.defineProperties:function(d,v){s(d);for(var h=c(v),g=h.length,p=0,S;g>p;)a.f(d,S=h[p++],v[S]);return d}},"3bbe":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a)&&a!==null)throw TypeError("Can't set "+String(a)+" as a prototype");return a}},"3ca3":function(e,f,t){var o=t("6547").charAt,a=t("69f3"),s=t("7dd0"),c="String Iterator",u=a.set,d=a.getterFor(c);s(String,"String",function(v){u(this,{type:c,string:String(v),index:0})},function(){var h=d(this),g=h.string,p=h.index,S;return p>=g.length?{value:void 0,done:!0}:(S=o(g,p),h.index+=S.length,{value:S,done:!1})})},"3f8c":function(e,f){e.exports={}},"4160":function(e,f,t){var o=t("23e7"),a=t("17c2");o({target:"Array",proto:!0,forced:[].forEach!=a},{forEach:a})},"428f":function(e,f,t){var o=t("da84");e.exports=o},"44ad":function(e,f,t){var o=t("d039"),a=t("c6b6"),s="".split;e.exports=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(c){return a(c)=="String"?s.call(c,""):Object(c)}:Object},"44d2":function(e,f,t){var o=t("b622"),a=t("7c73"),s=t("9bf2"),c=o("unscopables"),u=Array.prototype;u[c]==null&&s.f(u,c,{configurable:!0,value:a(null)}),e.exports=function(d){u[c][d]=!0}},"44e7":function(e,f,t){var o=t("861d"),a=t("c6b6"),s=t("b622"),c=s("match");e.exports=function(u){var d;return o(u)&&((d=u[c])!==void 0?!!d:a(u)=="RegExp")}},"4930":function(e,f,t){var o=t("d039");e.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())})},"4d64":function(e,f,t){var o=t("fc6a"),a=t("50c4"),s=t("23cb"),c=function(u){return function(d,v,h){var g=o(d),p=a(g.length),S=s(h,p),b;if(u&&v!=v){for(;p>S;)if(b=g[S++],b!=b)return!0}else for(;p>S;S++)if((u||S in g)&&g[S]===v)return u||S||0;return!u&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,f,t){var o=t("23e7"),a=t("b727").filter,s=t("1dde"),c=t("ae40"),u=s("filter"),d=c("filter");o({target:"Array",proto:!0,forced:!u||!d},{filter:function(h){return a(this,h,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(e,f,t){var o=t("0366"),a=t("7b0b"),s=t("9bdd"),c=t("e95a"),u=t("50c4"),d=t("8418"),v=t("35a1");e.exports=function(g){var p=a(g),S=typeof this=="function"?this:Array,b=arguments.length,I=b>1?arguments[1]:void 0,x=I!==void 0,P=v(p),O=0,w,U,T,M,j,Y;if(x&&(I=o(I,b>2?arguments[2]:void 0,2)),P!=null&&!(S==Array&&c(P)))for(M=P.call(p),j=M.next,U=new S;!(T=j.call(M)).done;O++)Y=x?s(M,I,[T.value,O],!0):T.value,d(U,O,Y);else for(w=u(p.length),U=new S(w);w>O;O++)Y=x?I(p[O],O):p[O],d(U,O,Y);return U.length=O,U}},"4fad":function(e,f,t){var o=t("23e7"),a=t("6f53").entries;o({target:"Object",stat:!0},{entries:function(c){return a(c)}})},"50c4":function(e,f,t){var o=t("a691"),a=Math.min;e.exports=function(s){return s>0?a(o(s),9007199254740991):0}},"5135":function(e,f){var t={}.hasOwnProperty;e.exports=function(o,a){return t.call(o,a)}},"5319":function(e,f,t){var o=t("d784"),a=t("825a"),s=t("7b0b"),c=t("50c4"),u=t("a691"),d=t("1d80"),v=t("8aa5"),h=t("14c3"),g=Math.max,p=Math.min,S=Math.floor,b=/\$([$&'`]|\d\d?|<[^>]*>)/g,I=/\$([$&'`]|\d\d?)/g,x=function(P){return P===void 0?P:String(P)};o("replace",2,function(P,O,w,U){var T=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,M=U.REPLACE_KEEPS_$0,j=T?"$":"$0";return[function(R,X){var N=d(this),$=R==null?void 0:R[P];return $!==void 0?$.call(R,N,X):O.call(String(N),R,X)},function(C,R){if(!T&&M||typeof R=="string"&&R.indexOf(j)===-1){var X=w(O,C,this,R);if(X.done)return X.value}var N=a(C),$=String(this),_=typeof R=="function";_||(R=String(R));var rt=N.global;if(rt){var yt=N.unicode;N.lastIndex=0}for(var st=[];;){var ft=h(N,$);if(ft===null||(st.push(ft),!rt))break;var pt=String(ft[0]);pt===""&&(N.lastIndex=v($,c(N.lastIndex),yt))}for(var mt="",ht=0,nt=0;nt=ht&&(mt+=$.slice(ht,At)+St,ht=At+it.length)}return mt+$.slice(ht)}];function Y(C,R,X,N,$,_){var rt=X+C.length,yt=N.length,st=I;return $!==void 0&&($=s($),st=b),O.call(_,st,function(ft,pt){var mt;switch(pt.charAt(0)){case"$":return"$";case"&":return C;case"`":return R.slice(0,X);case"'":return R.slice(rt);case"<":mt=$[pt.slice(1,-1)];break;default:var ht=+pt;if(ht===0)return ft;if(ht>yt){var nt=S(ht/10);return nt===0?ft:nt<=yt?N[nt-1]===void 0?pt.charAt(1):N[nt-1]+pt.charAt(1):ft}mt=N[ht-1]}return mt===void 0?"":mt})}})},"5692":function(e,f,t){var o=t("c430"),a=t("c6cd");(e.exports=function(s,c){return a[s]||(a[s]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"\xA9 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,f,t){var o=t("d066"),a=t("241c"),s=t("7418"),c=t("825a");e.exports=o("Reflect","ownKeys")||function(d){var v=a.f(c(d)),h=s.f;return h?v.concat(h(d)):v}},"5a34":function(e,f,t){var o=t("44e7");e.exports=function(a){if(o(a))throw TypeError("The method doesn't accept regular expressions");return a}},"5c6c":function(e,f){e.exports=function(t,o){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:o}}},"5db7":function(e,f,t){var o=t("23e7"),a=t("a2bf"),s=t("7b0b"),c=t("50c4"),u=t("1c0b"),d=t("65f0");o({target:"Array",proto:!0},{flatMap:function(h){var g=s(this),p=c(g.length),S;return u(h),S=d(g,0),S.length=a(S,g,g,p,0,1,h,arguments.length>1?arguments[1]:void 0),S}})},"6547":function(e,f,t){var o=t("a691"),a=t("1d80"),s=function(c){return function(u,d){var v=String(a(u)),h=o(d),g=v.length,p,S;return h<0||h>=g?c?"":void 0:(p=v.charCodeAt(h),p<55296||p>56319||h+1===g||(S=v.charCodeAt(h+1))<56320||S>57343?c?v.charAt(h):p:c?v.slice(h,h+2):(p-55296<<10)+(S-56320)+65536)}};e.exports={codeAt:s(!1),charAt:s(!0)}},"65f0":function(e,f,t){var o=t("861d"),a=t("e8b5"),s=t("b622"),c=s("species");e.exports=function(u,d){var v;return a(u)&&(v=u.constructor,typeof v=="function"&&(v===Array||a(v.prototype))?v=void 0:o(v)&&(v=v[c],v===null&&(v=void 0))),new(v===void 0?Array:v)(d===0?0:d)}},"69f3":function(e,f,t){var o=t("7f9a"),a=t("da84"),s=t("861d"),c=t("9112"),u=t("5135"),d=t("f772"),v=t("d012"),h=a.WeakMap,g,p,S,b=function(T){return S(T)?p(T):g(T,{})},I=function(T){return function(M){var j;if(!s(M)||(j=p(M)).type!==T)throw TypeError("Incompatible receiver, "+T+" required");return j}};if(o){var x=new h,P=x.get,O=x.has,w=x.set;g=function(T,M){return w.call(x,T,M),M},p=function(T){return P.call(x,T)||{}},S=function(T){return O.call(x,T)}}else{var U=d("state");v[U]=!0,g=function(T,M){return c(T,U,M),M},p=function(T){return u(T,U)?T[U]:{}},S=function(T){return u(T,U)}}e.exports={set:g,get:p,has:S,enforce:b,getterFor:I}},"6eeb":function(e,f,t){var o=t("da84"),a=t("9112"),s=t("5135"),c=t("ce4e"),u=t("8925"),d=t("69f3"),v=d.get,h=d.enforce,g=String(String).split("String");(e.exports=function(p,S,b,I){var x=I?!!I.unsafe:!1,P=I?!!I.enumerable:!1,O=I?!!I.noTargetGet:!1;if(typeof b=="function"&&(typeof S=="string"&&!s(b,"name")&&a(b,"name",S),h(b).source=g.join(typeof S=="string"?S:"")),p===o){P?p[S]=b:c(S,b);return}else x?!O&&p[S]&&(P=!0):delete p[S];P?p[S]=b:a(p,S,b)})(Function.prototype,"toString",function(){return typeof this=="function"&&v(this).source||u(this)})},"6f53":function(e,f,t){var o=t("83ab"),a=t("df75"),s=t("fc6a"),c=t("d1e7").f,u=function(d){return function(v){for(var h=s(v),g=a(h),p=g.length,S=0,b=[],I;p>S;)I=g[S++],(!o||c.call(h,I))&&b.push(d?[I,h[I]]:h[I]);return b}};e.exports={entries:u(!0),values:u(!1)}},"73d9":function(e,f,t){var o=t("44d2");o("flatMap")},"7418":function(e,f){f.f=Object.getOwnPropertySymbols},"746f":function(e,f,t){var o=t("428f"),a=t("5135"),s=t("e538"),c=t("9bf2").f;e.exports=function(u){var d=o.Symbol||(o.Symbol={});a(d,u)||c(d,u,{value:s.f(u)})}},"7839":function(e,f){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,f,t){var o=t("1d80");e.exports=function(a){return Object(o(a))}},"7c73":function(e,f,t){var o=t("825a"),a=t("37e8"),s=t("7839"),c=t("d012"),u=t("1be4"),d=t("cc12"),v=t("f772"),h=">",g="<",p="prototype",S="script",b=v("IE_PROTO"),I=function(){},x=function(T){return g+S+h+T+g+"/"+S+h},P=function(T){T.write(x("")),T.close();var M=T.parentWindow.Object;return T=null,M},O=function(){var T=d("iframe"),M="java"+S+":",j;return T.style.display="none",u.appendChild(T),T.src=String(M),j=T.contentWindow.document,j.open(),j.write(x("document.F=Object")),j.close(),j.F},w,U=function(){try{w=document.domain&&new ActiveXObject("htmlfile")}catch{}U=w?P(w):O();for(var T=s.length;T--;)delete U[p][s[T]];return U()};c[b]=!0,e.exports=Object.create||function(M,j){var Y;return M!==null?(I[p]=o(M),Y=new I,I[p]=null,Y[b]=M):Y=U(),j===void 0?Y:a(Y,j)}},"7dd0":function(e,f,t){var o=t("23e7"),a=t("9ed3"),s=t("e163"),c=t("d2bb"),u=t("d44e"),d=t("9112"),v=t("6eeb"),h=t("b622"),g=t("c430"),p=t("3f8c"),S=t("ae93"),b=S.IteratorPrototype,I=S.BUGGY_SAFARI_ITERATORS,x=h("iterator"),P="keys",O="values",w="entries",U=function(){return this};e.exports=function(T,M,j,Y,C,R,X){a(j,M,Y);var N=function(nt){if(nt===C&&st)return st;if(!I&&nt in rt)return rt[nt];switch(nt){case P:return function(){return new j(this,nt)};case O:return function(){return new j(this,nt)};case w:return function(){return new j(this,nt)}}return function(){return new j(this)}},$=M+" Iterator",_=!1,rt=T.prototype,yt=rt[x]||rt["@@iterator"]||C&&rt[C],st=!I&&yt||N(C),ft=M=="Array"&&rt.entries||yt,pt,mt,ht;if(ft&&(pt=s(ft.call(new T)),b!==Object.prototype&&pt.next&&(!g&&s(pt)!==b&&(c?c(pt,b):typeof pt[x]!="function"&&d(pt,x,U)),u(pt,$,!0,!0),g&&(p[$]=U))),C==O&&yt&&yt.name!==O&&(_=!0,st=function(){return yt.call(this)}),(!g||X)&&rt[x]!==st&&d(rt,x,st),p[M]=st,C)if(mt={values:N(O),keys:R?st:N(P),entries:N(w)},X)for(ht in mt)(I||_||!(ht in rt))&&v(rt,ht,mt[ht]);else o({target:M,proto:!0,forced:I||_},mt);return mt}},"7f9a":function(e,f,t){var o=t("da84"),a=t("8925"),s=o.WeakMap;e.exports=typeof s=="function"&&/native code/.test(a(s))},"825a":function(e,f,t){var o=t("861d");e.exports=function(a){if(!o(a))throw TypeError(String(a)+" is not an object");return a}},"83ab":function(e,f,t){var o=t("d039");e.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},"8418":function(e,f,t){var o=t("c04e"),a=t("9bf2"),s=t("5c6c");e.exports=function(c,u,d){var v=o(u);v in c?a.f(c,v,s(0,d)):c[v]=d}},"861d":function(e,f){e.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},"8875":function(e,f,t){var o,a,s;(function(c,u){a=[],o=u,s=typeof o=="function"?o.apply(f,a):o,s!==void 0&&(e.exports=s)})(typeof self!="undefined"?self:this,function(){function c(){var u=Object.getOwnPropertyDescriptor(document,"currentScript");if(!u&&"currentScript"in document&&document.currentScript||u&&u.get!==c&&document.currentScript)return document.currentScript;try{throw new Error}catch(w){var d=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,v=/@([^@]*):(\d+):(\d+)\s*$/ig,h=d.exec(w.stack)||v.exec(w.stack),g=h&&h[1]||!1,p=h&&h[2]||!1,S=document.location.href.replace(document.location.hash,""),b,I,x,P=document.getElementsByTagName("script");g===S&&(b=document.documentElement.outerHTML,I=new RegExp("(?:[^\\n]+?\\n){0,"+(p-2)+"}[^<]* diff --git a/resources/scripts/admin/components/estimate-invoice-common/CreateItems.vue b/resources/scripts/admin/components/estimate-invoice-common/CreateItems.vue index f5042e90f..7df16cfe9 100644 --- a/resources/scripts/admin/components/estimate-invoice-common/CreateItems.vue +++ b/resources/scripts/admin/components/estimate-invoice-common/CreateItems.vue @@ -28,7 +28,7 @@ - {{ $tc('items.item', 2) }} + {{ $t('items.item', 2) }} diff --git a/resources/scripts/admin/components/modal-components/disks/S3Disk.vue b/resources/scripts/admin/components/modal-components/disks/S3Disk.vue index 082c8e94b..775a06a8e 100644 --- a/resources/scripts/admin/components/modal-components/disks/S3Disk.vue +++ b/resources/scripts/admin/components/modal-components/disks/S3Disk.vue @@ -20,7 +20,7 @@ @@ -138,7 +138,7 @@ hasActiveUrl(item.link) ? 'text-primary-500 border-primary-500 bg-gray-100 ' : 'text-black', - 'cursor-pointer px-0 pl-6 hover:bg-gray-50 py-3 group flex items-center border-l-4 border-solid border-transparent text-sm not-italic font-medium', + 'cursor-pointer px-0 pl-6 hover:bg-gray-50 py-3 group flex items-center border-l-4 border-solid text-sm not-italic font-medium', ]" > { bucket: '', root: '', }, + + s3CompatDiskConfigData: { + name: '', + selected_driver: 's3compat', + key: '', + secret: '', + region: '', + bucket: '', + root: '', + endpoint: '', + }, }), getters: { diff --git a/resources/scripts/admin/stores/estimate.js b/resources/scripts/admin/stores/estimate.js index 5cedf789c..5384249b3 100644 --- a/resources/scripts/admin/stores/estimate.js +++ b/resources/scripts/admin/stores/estimate.js @@ -143,7 +143,8 @@ export const useEstimateStore = (useWindow = false) => { axios .get(`/api/v1/estimates/${id}`) .then((response) => { - Object.assign(this.newEstimate, response.data.data) + this.setEstimateData(response.data.data) + this.setCustomerAddresses(this.newEstimate.customer) resolve(response) }) .catch((err) => { @@ -154,6 +155,41 @@ export const useEstimateStore = (useWindow = false) => { }) }, + setEstimateData(estimate) { + Object.assign(this.newEstimate, estimate) + if (this.newEstimate.tax_per_item === 'YES') { + this.newEstimate.items.forEach((_i) => { + if (_i.taxes && !_i.taxes.length){ + _i.taxes.push({ ...taxStub, id: Guid.raw() }) + } + }) + } + if (this.newEstimate.discount_per_item === 'YES') { + this.newEstimate.items.forEach((_i, index) => { + if (_i.discount_type === 'fixed'){ + this.newEstimate.items[index].discount = _i.discount / 100 + } + }) + } + else { + if (this.newEstimate.discount_type === 'fixed'){ + this.newEstimate.discount = this.newEstimate.discount / 100 + } + } + }, + + setCustomerAddresses(customer) { + const customer_business = customer.customer_business + + if (customer_business?.billing_address){ + this.newEstimate.customer.billing_address = customer_business.billing_address + } + + if (customer_business?.shipping_address){ + this.newEstimate.customer.shipping_address = customer_business.shipping_address + } + }, + addSalesTaxUs() { const taxTypeStore = useTaxTypeStore() let salesTax = { ...taxStub } diff --git a/resources/scripts/admin/stores/global.js b/resources/scripts/admin/stores/global.js index 7e885962e..a32f03044 100644 --- a/resources/scripts/admin/stores/global.js +++ b/resources/scripts/admin/stores/global.js @@ -79,8 +79,10 @@ export const useGlobalStore = (useWindow = false) => { companyStore.selectedCompanyCurrency = response.data.current_company_currency - global.locale = - response.data.current_user_settings.language || 'en' + if(typeof global.locale !== 'string') { + global.locale.value = + response.data.current_user_settings.language || 'en' + } this.isAppLoaded = true resolve(response) diff --git a/resources/scripts/admin/stores/invoice.js b/resources/scripts/admin/stores/invoice.js index 97bcebff9..5b4d14f10 100644 --- a/resources/scripts/admin/stores/invoice.js +++ b/resources/scripts/admin/stores/invoice.js @@ -133,8 +133,8 @@ export const useInvoiceStore = (useWindow = false) => { axios .get(`/api/v1/invoices/${id}`) .then((response) => { - Object.assign(this.newInvoice, response.data.data) - this.newInvoice.customer = response.data.data.customer + this.setInvoiceData(response.data.data) + this.setCustomerAddresses(this.newInvoice.customer) resolve(response) }) .catch((err) => { @@ -144,6 +144,38 @@ export const useInvoiceStore = (useWindow = false) => { }) }, + setInvoiceData(invoice) { + Object.assign(this.newInvoice, invoice) + + if (this.newInvoice.tax_per_item === 'YES') { + this.newInvoice.items.forEach((_i) => { + if (_i.taxes && !_i.taxes.length) + _i.taxes.push({ ...taxStub, id: Guid.raw() }) + }) + } + + if (this.newInvoice.discount_per_item === 'YES') { + this.newInvoice.items.forEach((_i, index) => { + if (_i.discount_type === 'fixed') + this.newInvoice.items[index].discount = _i.discount / 100 + }) + } + else { + if (this.newInvoice.discount_type === 'fixed') + this.newInvoice.discount = this.newInvoice.discount / 100 + } + }, + + setCustomerAddresses(customer) { + const customer_business = customer.customer_business + + if (customer_business?.billing_address) + this.newInvoice.customer.billing_address = customer_business.billing_address + + if (customer_business?.shipping_address) + this.newInvoice.customer.shipping_address = customer_business.shipping_address + }, + addSalesTaxUs() { const taxTypeStore = useTaxTypeStore() let salesTax = { ...taxStub } diff --git a/resources/scripts/admin/stores/user.js b/resources/scripts/admin/stores/user.js index d05c96236..942aa6b3f 100644 --- a/resources/scripts/admin/stores/user.js +++ b/resources/scripts/admin/stores/user.js @@ -106,7 +106,7 @@ export const useUserStore = (useWindow = false) => { .then((response) => { if (data.settings.language) { this.currentUserSettings.language = data.settings.language - global.locale = data.settings.language + global.locale.value = data.settings.language } if (data.settings.default_estimate_template) { this.currentUserSettings.default_estimate_template = diff --git a/resources/scripts/admin/views/customers/Create.vue b/resources/scripts/admin/views/customers/Create.vue index a40a2a6b0..3df148b1e 100644 --- a/resources/scripts/admin/views/customers/Create.vue +++ b/resources/scripts/admin/views/customers/Create.vue @@ -6,7 +6,7 @@ diff --git a/resources/scripts/admin/views/customers/Index.vue b/resources/scripts/admin/views/customers/Index.vue index 9c64d384c..3244656c7 100644 --- a/resources/scripts/admin/views/customers/Index.vue +++ b/resources/scripts/admin/views/customers/Index.vue @@ -5,7 +5,7 @@ diff --git a/resources/scripts/admin/views/estimates/Index.vue b/resources/scripts/admin/views/estimates/Index.vue index 73be69b24..90c729aa8 100644 --- a/resources/scripts/admin/views/estimates/Index.vue +++ b/resources/scripts/admin/views/estimates/Index.vue @@ -7,7 +7,7 @@ @@ -49,7 +49,7 @@ :row-on-xl="true" @clear="clearFilter" > - + import { computed, ref, watch, onMounted } from 'vue' +import { cloneDeep } from 'lodash' import { useRoute, useRouter } from 'vue-router' import { useI18n } from 'vue-i18n' import { @@ -257,11 +258,30 @@ async function submitForm() { isSaving.value = true - let data = { + let data = cloneDeep({ ...estimateStore.newEstimate, sub_total: estimateStore.getSubTotal, total: estimateStore.getTotal, tax: estimateStore.getTotalTax, + }) + if (data.discount_per_item === 'YES') { + data.items.forEach((item, index) => { + if (item.discount_type === 'fixed'){ + data.items[index].discount = Math.round(item.discount * 100) + } + }) + } + else { + if (data.discount_type === 'fixed'){ + data.discount = Math.round(data.discount * 100) + } + } + + if ( + !estimateStore.newEstimate.tax_per_item === 'YES' + && data.taxes.length + ){ + data.tax_type_ids = data.taxes.map(_t => _t.tax_type_id) } const action = isEdit.value diff --git a/resources/scripts/admin/views/expenses/Create.vue b/resources/scripts/admin/views/expenses/Create.vue index 8d3ca71ff..a15eb97f9 100644 --- a/resources/scripts/admin/views/expenses/Create.vue +++ b/resources/scripts/admin/views/expenses/Create.vue @@ -12,7 +12,7 @@ /> diff --git a/resources/scripts/admin/views/expenses/Index.vue b/resources/scripts/admin/views/expenses/Index.vue index 3219b2493..364844de7 100644 --- a/resources/scripts/admin/views/expenses/Index.vue +++ b/resources/scripts/admin/views/expenses/Index.vue @@ -4,7 +4,7 @@ - +