From 12848091a2c06e8cebcbffeb7060404b164ed4e0 Mon Sep 17 00:00:00 2001 From: Nabeel S Date: Mon, 14 Mar 2022 11:45:18 -0400 Subject: [PATCH] Laravel 9 Update (#1413) Update to Laravel 9 and PHP 8+ Co-authored-by: B.Fatih KOZ --- .github/workflows/build.yml | 11 +- .gitignore | 11 + Dockerfile | 8 +- Makefile | 4 +- README.md | 2 +- app/Console/Commands/AcarsReplay.php | 8 +- app/Console/Commands/CreateConfigs.php | 6 +- app/Console/Commands/CreateDatabase.php | 6 +- app/Console/Commands/DevCommands.php | 3 +- app/Console/Commands/DevInstall.php | 2 +- app/Console/Commands/ImportCsv.php | 2 +- app/Console/Commands/ProcessQueue.php | 2 +- app/Console/Commands/TestApi.php | 6 +- app/Console/Commands/Version.php | 8 +- app/Console/Commands/YamlImport.php | 6 +- app/Contracts/Award.php | 8 +- app/Contracts/Controller.php | 1 + app/Contracts/Enum.php | 22 +- app/Contracts/Factory.php | 9 + app/Contracts/Repository.php | 5 +- app/Contracts/Unit.php | 97 +- app/Cron/Hourly/ClearExpiredSimbrief.php | 2 +- app/Cron/Monthly/ApplyExpenses.php | 2 +- app/Cron/Nightly/ApplyExpenses.php | 2 +- app/Cron/Nightly/NewVersionCheck.php | 2 +- app/Cron/Nightly/PilotLeave.php | 2 +- app/Cron/Nightly/RecalculateBalances.php | 4 +- app/Cron/Nightly/RecalculateStats.php | 4 +- app/Database/factories/AcarsFactory.php | 60 +- app/Database/factories/AircraftFactory.php | 68 +- app/Database/factories/AirlineFactory.php | 56 +- app/Database/factories/AirportFactory.php | 94 +- app/Database/factories/AwardFactory.php | 34 + app/Database/factories/AwardsFactory.php | 13 - app/Database/factories/ExpenseFactory.php | 51 +- app/Database/factories/FareFactory.php | 45 +- app/Database/factories/FlightFactory.php | 98 +- app/Database/factories/JournalFactory.php | 33 +- .../factories/JournalTransactionsFactory.php | 47 +- app/Database/factories/NavdataFactory.php | 45 +- app/Database/factories/NewsFactory.php | 41 +- app/Database/factories/PirepFactory.php | 127 +- app/Database/factories/RankFactory.php | 54 +- app/Database/factories/RoleFactory.php | 41 +- app/Database/factories/SimBriefFactory.php | 38 + app/Database/factories/SimbriefFactory.php | 21 - app/Database/factories/SubfleetFactory.php | 43 +- app/Database/factories/UserFactory.php | 68 +- ...017_06_07_014930_create_settings_table.php | 5 +- .../2017_06_08_0000_create_users_table.php | 5 +- ...17_06_08_0001_roles_permissions_tables.php | 6 +- ...6_08_0005_create_password_resets_table.php | 5 +- .../2017_06_08_0006_create_sessions_table.php | 5 +- ...017_06_08_191703_create_airlines_table.php | 5 +- ...17_06_09_010621_create_aircrafts_table.php | 5 +- .../2017_06_10_040335_create_fares_table.php | 5 +- ...017_06_11_135707_create_airports_table.php | 5 +- ...2017_06_17_214650_create_flight_tables.php | 5 +- .../2017_06_21_165410_create_ranks_table.php | 5 +- ...17_06_23_011011_create_subfleet_tables.php | 5 +- .../2017_06_28_195426_create_pirep_tables.php | 5 +- .../2017_12_12_174519_create_bids_table.php | 5 +- .../2017_12_14_225241_create_jobs_table.php | 5 +- ..._12_14_225337_create_failed_jobs_table.php | 5 +- ...017_12_20_004147_create_navdata_tables.php | 5 +- .../2017_12_20_005147_create_acars_tables.php | 5 +- .../2018_01_03_014930_create_stats_table.php | 5 +- .../2018_01_08_142204_create_news_table.php | 5 +- .../2018_01_28_180522_create_awards_table.php | 5 +- ...018_02_26_185121_create_expenses_table.php | 5 +- ...1807_create_journal_transactions_table.php | 5 +- ...018_02_28_231813_create_journals_table.php | 5 +- ...2018_02_28_232438_create_ledgers_table.php | 5 +- .../2018_04_01_193443_create_files_table.php | 5 +- ...019_06_19_220910_add_readonly_to_roles.php | 5 +- .../2019_07_16_141152_users_add_pilot_id.php | 5 +- ...8_30_132224_create_notifications_table.php | 5 +- ..._09_16_141152_pireps_change_state_type.php | 5 +- ...2019_10_30_141152_pireps_add_flight_id.php | 5 +- ..._02_12_141152_expenses_add_flight_type.php | 5 +- ..._26_044305_modify_airports_coordinates.php | 5 +- ...020_03_04_044305_flight_field_nullable.php | 5 +- ...0_03_05_141152_flights_add_load_factor.php | 5 +- ...020_03_06_141152_flights_add_pilot_pay.php | 5 +- .../2020_03_06_141153_fares_add_type.php | 5 +- .../2020_03_09_141152_increase_id_lengths.php | 5 +- ...3_09_141153_remove_subfleet_type_index.php | 5 +- .../2020_03_11_141153_add_simbrief_table.php | 5 +- .../2020_03_27_174238_create_pages.php | 5 +- ...0_03_28_174238_airline_remove_nullable.php | 5 +- .../2020_03_28_174238_page_icon_nullable.php | 5 +- .../2020_06_09_141153_pages_add_link.php | 5 +- .../2020_07_21_141153_create_user_fields.php | 5 +- .../2020_09_03_141152_aircraft_add_mtow.php | 5 +- ...2020_09_30_081536_create_modules_table.php | 5 +- .../2020_11_20_044305_modify_pages_size.php | 5 +- ...11_26_044305_modify_download_link_size.php | 5 +- ...2021_01_17_044305_add_hub_to_subfleets.php | 5 +- ...2021_02_10_044305_change_acars_vs_type.php | 5 +- ...021_02_11_044305_update_sessions_table.php | 5 +- ..._02_23_150601_aircraft_add_fuelonboard.php | 5 +- ...1_02_23_205630_add_sbtype_to_subfleets.php | 5 +- ..._03_01_044305_add_aircraft_to_simbrief.php | 5 +- .../2021_03_05_044305_add_kvp_table.php | 5 +- ...419_add_disableactivitychecks_to_roles.php | 5 +- ...13017_remove_setting_removebidonaccept.php | 5 +- ...5245_flights_add_alphanumeric_callsign.php | 5 +- .../2021_04_10_055245_migrate_configs.php | 5 +- .../2021_05_21_141152_increase_icao_sizes.php | 5 +- ...5608_remove_setting_simbriefexpiredays.php | 5 +- .../2021_06_01_141152_discord_fields.php | 5 +- ...6_04_141152_discord_private_channel_id.php | 5 +- ...21_11_23_184532_add_type_rating_tables.php | 5 +- .../2021_11_27_132418_add_hub_to_aircraft.php | 5 +- ..._01_10_131604_update_awards_add_active.php | 5 +- ...22_02_11_124926_update_users_add_notes.php | 5 +- ...09_152342_ignore_admin_activity_checks.php | 28 + app/Database/seeds/dev/simbrief.yml | 8 +- app/Database/seeds/dev/users.yml | 6 + app/Database/seeds/settings.yml | 21 + app/Events/AcarsUpdate.php | 4 +- app/Events/Expenses.php | 2 +- app/Events/Fares.php | 2 +- app/Events/NewsAdded.php | 2 +- app/Events/PirepAccepted.php | 2 +- app/Events/PirepCancelled.php | 2 +- app/Events/PirepFiled.php | 2 +- app/Events/PirepPrefiled.php | 2 +- app/Events/PirepRejected.php | 2 +- app/Events/PirepStateChange.php | 2 +- app/Events/PirepStatusChange.php | 2 +- app/Events/PirepUpdated.php | 2 +- app/Events/TestEvent.php | 2 +- app/Events/UserAccepted.php | 2 +- app/Events/UserRegistered.php | 2 +- app/Events/UserStateChanged.php | 4 +- app/Events/UserStatsChanged.php | 2 +- app/Exceptions/PirepNotFound.php | 43 + app/Http/Composers/PageLinksComposer.php | 2 +- app/Http/Composers/VersionComposer.php | 2 +- .../Controllers/Admin/AircraftController.php | 6 +- .../Controllers/Admin/AirlinesController.php | 4 +- .../Controllers/Admin/AirportController.php | 4 +- .../Controllers/Admin/AwardController.php | 4 +- .../Controllers/Admin/DashboardController.php | 12 +- .../Controllers/Admin/ExpenseController.php | 6 +- app/Http/Controllers/Admin/FareController.php | 4 +- app/Http/Controllers/Admin/FileController.php | 2 +- .../Controllers/Admin/FinanceController.php | 4 +- .../Controllers/Admin/FlightController.php | 18 +- .../Admin/FlightFieldController.php | 2 +- .../Admin/MaintenanceController.php | 6 +- .../Controllers/Admin/ModulesController.php | 2 +- .../Controllers/Admin/PagesController.php | 2 +- .../Controllers/Admin/PirepController.php | 20 +- .../Admin/PirepFieldController.php | 2 +- app/Http/Controllers/Admin/RankController.php | 6 +- .../Controllers/Admin/RolesController.php | 6 +- .../Controllers/Admin/SettingsController.php | 2 +- .../Controllers/Admin/SubfleetController.php | 16 +- .../Admin/TypeRatingController.php | 6 +- app/Http/Controllers/Admin/UserController.php | 14 +- .../Controllers/Admin/UserFieldController.php | 2 +- app/Http/Controllers/Api/AcarsController.php | 45 +- .../Controllers/Api/AirlineController.php | 2 +- .../Controllers/Api/AirportController.php | 4 +- app/Http/Controllers/Api/FlightController.php | 11 +- app/Http/Controllers/Api/NewsController.php | 2 +- app/Http/Controllers/Api/PirepController.php | 10 +- .../Controllers/Api/SettingsController.php | 2 +- app/Http/Controllers/Api/StatusController.php | 11 +- app/Http/Controllers/Api/UserController.php | 15 +- app/Http/Controllers/Auth/LoginController.php | 9 +- .../Controllers/Auth/RegisterController.php | 43 +- .../Frontend/AirportController.php | 4 +- .../Frontend/DashboardController.php | 2 +- .../Frontend/DownloadController.php | 39 +- .../Controllers/Frontend/FlightController.php | 14 +- .../Frontend/LiveMapController.php | 4 +- .../Controllers/Frontend/PageController.php | 2 +- .../Controllers/Frontend/PirepController.php | 24 +- .../Frontend/ProfileController.php | 30 +- .../Frontend/SimBriefController.php | 10 +- .../Controllers/Frontend/UserController.php | 2 +- .../Controllers/System/ImporterController.php | 4 +- .../System/InstallerController.php | 17 +- .../Controllers/System/UpdateController.php | 6 +- app/Http/Middleware/InstalledCheck.php | 3 +- app/Http/Middleware/TrustProxies.php | 9 +- app/Http/Resources/Acars.php | 7 +- app/Http/Resources/Airline.php | 3 + app/Http/Resources/Award.php | 3 + app/Http/Resources/BidSubfleet.php | 3 + app/Http/Resources/Flight.php | 2 +- app/Http/Resources/News.php | 3 + app/Http/Resources/Pirep.php | 11 +- app/Http/Resources/Setting.php | 3 + app/Models/Acars.php | 43 +- app/Models/Aircraft.php | 64 +- app/Models/Airline.php | 40 +- app/Models/Airport.php | 59 +- app/Models/Award.php | 7 + app/Models/Casts/CarbonCast.php | 50 + app/Models/Casts/CommaDelimitedCast.php | 46 + app/Models/Casts/DistanceCast.php | 56 + app/Models/Casts/FuelCast.php | 56 + app/Models/Casts/MoneyCast.php | 47 + app/Models/Enums/ActiveState.php | 2 +- app/Models/Enums/AircraftState.php | 2 +- app/Models/Enums/AircraftStatus.php | 2 +- app/Models/Enums/Days.php | 4 +- app/Models/Enums/ExpenseType.php | 4 +- app/Models/Enums/FareType.php | 2 +- app/Models/Enums/FlightType.php | 2 +- app/Models/Enums/FuelType.php | 2 +- app/Models/Enums/ImportExportType.php | 2 +- app/Models/Enums/NavaidType.php | 2 +- app/Models/Enums/PageType.php | 2 +- app/Models/Enums/PirepSource.php | 2 +- app/Models/Enums/PirepState.php | 2 +- app/Models/Enums/PirepStatus.php | 2 +- app/Models/Enums/UserState.php | 2 +- app/Models/Expense.php | 52 +- app/Models/Fare.php | 3 + app/Models/File.php | 67 +- app/Models/Flight.php | 73 +- app/Models/FlightField.php | 13 +- app/Models/FlightFieldValue.php | 15 +- app/Models/Journal.php | 36 +- app/Models/JournalTransaction.php | 2 + app/Models/Navdata.php | 14 +- app/Models/News.php | 2 + app/Models/Page.php | 21 +- app/Models/Pirep.php | 238 +- app/Models/PirepComment.php | 3 + app/Models/PirepField.php | 13 +- app/Models/PirepFieldValue.php | 31 +- app/Models/Rank.php | 3 + app/Models/Role.php | 3 + app/Models/Setting.php | 23 +- app/Models/SimBrief.php | 3 + app/Models/Subfleet.php | 12 +- app/Models/User.php | 114 +- app/Models/UserField.php | 9 +- app/Models/UserFieldValue.php | 7 +- .../Messages/Broadcast/PirepFiled.php | 44 +- .../Messages/Broadcast/PirepPrefiled.php | 54 +- .../Messages/Broadcast/PirepStatusChanged.php | 66 +- app/Services/AircraftService.php | 2 +- app/Services/AirlineService.php | 10 +- .../AirportLookup/VaCentralLookup.php | 2 +- app/Services/AirportService.php | 18 +- app/Services/BidService.php | 17 +- app/Services/CronService.php | 2 +- app/Services/ExportService.php | 3 +- app/Services/Finance/PirepFinanceService.php | 14 +- .../Finance/RecurringFinanceService.php | 7 +- app/Services/FinanceService.php | 4 +- app/Services/FlightService.php | 10 +- app/Services/GeoService.php | 4 +- .../ImportExport/AircraftExporter.php | 9 +- app/Services/ImportExport/ExpenseExporter.php | 18 +- app/Services/ImportExport/FlightExporter.php | 2 +- app/Services/ImportService.php | 2 +- app/Services/ImporterService.php | 6 +- app/Services/Installer/ConfigService.php | 6 +- app/Services/Installer/InstallerService.php | 8 +- app/Services/Installer/SeederService.php | 6 +- app/Services/Metar/AviationWeather.php | 8 +- app/Services/ModuleService.php | 8 +- app/Services/NewsService.php | 2 +- app/Services/PirepService.php | 22 +- app/Services/RoleService.php | 2 +- app/Services/SimBriefService.php | 19 +- app/Services/UserService.php | 10 +- app/Services/VersionService.php | 4 +- app/Support/Database.php | 17 +- app/Support/Dates.php | 4 +- app/Support/Discord.php | 35 - app/Support/HttpClient.php | 41 +- app/Support/Metar.php | 17 +- app/Support/Money.php | 2 +- .../CustomPaginatedResourceResponse.php | 7 +- app/Support/ThemeViewFinder.php | 6 +- app/Support/Units/Altitude.php | 13 +- app/Support/Units/Distance.php | 19 +- app/Support/Units/Fuel.php | 13 +- app/Support/Units/Mass.php | 13 +- app/Support/Units/Pressure.php | 13 +- app/Support/Units/Temperature.php | 13 +- app/Support/Units/Velocity.php | 13 +- app/Support/Units/Volume.php | 13 +- app/Support/Utils.php | 5 +- app/Support/VmsRepositoryType.php | 130 - app/Utils/IdMapper.php | 6 +- bin/console | 17 + bin/cron | 2 +- bootstrap/application.php | 2 +- composer.json | 105 +- composer.lock | 4353 +++++++++-------- config/app.php | 9 +- config/captcha.php | 23 - config/database.php | 5 +- config/phpvms.php | 13 +- docker-compose.dev.yml | 56 + docker-compose.local.yml | 31 - docker-compose.yml | 1 - phpunit.xml | 5 + public/index.php | 18 +- resources/docker/php/Dockerfile | 16 - resources/stubs/installer/env.stub | 1 - .../views/admin/dashboard/index.blade.php | 11 +- .../views/admin/dashboard/news.blade.php | 64 +- resources/views/admin/pireps/fields.blade.php | 30 + .../views/admin/pireps/show_fields.blade.php | 4 + resources/views/layouts/default/app.blade.php | 9 +- .../layouts/default/auth/register.blade.php | 17 +- .../layouts/default/downloads/table.blade.php | 6 +- .../default/widgets/latest_news.blade.php | 2 +- .../notifications/mail/news/news.blade.php | 2 +- symfony.lock | 622 +++ tests/AcarsTest.php | 115 +- tests/AirlineTest.php | 12 +- tests/ApiTest.php | 75 +- tests/AwardsTest.php | 12 +- tests/BidTest.php | 20 +- tests/CronTest.php | 4 +- tests/FinanceTest.php | 143 +- tests/FlightTest.php | 145 +- tests/GeoTest.php | 2 +- tests/ImporterTest.php | 55 +- tests/NewsTest.php | 4 +- tests/PIREPTest.php | 135 +- tests/RegistrationTest.php | 2 +- tests/SimBriefTest.php | 12 +- tests/SubfleetTest.php | 2 +- tests/TestCase.php | 7 + tests/TestData.php | 22 +- tests/UserTest.php | 47 +- tests/UtilsTest.php | 46 + 340 files changed, 6130 insertions(+), 4502 deletions(-) create mode 100644 app/Contracts/Factory.php create mode 100644 app/Database/factories/AwardFactory.php delete mode 100644 app/Database/factories/AwardsFactory.php create mode 100644 app/Database/factories/SimBriefFactory.php delete mode 100644 app/Database/factories/SimbriefFactory.php create mode 100644 app/Database/migrations/2022_03_09_152342_ignore_admin_activity_checks.php create mode 100644 app/Exceptions/PirepNotFound.php create mode 100644 app/Models/Casts/CarbonCast.php create mode 100644 app/Models/Casts/CommaDelimitedCast.php create mode 100644 app/Models/Casts/DistanceCast.php create mode 100644 app/Models/Casts/FuelCast.php create mode 100644 app/Models/Casts/MoneyCast.php delete mode 100644 app/Support/Discord.php delete mode 100644 app/Support/VmsRepositoryType.php create mode 100755 bin/console delete mode 100644 config/captcha.php create mode 100644 docker-compose.dev.yml delete mode 100644 docker-compose.local.yml delete mode 100644 resources/docker/php/Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cb720820..79a46105 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: true matrix: - php-versions: ['7.3', '7.4', '8.0', '8.1'] + php-versions: ['8.0', '8.1'] name: PHP ${{ matrix.php-versions }} env: extensions: intl, pcov, mbstring @@ -69,6 +69,7 @@ jobs: run: | php --version mysql --version + sleep 15 # Downgrade composer version to 1.x composer install --dev --no-interaction --verbose cp .github/scripts/env.php env.php @@ -87,7 +88,7 @@ jobs: artifacts: name: 'Create dev build' needs: build - runs-on: 'ubuntu-18.04' + runs-on: ubuntu-20.04 if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/dev' steps: - name: Checkout @@ -96,7 +97,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.0' - uses: olegtarasov/get-tag@v2.1 id: tagName @@ -149,7 +150,7 @@ jobs: release: name: 'Create Release' needs: build - runs-on: 'ubuntu-18.04' + runs-on: ubuntu-20.04 if: startsWith(github.ref, 'refs/tags/') steps: - name: Checkout @@ -158,7 +159,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: 8.0 - uses: olegtarasov/get-tag@v2.1 id: tagName diff --git a/.gitignore b/.gitignore index 8fc2e6a4..dd6a6ef1 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ storage/*.sqlite .env.*.php .env.php .env +.env.* .env.bak env.php .env.generated @@ -77,3 +78,13 @@ error_log /config.bak.php /VERSION sync.sh + +###> friendsofphp/php-cs-fixer ### +/.php-cs-fixer.php +/.php-cs-fixer.cache +###< friendsofphp/php-cs-fixer ### + +###> phpunit/phpunit ### +/phpunit.xml +.phpunit.result.cache +###< phpunit/phpunit ### diff --git a/Dockerfile b/Dockerfile index 89db36f4..5c202290 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,15 @@ -FROM php:8.0.9-fpm-alpine3.14 +FROM php:8.1-fpm-alpine3.15 WORKDIR /var/www/ # Setup composer -COPY --from=composer:2.1.5 /usr/bin/composer /usr/local/bin/composer +COPY --from=composer:2.2.7 /usr/bin/composer /usr/local/bin/composer RUN apk add gmp-dev icu-dev zlib-dev libpng-dev libzip-dev zip -RUN curl --silent --show-error https://getcomposer.org/installer | php # Copy any config files in COPY resources/docker/php/ext-opcache.ini $PHP_INI_DIR/conf.d/ COPY resources/docker/php/www.conf /usr/local/etc/php-fpm.d/www.conf -RUN ln -sf /dev/stderr /var/log/fpm-error.log RUN docker-php-ext-install \ calendar \ @@ -22,7 +20,7 @@ RUN docker-php-ext-install \ bcmath \ opcache \ zip && \ - docker-php-ext-enable pdo_mysql opcache bcmath zip + docker-php-ext-enable pdo_mysql opcache bcmath zip intl COPY . /var/www/ RUN composer install \ diff --git a/Makefile b/Makefile index 7f3c233a..dcdf3259 100644 --- a/Makefile +++ b/Makefile @@ -80,7 +80,7 @@ test: .PHONY: phpcs phpcs: - @vendor/bin/php-cs-fixer fix --config=.php_cs -v --diff --diff-format=udiff --dry-run + @PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.php -v --dry-run --diff --using-cache=no .PHONY: replay-acars replay-acars: @@ -102,7 +102,7 @@ reset-installer: .PHONY: docker-test docker-test: - @docker compose -f docker-compose.yml -f docker-compose.local.yml up + @docker compose -f docker-compose.local.yml up .PHONY: docker-clean docker-clean: diff --git a/README.md b/README.md index 1d298344..a37b86d7 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A full distribution, with all of the composer dependencies, is available at this ### Requirements -- PHP 7.3+, extensions: +- PHP 8.0+, extensions: - cURL - JSON - mbstring diff --git a/app/Console/Commands/AcarsReplay.php b/app/Console/Commands/AcarsReplay.php index 2734bb00..1f5d80b0 100644 --- a/app/Console/Commands/AcarsReplay.php +++ b/app/Console/Commands/AcarsReplay.php @@ -17,25 +17,25 @@ class AcarsReplay extends Command * * @var string */ - protected $apiKey = 'testadminapikey'; + protected string $apiKey = 'testadminapikey'; /** * For automatic updates, how many seconds to sleep between updates * * @var int */ - protected $sleepTime = 10; + protected int $sleepTime = 10; /** * @var array key == update[callsign] * value == PIREP ID */ - protected $pirepList = []; + protected array $pirepList = []; /** * @var Client */ - protected $httpClient; + protected Client $httpClient; /** * Return an instance of an HTTP client all ready to post diff --git a/app/Console/Commands/CreateConfigs.php b/app/Console/Commands/CreateConfigs.php index 835a9461..d3c4ad29 100644 --- a/app/Console/Commands/CreateConfigs.php +++ b/app/Console/Commands/CreateConfigs.php @@ -2,11 +2,11 @@ namespace App\Console\Commands; -use App; use App\Contracts\Command; use App\Services\Installer\ConfigService; use App\Services\Installer\SeederService; use DatabaseSeeder; +use Illuminate\Support\Facades\App; /** * Create the config files @@ -16,8 +16,8 @@ class CreateConfigs extends Command protected $signature = 'phpvms:config {db_host} {db_name} {db_user} {db_pass}'; protected $description = 'Create the config files'; - private $databaseSeeder; - private $seederSvc; + private DatabaseSeeder $databaseSeeder; + private SeederService $seederSvc; public function __construct(DatabaseSeeder $databaseSeeder, SeederService $seederSvc) { diff --git a/app/Console/Commands/CreateDatabase.php b/app/Console/Commands/CreateDatabase.php index 6d4141a8..9eb7baed 100644 --- a/app/Console/Commands/CreateDatabase.php +++ b/app/Console/Commands/CreateDatabase.php @@ -11,7 +11,11 @@ class CreateDatabase extends Command { protected $signature = 'database:create {--reset} {--migrate} {--conn=?}'; protected $description = 'Create a database'; - protected $os; + + /** + * @var Detector + */ + protected Detector $os; /** * CreateDatabase constructor. diff --git a/app/Console/Commands/DevCommands.php b/app/Console/Commands/DevCommands.php index dc5cfe2f..1912ce2b 100644 --- a/app/Console/Commands/DevCommands.php +++ b/app/Console/Commands/DevCommands.php @@ -24,7 +24,8 @@ class DevCommands extends Command { protected $signature = 'phpvms {cmd} {param?}'; protected $description = 'Developer commands'; - protected $dbSvc; + + protected DatabaseService $dbSvc; /** * DevCommands constructor. diff --git a/app/Console/Commands/DevInstall.php b/app/Console/Commands/DevInstall.php index 6d5d748a..f623d105 100644 --- a/app/Console/Commands/DevInstall.php +++ b/app/Console/Commands/DevInstall.php @@ -13,7 +13,7 @@ class DevInstall extends Command protected $signature = 'phpvms:dev-install {--reset-db} {--reset-configs}'; protected $description = 'Run a developer install and run the sample migration'; - private $databaseSeeder; + private \DatabaseSeeder $databaseSeeder; public function __construct(\DatabaseSeeder $databaseSeeder) { diff --git a/app/Console/Commands/ImportCsv.php b/app/Console/Commands/ImportCsv.php index feb18501..c0ce3149 100644 --- a/app/Console/Commands/ImportCsv.php +++ b/app/Console/Commands/ImportCsv.php @@ -10,7 +10,7 @@ class ImportCsv extends Command protected $signature = 'phpvms:csv-import {type} {file}'; protected $description = 'Import from a CSV file'; - private $importer; + private ImportService $importer; /** * Import constructor. diff --git a/app/Console/Commands/ProcessQueue.php b/app/Console/Commands/ProcessQueue.php index 4bd8ab5e..c0132f6f 100644 --- a/app/Console/Commands/ProcessQueue.php +++ b/app/Console/Commands/ProcessQueue.php @@ -18,7 +18,7 @@ class ProcessQueue extends Command public function handle() { Artisan::call('queue:work', [ - '--sansdaemon' => null, + //'--sansdaemon' => null, '--stop-when-empty' => null, ]); diff --git a/app/Console/Commands/TestApi.php b/app/Console/Commands/TestApi.php index 9f80d81a..f2059bc9 100644 --- a/app/Console/Commands/TestApi.php +++ b/app/Console/Commands/TestApi.php @@ -8,7 +8,11 @@ use GuzzleHttp\Client; class TestApi extends Command { protected $signature = 'phpvms:test-api {apikey} {url}'; - protected $httpClient; + + /** + * @var Client + */ + protected Client $httpClient; /** * Run dev related commands diff --git a/app/Console/Commands/Version.php b/app/Console/Commands/Version.php index bbe271b6..2a5b9b84 100644 --- a/app/Console/Commands/Version.php +++ b/app/Console/Commands/Version.php @@ -10,8 +10,14 @@ class Version extends Command { protected $signature = 'phpvms:version {--write} {--base-only} {--write-full-version} {version?}'; - private $versionSvc; + /** + * @var VersionService + */ + private VersionService $versionSvc; + /** + * @param VersionService $versionSvc + */ public function __construct(VersionService $versionSvc) { parent::__construct(); diff --git a/app/Console/Commands/YamlImport.php b/app/Console/Commands/YamlImport.php index 13ac1751..e8e25b4c 100644 --- a/app/Console/Commands/YamlImport.php +++ b/app/Console/Commands/YamlImport.php @@ -12,7 +12,11 @@ class YamlImport extends Command { protected $signature = 'phpvms:yaml-import {files*}'; protected $description = 'Developer commands'; - protected $dbSvc; + + /** + * @var DatabaseService + */ + protected DatabaseService $dbSvc; /** * YamlImport constructor. diff --git a/app/Contracts/Award.php b/app/Contracts/Award.php index 0ca323d0..cb3ae159 100644 --- a/app/Contracts/Award.php +++ b/app/Contracts/Award.php @@ -37,10 +37,10 @@ abstract class Award */ /** @var \App\Models\Award|null */ - protected $award; + protected ?AwardModel $award; /** @var \App\Models\User|null */ - protected $user; + protected ?User $user; public function __construct(AwardModel $award = null, User $user = null) { @@ -69,9 +69,9 @@ abstract class Award /** * Add the award to this user, if they don't already have it * - * @return bool|UserAward + * @return bool|UserAward|null */ - protected function addAward() + protected function addAward(): bool|UserAward|null { $w = [ 'user_id' => $this->user->id, diff --git a/app/Contracts/Controller.php b/app/Contracts/Controller.php index 6f1ee8c1..e55a5b6e 100755 --- a/app/Contracts/Controller.php +++ b/app/Contracts/Controller.php @@ -84,6 +84,7 @@ abstract class Controller extends \Illuminate\Routing\Controller * * @param $message * @param null|mixed $count + * @param mixed $attrs * * @return \Illuminate\Http\JsonResponse */ diff --git a/app/Contracts/Enum.php b/app/Contracts/Enum.php index 5d3c93cb..507cfc2f 100644 --- a/app/Contracts/Enum.php +++ b/app/Contracts/Enum.php @@ -7,14 +7,14 @@ namespace App\Contracts; */ abstract class Enum { - protected static $cache = []; - protected static $codes = []; - protected static $labels = []; + protected static array $cache = []; + protected static array $codes = []; + protected static array $labels = []; /** * @var int */ - protected $value; + protected int $value; /** * Create an instance of this Enum @@ -29,9 +29,9 @@ abstract class Enum /** * Return the value that's been set if this is an instance * - * @return mixed + * @return int|null */ - final public function getValue() + final public function getValue(): ?int { return $this->value; } @@ -41,9 +41,9 @@ abstract class Enum * * @param $value * - * @return mixed + * @return string */ - final public static function label($value) + final public static function label($value): string { if (isset(static::$labels[$value])) { $val = static::$labels[$value]; @@ -53,6 +53,8 @@ abstract class Enum return $val; } + + return $value; } /** @@ -87,11 +89,11 @@ abstract class Enum * * @return false|int|string */ - public static function convertToCode($value) + public static function convertToCode($value): bool|int|string|null { $value = (int) $value; if (!array_key_exists($value, static::$codes)) { - return; + return null; } return static::$codes[$value]; diff --git a/app/Contracts/Factory.php b/app/Contracts/Factory.php new file mode 100644 index 00000000..d308d820 --- /dev/null +++ b/app/Contracts/Factory.php @@ -0,0 +1,9 @@ +query('page', 1); $results = $this->model->{$method}($limit, $columns, 'page', $page); - $results->appends(app('request')->query()); + + $qs = request()->except(['page', 'user']); + $results->appends($qs); + $this->resetModel(); return $this->parserResult($results); diff --git a/app/Contracts/Unit.php b/app/Contracts/Unit.php index 124cb299..db631392 100644 --- a/app/Contracts/Unit.php +++ b/app/Contracts/Unit.php @@ -3,7 +3,6 @@ namespace App\Contracts; use ArrayAccess; -use PhpUnitsOfMeasure\Exception\UnknownUnitOfMeasure; /** * Abstract unit wrapper @@ -11,45 +10,89 @@ use PhpUnitsOfMeasure\Exception\UnknownUnitOfMeasure; class Unit implements ArrayAccess { /** - * The unit this is kept as + * The localized unit the user wants it displayed in */ - public $unit; + public string $localUnit; /** - * All of the units of this class + * The unit that this value is stored in locally */ - public $units; + public string $internalUnit; + + /** + * All of the units of this class which are reported in an API response + */ + public array $units; /** * Holds an instance of the PhpUnit type - * - * @var \PhpUnitsOfMeasure\AbstractPhysicalQuantity */ - protected $instance; + protected mixed $instance; /** * Units that are included as part of the REST response */ - public $responseUnits = []; + public array $responseUnits = []; /** - * @return mixed + * Factory method for creating a new unit type + * + * @param mixed $value + * @param string $unit + * + * @throws \Exception + * + * @return Unit */ - public function value() + public static function make(mixed $value, string $unit): self { - return $this->__toString(); + if ($value instanceof self) { + return $value; + } + + return new static($value, $unit); + } + + /** + * Return the value in an internal format + * + * @param int|null $round Optional value to round to + * + * @return float|null + */ + public function internal(?int $round = null): ?float + { + return $this->toUnit($this->internalUnit, $round); + } + + /** + * Return the value in the localized format + * + * @param int|null $round Optional value to round to + * + * @return float|null + */ + public function local(?int $round = null): ?float + { + return $this->toUnit($this->localUnit, $round); } /** * Just call toUnit() on the PhpUnitOfMeasure instance * - * @param string $unit + * @param string $unit + * @param int|null $round Optional value to round to * - * @return mixed + * @return float|null */ - public function toUnit($unit) + public function toUnit(string $unit, ?int $round = null): ?float { - return $this->instance->toUnit($unit); + $val = $this->instance->toUnit($unit); + if ($round === null) { + return $val; + } + + return round($val, $round); } /** @@ -59,7 +102,7 @@ class Unit implements ArrayAccess { $response = []; foreach ($this->responseUnits as $unit) { - $response[$unit] = $this[$unit] ?? 0; + $response[$unit] = round($this->instance->toUnit($unit), 2); } return $response; @@ -72,7 +115,7 @@ class Unit implements ArrayAccess * * @return bool */ - public function offsetExists($offset) + public function offsetExists($offset): bool { return $this->offsetGet($offset) !== null; } @@ -80,19 +123,15 @@ class Unit implements ArrayAccess /** * Implements ArrayAccess * - * @param $offset + * @param $unit * - * @return mixed + * @return float|null */ - public function offsetGet($offset) + public function offsetGet($unit): ?float { - try { - $value = $this->instance->toUnit($offset); - if (!$value) { - return; - } - } catch (UnknownUnitOfMeasure $e) { - return; + $value = $this->instance->toUnit($unit); + if (!$value) { + return null; } return round($value, 2); @@ -124,6 +163,6 @@ class Unit implements ArrayAccess */ public function __toString() { - return (string) $this->offsetGet($this->unit); + return (string) $this->offsetGet($this->localUnit); } } diff --git a/app/Cron/Hourly/ClearExpiredSimbrief.php b/app/Cron/Hourly/ClearExpiredSimbrief.php index 321b14e5..7f36fb2a 100644 --- a/app/Cron/Hourly/ClearExpiredSimbrief.php +++ b/app/Cron/Hourly/ClearExpiredSimbrief.php @@ -12,7 +12,7 @@ use Illuminate\Support\Facades\Log; */ class ClearExpiredSimbrief extends Listener { - private $simbriefSvc; + private SimBriefService $simbriefSvc; public function __construct(SimBriefService $simbriefSvc) { diff --git a/app/Cron/Monthly/ApplyExpenses.php b/app/Cron/Monthly/ApplyExpenses.php index d8ccbc4b..99391811 100644 --- a/app/Cron/Monthly/ApplyExpenses.php +++ b/app/Cron/Monthly/ApplyExpenses.php @@ -13,7 +13,7 @@ use Illuminate\Support\Facades\Log; */ class ApplyExpenses extends Listener { - private $financeSvc; + private RecurringFinanceService $financeSvc; /** * ApplyExpenses constructor. diff --git a/app/Cron/Nightly/ApplyExpenses.php b/app/Cron/Nightly/ApplyExpenses.php index 7b371eca..153d64ff 100644 --- a/app/Cron/Nightly/ApplyExpenses.php +++ b/app/Cron/Nightly/ApplyExpenses.php @@ -13,7 +13,7 @@ use Illuminate\Support\Facades\Log; */ class ApplyExpenses extends Listener { - private $financeSvc; + private RecurringFinanceService $financeSvc; /** * ApplyExpenses constructor. diff --git a/app/Cron/Nightly/NewVersionCheck.php b/app/Cron/Nightly/NewVersionCheck.php index 7a4284c6..c8a2efeb 100644 --- a/app/Cron/Nightly/NewVersionCheck.php +++ b/app/Cron/Nightly/NewVersionCheck.php @@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Log; class NewVersionCheck extends Listener { - private $versionSvc; + private VersionService $versionSvc; /** * @param VersionService $versionSvc diff --git a/app/Cron/Nightly/PilotLeave.php b/app/Cron/Nightly/PilotLeave.php index 32882fe0..1d4a9cf8 100644 --- a/app/Cron/Nightly/PilotLeave.php +++ b/app/Cron/Nightly/PilotLeave.php @@ -12,7 +12,7 @@ use Illuminate\Support\Facades\Log; */ class PilotLeave extends Listener { - private $userSvc; + private UserService $userSvc; /** * PilotLeave constructor. diff --git a/app/Cron/Nightly/RecalculateBalances.php b/app/Cron/Nightly/RecalculateBalances.php index 76bb99d5..84eb813f 100644 --- a/app/Cron/Nightly/RecalculateBalances.php +++ b/app/Cron/Nightly/RecalculateBalances.php @@ -6,14 +6,14 @@ use App\Contracts\Listener; use App\Events\CronNightly; use App\Models\Journal; use App\Repositories\JournalRepository; -use Log; +use Illuminate\Support\Facades\Log; /** * This recalculates the balances on all of the journals */ class RecalculateBalances extends Listener { - private $journalRepo; + private JournalRepository $journalRepo; /** * Nightly constructor. diff --git a/app/Cron/Nightly/RecalculateStats.php b/app/Cron/Nightly/RecalculateStats.php index 1fd1fd2b..8db38e6f 100644 --- a/app/Cron/Nightly/RecalculateStats.php +++ b/app/Cron/Nightly/RecalculateStats.php @@ -13,8 +13,8 @@ use Illuminate\Support\Facades\Log; */ class RecalculateStats extends Listener { - private $aircraftSvc; - private $userSvc; + private AircraftService $aircraftSvc; + private UserService $userSvc; public function __construct(AircraftService $aircraftSvc, UserService $userSvc) { diff --git a/app/Database/factories/AcarsFactory.php b/app/Database/factories/AcarsFactory.php index 129f1731..af4cdcbe 100644 --- a/app/Database/factories/AcarsFactory.php +++ b/app/Database/factories/AcarsFactory.php @@ -1,23 +1,43 @@ define(App\Models\Acars::class, function (Faker $faker) { - return [ - 'id' => null, - 'pirep_id' => null, - 'log' => $faker->text(100), - 'lat' => $faker->latitude, - 'lon' => $faker->longitude, - 'distance' => $faker->randomFloat(2, 0, 6000), - 'heading' => $faker->numberBetween(0, 359), - 'altitude' => $faker->numberBetween(20, 400), - 'vs' => $faker->numberBetween(-5000, 5000), - 'gs' => $faker->numberBetween(300, 500), - 'transponder' => $faker->numberBetween(200, 9999), - 'autopilot' => $faker->text(10), - 'fuel' => $faker->randomFloat(2, 100, 1000), - 'fuel_flow' => $faker->randomFloat(2, 100, 1000), - 'sim_time' => $faker->dateTime('now', 'UTC'), - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Acars; +use DateTime; + +class AcarsFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Acars::class; + + /** + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'pirep_id' => null, + 'log' => $this->faker->text(100), + 'lat' => $this->faker->latitude, + 'lon' => $this->faker->longitude, + 'distance' => $this->faker->randomFloat(2, 0, 6000), + 'heading' => $this->faker->numberBetween(0, 359), + 'altitude' => $this->faker->numberBetween(20, 400), + 'vs' => $this->faker->numberBetween(-5000, 5000), + 'gs' => $this->faker->numberBetween(300, 500), + 'transponder' => $this->faker->numberBetween(200, 9999), + 'autopilot' => $this->faker->text(10), + 'fuel' => $this->faker->randomFloat(2, 100, 1000), + 'fuel_flow' => $this->faker->randomFloat(2, 100, 1000), + 'sim_time' => $this->faker->dateTime('now', 'UTC')->format(DateTime::ATOM), + ]; + } +} diff --git a/app/Database/factories/AircraftFactory.php b/app/Database/factories/AircraftFactory.php index a2bbefb8..dcd59c0a 100644 --- a/app/Database/factories/AircraftFactory.php +++ b/app/Database/factories/AircraftFactory.php @@ -1,33 +1,51 @@ define(App\Models\Aircraft::class, function (Faker $faker) { - return [ - 'id' => null, - 'subfleet_id' => function () { - return factory(Subfleet::class)->create()->id; - }, - 'airport_id' => function () { - return factory(Airport::class)->create()->id; - }, - 'iata' => $faker->unique()->text(5), - 'icao' => $faker->unique()->text(5), - 'name' => $faker->text(50), - 'registration' => $faker->unique()->text(10), - 'hex_code' => ICAO::createHexCode(), - 'mtow' => $faker->randomFloat(2, 0, 50000), - 'zfw' => $faker->randomFloat(2, 0, 50000), - 'status' => AircraftStatus::ACTIVE, - 'state' => AircraftState::PARKED, - 'created_at' => $faker->dateTimeBetween('-1 week', 'now'), - 'updated_at' => function (array $pirep) { - return $pirep['created_at']; - }, - ]; -}); +class AircraftFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Aircraft::class; + + /** + * Define the model's default state. + * + * @throws \Exception + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'subfleet_id' => fn () => Subfleet::factory()->create()->id, + 'airport_id' => fn () => Airport::factory()->create()->id, + 'iata' => $this->faker->unique()->text(5), + 'icao' => $this->faker->unique()->text(5), + 'name' => $this->faker->text(50), + 'registration' => $this->faker->unique()->text(10), + 'hex_code' => ICAO::createHexCode(), + 'mtow' => $this->faker->randomFloat(2, 0, 50000), + 'zfw' => $this->faker->randomFloat(2, 0, 50000), + 'status' => AircraftStatus::ACTIVE, + 'state' => AircraftState::PARKED, + 'created_at' => $this->faker->dateTimeBetween('-1 week')->format(DateTime::ATOM), + 'updated_at' => fn (array $pirep) => $pirep['created_at'], + ]; + } +} diff --git a/app/Database/factories/AirlineFactory.php b/app/Database/factories/AirlineFactory.php index 62525ee7..27dae847 100644 --- a/app/Database/factories/AirlineFactory.php +++ b/app/Database/factories/AirlineFactory.php @@ -1,25 +1,41 @@ define(App\Models\Airline::class, function (Faker $faker) { - return [ - 'id' => null, - 'icao' => function (array $apt) { - $hashids = new Hashids(microtime(), 5); - $mt = str_replace('.', '', microtime(true)); +class AirlineFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Airline::class; - return $hashids->encode($mt); - }, - 'iata' => function (array $apt) { - return $apt['icao']; - }, - 'name' => $faker->sentence(3), - 'country' => $faker->country, - 'active' => 1, - ]; -}); + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'icao' => function (array $apt): string { + $hashids = new Hashids(microtime(), 5); + $mt = str_replace('.', '', microtime(true)); + + return $hashids->encode($mt); + }, + 'iata' => fn (array $apt) => $apt['icao'], + 'name' => $this->faker->sentence(3), + 'country' => $this->faker->country, + 'active' => 1, + ]; + } +} diff --git a/app/Database/factories/AirportFactory.php b/app/Database/factories/AirportFactory.php index af7de5c4..a5abc08e 100644 --- a/app/Database/factories/AirportFactory.php +++ b/app/Database/factories/AirportFactory.php @@ -1,12 +1,31 @@ + */ + public function definition(): array + { + return [ + 'id' => function () { + do { + $airport = $this->createFactoryICAO(); + } while (in_array($airport, $this->usedIcaos, true)); + + return $airport; + }, + 'icao' => fn (array $apt) => $apt['id'], + 'iata' => fn (array $apt) => $apt['id'], + 'name' => $this->faker->sentence(3), + 'country' => $this->faker->country, + 'timezone' => $this->faker->timezone, + 'lat' => $this->faker->latitude, + 'lon' => $this->faker->longitude, + 'hub' => false, + 'ground_handling_cost' => $this->faker->randomFloat(2, 0, 500), + 'fuel_100ll_cost' => $this->faker->randomFloat(2, 1, 10), + 'fuel_jeta_cost' => $this->faker->randomFloat(2, 1, 10), + 'fuel_mogas_cost' => $this->faker->randomFloat(2, 1, 10), + ]; + } } - -/* - * Add any number of airports. Don't really care if they're real or not - */ -$factory->define(App\Models\Airport::class, function (Faker $faker) { - $usedIcaos = []; - - return [ - 'id' => function () use ($usedIcaos) { - do { - $airport = createFactoryICAO(); - } while (in_array($airport, $usedIcaos, true)); - - return $airport; - }, - 'icao' => function (array $apt) { - return $apt['id']; - }, - 'iata' => function (array $apt) { - return $apt['id']; - }, - 'name' => $faker->sentence(3), - 'country' => $faker->country, - 'timezone' => $faker->timezone, - 'lat' => $faker->latitude, - 'lon' => $faker->longitude, - 'hub' => false, - 'ground_handling_cost' => $faker->randomFloat(2, 0, 500), - 'fuel_100ll_cost' => $faker->randomFloat(2, 1, 10), - 'fuel_jeta_cost' => $faker->randomFloat(2, 1, 10), - 'fuel_mogas_cost' => $faker->randomFloat(2, 1, 10), - ]; -}); diff --git a/app/Database/factories/AwardFactory.php b/app/Database/factories/AwardFactory.php new file mode 100644 index 00000000..b9365d06 --- /dev/null +++ b/app/Database/factories/AwardFactory.php @@ -0,0 +1,34 @@ + + */ + public function definition(): array + { + return [ + 'id' => null, + 'name' => $this->faker->name, + 'description' => $this->faker->text(10), + 'ref_model' => null, + 'ref_model_params' => null, + ]; + } +} diff --git a/app/Database/factories/AwardsFactory.php b/app/Database/factories/AwardsFactory.php deleted file mode 100644 index 20297523..00000000 --- a/app/Database/factories/AwardsFactory.php +++ /dev/null @@ -1,13 +0,0 @@ -define(App\Models\Award::class, function (Faker $faker) { - return [ - 'id' => null, - 'name' => $faker->name, - 'description' => $faker->text(10), - 'ref_model' => null, - 'ref_model_params' => null, - ]; -}); diff --git a/app/Database/factories/ExpenseFactory.php b/app/Database/factories/ExpenseFactory.php index 6f78438d..f8b65daf 100644 --- a/app/Database/factories/ExpenseFactory.php +++ b/app/Database/factories/ExpenseFactory.php @@ -1,18 +1,39 @@ define(App\Models\Expense::class, function (Faker $faker) { - return [ - 'id' => null, - 'airline_id' => null, - 'name' => $faker->text(20), - 'amount' => $faker->randomFloat(2, 100, 1000), - 'type' => ExpenseType::FLIGHT, - 'multiplier' => false, - 'ref_model' => \App\Models\Expense::class, - 'ref_model_id' => null, - 'active' => true, - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Enums\ExpenseType; +use App\Models\Expense; + +class ExpenseFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Expense::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'airline_id' => null, + 'name' => $this->faker->text(20), + 'amount' => $this->faker->randomFloat(2, 100, 1000), + 'type' => ExpenseType::FLIGHT, + 'multiplier' => false, + 'ref_model' => \App\Models\Expense::class, + 'ref_model_id' => null, + 'active' => true, + ]; + } +} diff --git a/app/Database/factories/FareFactory.php b/app/Database/factories/FareFactory.php index 56e8ee78..9a29f20b 100644 --- a/app/Database/factories/FareFactory.php +++ b/app/Database/factories/FareFactory.php @@ -1,16 +1,35 @@ define(App\Models\Fare::class, function (Faker $faker) { - return [ - 'id' => null, - 'code' => $faker->unique()->text(50), - 'name' => $faker->text(50), - 'price' => $faker->randomFloat(2, 100, 1000), - 'cost' => function (array $fare) { - return round($fare['price'] / 2); - }, - 'capacity' => $faker->randomFloat(0, 20, 500), - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Fare; + +class FareFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Fare::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'code' => $this->faker->unique()->text(50), + 'name' => $this->faker->text(50), + 'price' => $this->faker->randomFloat(2, 100, 1000), + 'cost' => fn (array $fare) => round($fare['price'] / 2), + 'capacity' => $this->faker->randomFloat(0, 20, 500), + ]; + } +} diff --git a/app/Database/factories/FlightFactory.php b/app/Database/factories/FlightFactory.php index c8b5aaed..2a1b964d 100644 --- a/app/Database/factories/FlightFactory.php +++ b/app/Database/factories/FlightFactory.php @@ -1,44 +1,58 @@ define(App\Models\Flight::class, function (Faker $faker) { - return [ - 'id' => $faker->unique()->numberBetween(10, 10000000), - 'airline_id' => function () { - return factory(\App\Models\Airline::class)->create()->id; - }, - 'flight_number' => $faker->unique()->numberBetween(10, 1000000), - 'route_code' => $faker->randomElement(['', $faker->text(5)]), - 'route_leg' => $faker->randomElement(['', $faker->numberBetween(0, 1000)]), - 'dpt_airport_id' => function () { - return factory(\App\Models\Airport::class)->create()->id; - }, - 'arr_airport_id' => function () { - return factory(\App\Models\Airport::class)->create()->id; - }, - 'alt_airport_id' => function () { - return factory(\App\Models\Airport::class)->create()->id; - }, - 'distance' => $faker->numberBetween(1, 1000), - 'route' => null, - 'level' => 0, - 'dpt_time' => $faker->time(), - 'arr_time' => $faker->time(), - 'flight_time' => $faker->numberBetween(60, 360), - 'load_factor' => $faker->randomElement([15, 20, 50, 90, 100]), - 'load_factor_variance' => $faker->randomElement([15, 20, 50, 90, 100]), - 'has_bid' => false, - 'active' => true, - 'visible' => true, - 'days' => 0, - 'start_date' => null, - 'end_date' => null, - 'created_at' => $faker->dateTimeBetween('-1 week', 'now'), - 'updated_at' => static function (array $flight) { - return $flight['created_at']; - }, - ]; -}); +/** @noinspection PhpIllegalPsrClassPathInspection */ + +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Flight; +use DateTime; + +class FlightFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Flight::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => $this->faker->unique()->numberBetween(10, 10000000), + 'airline_id' => fn () => \App\Models\Airline::factory()->create()->id, + 'flight_number' => $this->faker->unique()->numberBetween(10, 1000000), + 'route_code' => $this->faker->randomElement(['', $this->faker->text(5)]), + 'route_leg' => $this->faker->randomElement( + ['', $this->faker->numberBetween(0, 1000)] + ), + 'dpt_airport_id' => static fn () => \App\Models\Airport::factory()->create()->id, + 'arr_airport_id' => static fn () => \App\Models\Airport::factory()->create()->id, + 'alt_airport_id' => static fn () => \App\Models\Airport::factory()->create()->id, + 'distance' => $this->faker->numberBetween(1, 1000), + 'route' => null, + 'level' => 0, + 'dpt_time' => $this->faker->time(), + 'arr_time' => $this->faker->time(), + 'flight_time' => $this->faker->numberBetween(60, 360), + 'load_factor' => $this->faker->randomElement([15, 20, 50, 90, 100]), + 'load_factor_variance' => $this->faker->randomElement([15, 20, 50, 90, 100]), + 'has_bid' => false, + 'active' => true, + 'visible' => true, + 'days' => 0, + 'start_date' => null, + 'end_date' => null, + 'created_at' => $this->faker->dateTimeBetween('-1 week')->format( + DateTime::ATOM + ), + 'updated_at' => static fn (array $flight) => $flight['created_at'], + ]; + } +} diff --git a/app/Database/factories/JournalFactory.php b/app/Database/factories/JournalFactory.php index c4d4d6ee..89d7b6f7 100644 --- a/app/Database/factories/JournalFactory.php +++ b/app/Database/factories/JournalFactory.php @@ -1,9 +1,30 @@ define(App\Models\Journal::class, function (Faker $faker) { - return [ - 'currency' => 'USD', - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Journal; + +class JournalFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Journal::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'currency' => 'USD', + ]; + } +} diff --git a/app/Database/factories/JournalTransactionsFactory.php b/app/Database/factories/JournalTransactionsFactory.php index d79a2c5b..3bb423fb 100644 --- a/app/Database/factories/JournalTransactionsFactory.php +++ b/app/Database/factories/JournalTransactionsFactory.php @@ -1,20 +1,39 @@ define(App\Models\JournalTransaction::class, function (Faker $faker) { - return [ - 'transaction_group' => Uuid::uuid4()->toString(), - 'journal_id' => function () { - return factory(Journal::class)->create()->id; - }, - 'credit' => $faker->numberBetween(100, 10000), - 'debit' => $faker->numberBetween(100, 10000), - 'currency' => 'USD', - 'memo' => $faker->sentence(6), - 'post_date' => Carbon::now('UTC'), - ]; -}); +class JournalTransactionsFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = JournalTransaction::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'transaction_group' => Uuid::uuid4()->toString(), + 'journal_id' => fn () => Journal::factory()->create()->id, + 'credit' => $this->faker->numberBetween(100, 10000), + 'debit' => $this->faker->numberBetween(100, 10000), + 'currency' => 'USD', + 'memo' => $this->faker->sentence(6), + 'post_date' => Carbon::now('UTC')->toDateTimeString(), + ]; + } +} diff --git a/app/Database/factories/NavdataFactory.php b/app/Database/factories/NavdataFactory.php index db3130ca..f3c5120f 100644 --- a/app/Database/factories/NavdataFactory.php +++ b/app/Database/factories/NavdataFactory.php @@ -1,15 +1,36 @@ define(App\Models\Navdata::class, function (Faker $faker) { - return [ - 'id' => str_replace(' ', '', str_replace('.', '', $faker->unique()->text(5))), - 'name' => str_replace('.', '', $faker->unique()->word), - 'type' => $faker->randomElement([NavaidType::VOR, NavaidType::NDB]), - 'lat' => $faker->latitude, - 'lon' => $faker->longitude, - 'freq' => $faker->randomFloat(2, 100, 1000), - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Enums\NavaidType; +use App\Models\Navdata; + +class NavdataFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Navdata::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => str_replace(' ', '', str_replace('.', '', $this->faker->unique()->text(5))), + 'name' => str_replace('.', '', $this->faker->unique()->word), + 'type' => $this->faker->randomElement([NavaidType::VOR, NavaidType::NDB]), + 'lat' => $this->faker->latitude, + 'lon' => $this->faker->longitude, + 'freq' => $this->faker->randomFloat(2, 100, 1000), + ]; + } +} diff --git a/app/Database/factories/NewsFactory.php b/app/Database/factories/NewsFactory.php index 2ddfaca9..4870b699 100644 --- a/app/Database/factories/NewsFactory.php +++ b/app/Database/factories/NewsFactory.php @@ -1,14 +1,33 @@ define(App\Models\News::class, function (Faker $faker) { - return [ - 'id' => null, - 'user_id' => function () { - return factory(\App\Models\User::class)->create()->id; - }, - 'subject' => $faker->text(), - 'body' => $faker->sentence, - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\News; + +class NewsFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = News::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'user_id' => fn () => \App\Models\User::factory()->create()->id, + 'subject' => $this->faker->text(), + 'body' => $this->faker->sentence, + ]; + } +} diff --git a/app/Database/factories/PirepFactory.php b/app/Database/factories/PirepFactory.php index 27dfb786..59d203b9 100644 --- a/app/Database/factories/PirepFactory.php +++ b/app/Database/factories/PirepFactory.php @@ -1,69 +1,74 @@ define(App\Models\Pirep::class, function (Faker $faker) { - $airline = factory(\App\Models\Airline::class)->create(); - $flight = factory(\App\Models\Flight::class)->create([ - 'airline_id' => $airline->id, - ]); +class PirepFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Pirep::class; - return [ - 'id' => $faker->unique()->numberBetween(10, 10000000), - 'airline_id' => function () use ($airline) { - return $airline->id; - }, - 'user_id' => function () { - return factory(\App\Models\User::class)->create()->id; - }, - 'aircraft_id' => function () { - return factory(\App\Models\Aircraft::class)->create()->id; - }, - 'flight_id' => function () use ($flight) { - return $flight->id; - }, - 'flight_number' => function () use ($flight) { - return $flight->flight_number; - }, - 'route_code' => null, - 'route_leg' => null, - 'dpt_airport_id' => function () use ($flight) { - return $flight->dpt_airport_id; - }, - 'arr_airport_id' => function () use ($flight) { - return $flight->arr_airport_id; - }, - 'level' => $faker->numberBetween(20, 400), - 'distance' => $faker->randomFloat(2, 0, 6000), - 'planned_distance' => $faker->randomFloat(2, 0, 6000), - 'flight_time' => $faker->numberBetween(60, 360), - 'planned_flight_time' => $faker->numberBetween(60, 360), - 'zfw' => $faker->randomFloat(2), - 'block_fuel' => $faker->randomFloat(2, 0, 1000), - 'fuel_used' => function (array $pirep) { - return round($pirep['block_fuel'] * .9, 2); // 90% of the fuel loaded was used - }, - 'block_on_time' => Carbon::now('UTC'), - 'block_off_time' => function (array $pirep) { - return $pirep['block_on_time']->subMinutes($pirep['flight_time']); - }, - 'route' => $faker->text(200), - 'notes' => $faker->text(200), - 'source' => $faker->randomElement([PirepSource::MANUAL, PirepSource::ACARS]), - 'source_name' => 'TestFactory', - 'state' => PirepState::PENDING, - 'status' => PirepStatus::SCHEDULED, - 'submitted_at' => Carbon::now('UTC')->toDateTimeString(), - 'created_at' => Carbon::now('UTC')->toDateTimeString(), - 'updated_at' => function (array $pirep) { - return $pirep['created_at']; - }, - ]; -}); + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + /** @var Airline $airline */ + $airline = Airline::factory()->create(); + + /** @var Flight $flight */ + $flight = Flight::factory()->create(['airline_id' => $airline->id]); + + return [ + 'id' => $this->faker->unique()->numberBetween(10, 10000000), + 'airline_id' => fn () => $airline->id, + 'user_id' => fn () => \App\Models\User::factory()->create()->id, + 'aircraft_id' => fn () => \App\Models\Aircraft::factory()->create()->id, + 'flight_id' => fn () => $flight->id, + 'flight_number' => fn () => $flight->flight_number, + 'route_code' => null, + 'route_leg' => null, + 'dpt_airport_id' => fn () => $flight->dpt_airport_id, + 'arr_airport_id' => fn () => $flight->arr_airport_id, + 'level' => $this->faker->numberBetween(20, 400), + 'distance' => $this->faker->randomFloat(2, 0, 6000), + 'planned_distance' => $this->faker->randomFloat(2, 0, 6000), + 'flight_time' => $this->faker->numberBetween(60, 360), + 'planned_flight_time' => $this->faker->numberBetween(60, 360), + 'zfw' => $this->faker->randomFloat(2), + 'block_fuel' => $this->faker->randomFloat(2, 0, 1000), + 'fuel_used' => fn (array $pirep) => round($pirep['block_fuel'] * .9, 2), + 'block_on_time' => Carbon::now('UTC'), + 'block_off_time' => fn (array $pirep) => $pirep['block_on_time']->subMinutes( + $pirep['flight_time'] + ), + 'route' => $this->faker->text(200), + 'notes' => $this->faker->text(200), + 'source' => $this->faker->randomElement( + [PirepSource::MANUAL, PirepSource::ACARS] + ), + 'source_name' => 'TestFactory', + 'state' => PirepState::PENDING, + 'status' => PirepStatus::SCHEDULED, + 'submitted_at' => Carbon::now('UTC')->toDateTimeString(), + 'created_at' => Carbon::now('UTC')->toDateTimeString(), + 'updated_at' => fn (array $pirep) => $pirep['created_at'], + ]; + } +} diff --git a/app/Database/factories/RankFactory.php b/app/Database/factories/RankFactory.php index 3ea3d9f4..7df98b09 100644 --- a/app/Database/factories/RankFactory.php +++ b/app/Database/factories/RankFactory.php @@ -1,23 +1,37 @@ define(App\Models\Rank::class, function (Faker $faker) { - return [ - 'id' => null, - 'name' => $faker->unique()->text(50), - 'hours' => $faker->numberBetween(10, 50), - 'acars_base_pay_rate' => $faker->numberBetween(10, 100), - 'manual_base_pay_rate' => $faker->numberBetween(10, 100), - 'auto_approve_acars' => 0, - 'auto_approve_manual' => 0, - 'auto_promote' => 0, - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Rank; + +class RankFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Rank::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'name' => $this->faker->unique()->text(50), + 'hours' => $this->faker->numberBetween(10, 50), + 'acars_base_pay_rate' => $this->faker->numberBetween(10, 100), + 'manual_base_pay_rate' => $this->faker->numberBetween(10, 100), + 'auto_approve_acars' => 0, + 'auto_approve_manual' => 0, + 'auto_promote' => 0, + ]; + } +} diff --git a/app/Database/factories/RoleFactory.php b/app/Database/factories/RoleFactory.php index 7373766b..d4645cc0 100644 --- a/app/Database/factories/RoleFactory.php +++ b/app/Database/factories/RoleFactory.php @@ -1,13 +1,34 @@ define(App\Models\Role::class, function (Faker $faker) { - return [ - 'id' => null, - 'name' => $faker->name, - 'display_name' => $faker->name, - 'read_only' => false, - 'disable_activity_checks' => $faker->boolean(), - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Role; + +class RoleFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Role::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'name' => $this->faker->name, + 'display_name' => $this->faker->name, + 'read_only' => false, + 'disable_activity_checks' => $this->faker->boolean(), + ]; + } +} diff --git a/app/Database/factories/SimBriefFactory.php b/app/Database/factories/SimBriefFactory.php new file mode 100644 index 00000000..7410d3c2 --- /dev/null +++ b/app/Database/factories/SimBriefFactory.php @@ -0,0 +1,38 @@ + + */ + public function definition() + { + return [ + 'id' => $this->faker->unique()->numberBetween(10, 10000000), + 'user_id' => null, + 'flight_id' => null, + 'pirep_id' => null, + 'acars_xml' => '', + 'ofp_xml' => '', + 'created_at' => Carbon::now('UTC')->toDateTimeString(), + 'updated_at' => fn (array $sb) => $sb['created_at'], + ]; + } +} diff --git a/app/Database/factories/SimbriefFactory.php b/app/Database/factories/SimbriefFactory.php deleted file mode 100644 index 8c5906f6..00000000 --- a/app/Database/factories/SimbriefFactory.php +++ /dev/null @@ -1,21 +0,0 @@ -define(App\Models\SimBrief::class, function (Faker $faker) { - return [ - 'id' => $faker->unique()->numberBetween(10, 10000000), - 'user_id' => null, - 'flight_id' => null, - 'pirep_id' => null, - 'acars_xml' => '', - 'ofp_xml' => '', - 'created_at' => Carbon::now('UTC')->toDateTimeString(), - 'updated_at' => function (array $sb) { - return $sb['created_at']; - }, - ]; -}); diff --git a/app/Database/factories/SubfleetFactory.php b/app/Database/factories/SubfleetFactory.php index a721be90..f5b9aa44 100644 --- a/app/Database/factories/SubfleetFactory.php +++ b/app/Database/factories/SubfleetFactory.php @@ -1,15 +1,34 @@ define(App\Models\Subfleet::class, function (Faker $faker) { - return [ - 'id' => null, - 'airline_id' => function () { - return factory(\App\Models\Airline::class)->create()->id; - }, - 'name' => $faker->unique()->text(50), - 'type' => $faker->unique()->text(7), - 'ground_handling_multiplier' => $faker->numberBetween(50, 200), - ]; -}); +namespace App\Database\Factories; + +use App\Contracts\Factory; +use App\Models\Subfleet; + +class SubfleetFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = Subfleet::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'id' => null, + 'airline_id' => fn () => \App\Models\Airline::factory()->create()->id, + 'name' => $this->faker->unique()->text(50), + 'type' => $this->faker->unique()->text(7), + 'ground_handling_multiplier' => $this->faker->numberBetween(50, 200), + ]; + } +} diff --git a/app/Database/factories/UserFactory.php b/app/Database/factories/UserFactory.php index fa27cdb6..9a0a220e 100644 --- a/app/Database/factories/UserFactory.php +++ b/app/Database/factories/UserFactory.php @@ -1,28 +1,54 @@ define(App\Models\User::class, function (Faker $faker) { - static $password; +class UserFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = User::class; - return [ - 'id' => null, - 'pilot_id' => null, - 'name' => $faker->name, - 'email' => $faker->safeEmail, - 'password' => $password ?: $password = Hash::make('secret'), - 'api_key' => $faker->sha1, - 'airline_id' => function () { - return factory(Airline::class)->create()->id; - }, - 'rank_id' => 1, - 'flights' => $faker->numberBetween(0, 1000), - 'flight_time' => $faker->numberBetween(0, 10000), - 'transfer_time' => $faker->numberBetween(0, 10000), - 'state' => UserState::ACTIVE, - 'remember_token' => $faker->unique()->text(5), - ]; -}); + /** + * @var string + */ + private static string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + if (empty(self::$password)) { + self::$password = Hash::make('secret'); + } + + return [ + 'id' => null, + 'pilot_id' => null, + 'name' => $this->faker->name, + 'email' => $this->faker->safeEmail, + 'password' => self::$password, + 'api_key' => $this->faker->sha1, + 'airline_id' => fn () => Airline::factory()->create()->id, + 'rank_id' => 1, + 'flights' => $this->faker->numberBetween(0, 1000), + 'flight_time' => $this->faker->numberBetween(0, 10000), + 'transfer_time' => $this->faker->numberBetween(0, 10000), + 'state' => UserState::ACTIVE, + 'remember_token' => $this->faker->unique()->text(5), + ]; + } +} diff --git a/app/Database/migrations/2017_06_07_014930_create_settings_table.php b/app/Database/migrations/2017_06_07_014930_create_settings_table.php index fed81ffa..d33d716e 100644 --- a/app/Database/migrations/2017_06_07_014930_create_settings_table.php +++ b/app/Database/migrations/2017_06_07_014930_create_settings_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use App\Services\Installer\SeederService; use Illuminate\Database\Schema\Blueprint; -class CreateSettingsTable extends Migration -{ +return new class() extends Migration { private $seederSvc; public function __construct() @@ -50,4 +49,4 @@ class CreateSettingsTable extends Migration { Schema::dropIfExists('settings'); } -} +}; diff --git a/app/Database/migrations/2017_06_08_0000_create_users_table.php b/app/Database/migrations/2017_06_08_0000_create_users_table.php index cfa66c1a..10e712f2 100755 --- a/app/Database/migrations/2017_06_08_0000_create_users_table.php +++ b/app/Database/migrations/2017_06_08_0000_create_users_table.php @@ -5,8 +5,7 @@ use App\Models\Pirep; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateUsersTable extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -55,4 +54,4 @@ class CreateUsersTable extends Migration { Schema::dropIfExists('users'); } -} +}; diff --git a/app/Database/migrations/2017_06_08_0001_roles_permissions_tables.php b/app/Database/migrations/2017_06_08_0001_roles_permissions_tables.php index 03d1a880..1a233bfa 100644 --- a/app/Database/migrations/2017_06_08_0001_roles_permissions_tables.php +++ b/app/Database/migrations/2017_06_08_0001_roles_permissions_tables.php @@ -2,9 +2,9 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; -class RolesPermissionsTables extends Migration -{ +return new class() extends Migration { public function up() { // Create table for storing roles @@ -82,4 +82,4 @@ class RolesPermissionsTables extends Migration Schema::dropIfExists('role_user'); Schema::dropIfExists('roles'); } -} +}; diff --git a/app/Database/migrations/2017_06_08_0005_create_password_resets_table.php b/app/Database/migrations/2017_06_08_0005_create_password_resets_table.php index a317db18..e3399f8a 100755 --- a/app/Database/migrations/2017_06_08_0005_create_password_resets_table.php +++ b/app/Database/migrations/2017_06_08_0005_create_password_resets_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreatePasswordResetsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('password_resets', function (Blueprint $table) { @@ -19,4 +18,4 @@ class CreatePasswordResetsTable extends Migration { Schema::dropIfExists('password_resets'); } -} +}; diff --git a/app/Database/migrations/2017_06_08_0006_create_sessions_table.php b/app/Database/migrations/2017_06_08_0006_create_sessions_table.php index 040ff443..6429275b 100755 --- a/app/Database/migrations/2017_06_08_0006_create_sessions_table.php +++ b/app/Database/migrations/2017_06_08_0006_create_sessions_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateSessionsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('sessions', function (Blueprint $table) { @@ -22,4 +21,4 @@ class CreateSessionsTable extends Migration { Schema::dropIfExists('sessions'); } -} +}; diff --git a/app/Database/migrations/2017_06_08_191703_create_airlines_table.php b/app/Database/migrations/2017_06_08_191703_create_airlines_table.php index 216b4c34..63d1e4ef 100644 --- a/app/Database/migrations/2017_06_08_191703_create_airlines_table.php +++ b/app/Database/migrations/2017_06_08_191703_create_airlines_table.php @@ -3,8 +3,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateAirlinesTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('airlines', function (Blueprint $table) { @@ -31,4 +30,4 @@ class CreateAirlinesTable extends Migration { Schema::dropIfExists('airlines'); } -} +}; diff --git a/app/Database/migrations/2017_06_09_010621_create_aircrafts_table.php b/app/Database/migrations/2017_06_09_010621_create_aircrafts_table.php index 527a45e1..63b14159 100644 --- a/app/Database/migrations/2017_06_09_010621_create_aircrafts_table.php +++ b/app/Database/migrations/2017_06_09_010621_create_aircrafts_table.php @@ -5,8 +5,7 @@ use App\Models\Enums\AircraftState; use App\Models\Enums\AircraftStatus; use Illuminate\Database\Schema\Blueprint; -class CreateAircraftsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('aircraft', function (Blueprint $table) { @@ -34,4 +33,4 @@ class CreateAircraftsTable extends Migration { Schema::dropIfExists('aircraft'); } -} +}; diff --git a/app/Database/migrations/2017_06_10_040335_create_fares_table.php b/app/Database/migrations/2017_06_10_040335_create_fares_table.php index 34e5f529..138ea239 100644 --- a/app/Database/migrations/2017_06_10_040335_create_fares_table.php +++ b/app/Database/migrations/2017_06_10_040335_create_fares_table.php @@ -3,8 +3,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateFaresTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('fares', function (Blueprint $table) { @@ -24,4 +23,4 @@ class CreateFaresTable extends Migration { Schema::dropIfExists('fares'); } -} +}; diff --git a/app/Database/migrations/2017_06_11_135707_create_airports_table.php b/app/Database/migrations/2017_06_11_135707_create_airports_table.php index bffb4bd0..fc78cbd0 100644 --- a/app/Database/migrations/2017_06_11_135707_create_airports_table.php +++ b/app/Database/migrations/2017_06_11_135707_create_airports_table.php @@ -3,8 +3,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateAirportsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('airports', function (Blueprint $table) { @@ -33,4 +32,4 @@ class CreateAirportsTable extends Migration { Schema::dropIfExists('airports'); } -} +}; diff --git a/app/Database/migrations/2017_06_17_214650_create_flight_tables.php b/app/Database/migrations/2017_06_17_214650_create_flight_tables.php index 3654d0c8..1d8b9252 100644 --- a/app/Database/migrations/2017_06_17_214650_create_flight_tables.php +++ b/app/Database/migrations/2017_06_17_214650_create_flight_tables.php @@ -5,8 +5,7 @@ use App\Contracts\Model; use App\Models\Enums\FlightType; use Illuminate\Database\Schema\Blueprint; -class CreateFlightTables extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('flights', function (Blueprint $table) { @@ -98,4 +97,4 @@ class CreateFlightTables extends Migration Schema::drop('flight_subfleet'); Schema::drop('flights'); } -} +}; diff --git a/app/Database/migrations/2017_06_21_165410_create_ranks_table.php b/app/Database/migrations/2017_06_21_165410_create_ranks_table.php index c766d55b..e1e9bf58 100644 --- a/app/Database/migrations/2017_06_21_165410_create_ranks_table.php +++ b/app/Database/migrations/2017_06_21_165410_create_ranks_table.php @@ -3,8 +3,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateRanksTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('ranks', function (Blueprint $table) { @@ -29,4 +28,4 @@ class CreateRanksTable extends Migration { Schema::dropIfExists('ranks'); } -} +}; diff --git a/app/Database/migrations/2017_06_23_011011_create_subfleet_tables.php b/app/Database/migrations/2017_06_23_011011_create_subfleet_tables.php index 811b9c47..a1c7e049 100644 --- a/app/Database/migrations/2017_06_23_011011_create_subfleet_tables.php +++ b/app/Database/migrations/2017_06_23_011011_create_subfleet_tables.php @@ -3,8 +3,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateSubfleetTables extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('subfleets', function (Blueprint $table) { @@ -51,4 +50,4 @@ class CreateSubfleetTables extends Migration Schema::dropIfExists('subfleet_fare'); Schema::dropIfExists('subfleet_rank'); } -} +}; diff --git a/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php b/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php index 00c2c818..815332dd 100644 --- a/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php +++ b/app/Database/migrations/2017_06_28_195426_create_pirep_tables.php @@ -7,8 +7,7 @@ use App\Models\Enums\PirepState; use App\Models\Enums\PirepStatus; use Illuminate\Database\Schema\Blueprint; -class CreatePirepTables extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -106,4 +105,4 @@ class CreatePirepTables extends Migration Schema::dropIfExists('pirep_fields'); Schema::dropIfExists('pirep_field_values'); } -} +}; diff --git a/app/Database/migrations/2017_12_12_174519_create_bids_table.php b/app/Database/migrations/2017_12_12_174519_create_bids_table.php index 191128a4..55453eb5 100644 --- a/app/Database/migrations/2017_12_12_174519_create_bids_table.php +++ b/app/Database/migrations/2017_12_12_174519_create_bids_table.php @@ -5,8 +5,7 @@ use App\Contracts\Model; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateBidsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('bids', function (Blueprint $table) { @@ -24,4 +23,4 @@ class CreateBidsTable extends Migration { Schema::dropIfExists('bids'); } -} +}; diff --git a/app/Database/migrations/2017_12_14_225241_create_jobs_table.php b/app/Database/migrations/2017_12_14_225241_create_jobs_table.php index df35caf6..6887285b 100644 --- a/app/Database/migrations/2017_12_14_225241_create_jobs_table.php +++ b/app/Database/migrations/2017_12_14_225241_create_jobs_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateJobsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('jobs', function (Blueprint $table) { @@ -23,4 +22,4 @@ class CreateJobsTable extends Migration { Schema::dropIfExists('jobs'); } -} +}; diff --git a/app/Database/migrations/2017_12_14_225337_create_failed_jobs_table.php b/app/Database/migrations/2017_12_14_225337_create_failed_jobs_table.php index f0100b68..b4cd29ed 100644 --- a/app/Database/migrations/2017_12_14_225337_create_failed_jobs_table.php +++ b/app/Database/migrations/2017_12_14_225337_create_failed_jobs_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateFailedJobsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('failed_jobs', function (Blueprint $table) { @@ -22,4 +21,4 @@ class CreateFailedJobsTable extends Migration { Schema::dropIfExists('failed_jobs'); } -} +}; diff --git a/app/Database/migrations/2017_12_20_004147_create_navdata_tables.php b/app/Database/migrations/2017_12_20_004147_create_navdata_tables.php index 8456f826..1456806d 100644 --- a/app/Database/migrations/2017_12_20_004147_create_navdata_tables.php +++ b/app/Database/migrations/2017_12_20_004147_create_navdata_tables.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNavdataTables extends Migration -{ +return new class() extends Migration { public function up() { /* @@ -30,4 +29,4 @@ class CreateNavdataTables extends Migration { Schema::dropIfExists('navdata'); } -} +}; diff --git a/app/Database/migrations/2017_12_20_005147_create_acars_tables.php b/app/Database/migrations/2017_12_20_005147_create_acars_tables.php index c6ce7c36..780318fe 100644 --- a/app/Database/migrations/2017_12_20_005147_create_acars_tables.php +++ b/app/Database/migrations/2017_12_20_005147_create_acars_tables.php @@ -5,8 +5,7 @@ use App\Contracts\Model; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateAcarsTables extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('acars', function (Blueprint $table) { @@ -43,4 +42,4 @@ class CreateAcarsTables extends Migration { Schema::dropIfExists('acars'); } -} +}; diff --git a/app/Database/migrations/2018_01_03_014930_create_stats_table.php b/app/Database/migrations/2018_01_03_014930_create_stats_table.php index d736857a..401a6bec 100644 --- a/app/Database/migrations/2018_01_03_014930_create_stats_table.php +++ b/app/Database/migrations/2018_01_03_014930_create_stats_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateStatsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('stats', function (Blueprint $table) { @@ -24,4 +23,4 @@ class CreateStatsTable extends Migration { Schema::dropIfExists('stats'); } -} +}; diff --git a/app/Database/migrations/2018_01_08_142204_create_news_table.php b/app/Database/migrations/2018_01_08_142204_create_news_table.php index 21c4ea46..11398b35 100644 --- a/app/Database/migrations/2018_01_08_142204_create_news_table.php +++ b/app/Database/migrations/2018_01_08_142204_create_news_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNewsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('news', function (Blueprint $table) { @@ -21,4 +20,4 @@ class CreateNewsTable extends Migration { Schema::drop('news'); } -} +}; diff --git a/app/Database/migrations/2018_01_28_180522_create_awards_table.php b/app/Database/migrations/2018_01_28_180522_create_awards_table.php index 717addb5..81b6e068 100644 --- a/app/Database/migrations/2018_01_28_180522_create_awards_table.php +++ b/app/Database/migrations/2018_01_28_180522_create_awards_table.php @@ -5,8 +5,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; use Modules\Awards\Awards\PilotFlightAwards; -class CreateAwardsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('awards', function (Blueprint $table) { @@ -52,4 +51,4 @@ class CreateAwardsTable extends Migration Schema::dropIfExists('awards'); Schema::dropIfExists('user_awards'); } -} +}; diff --git a/app/Database/migrations/2018_02_26_185121_create_expenses_table.php b/app/Database/migrations/2018_02_26_185121_create_expenses_table.php index f75cc766..626ceaa6 100644 --- a/app/Database/migrations/2018_02_26_185121_create_expenses_table.php +++ b/app/Database/migrations/2018_02_26_185121_create_expenses_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateExpensesTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('expenses', function (Blueprint $table) { @@ -34,4 +33,4 @@ class CreateExpensesTable extends Migration { Schema::dropIfExists('expenses'); } -} +}; diff --git a/app/Database/migrations/2018_02_28_231807_create_journal_transactions_table.php b/app/Database/migrations/2018_02_28_231807_create_journal_transactions_table.php index 6f40e653..ce2b3b59 100644 --- a/app/Database/migrations/2018_02_28_231807_create_journal_transactions_table.php +++ b/app/Database/migrations/2018_02_28_231807_create_journal_transactions_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateJournalTransactionsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('journal_transactions', function (Blueprint $table) { @@ -33,4 +32,4 @@ class CreateJournalTransactionsTable extends Migration { Schema::dropIfExists('journal_transactions'); } -} +}; diff --git a/app/Database/migrations/2018_02_28_231813_create_journals_table.php b/app/Database/migrations/2018_02_28_231813_create_journals_table.php index b09c1b9a..cee92fe7 100644 --- a/app/Database/migrations/2018_02_28_231813_create_journals_table.php +++ b/app/Database/migrations/2018_02_28_231813_create_journals_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateJournalsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('journals', function (Blueprint $table) { @@ -23,4 +22,4 @@ class CreateJournalsTable extends Migration { Schema::dropIfExists('journals'); } -} +}; diff --git a/app/Database/migrations/2018_02_28_232438_create_ledgers_table.php b/app/Database/migrations/2018_02_28_232438_create_ledgers_table.php index 885a39ad..25699eb1 100644 --- a/app/Database/migrations/2018_02_28_232438_create_ledgers_table.php +++ b/app/Database/migrations/2018_02_28_232438_create_ledgers_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateLedgersTable extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -30,4 +29,4 @@ class CreateLedgersTable extends Migration { Schema::dropIfExists('ledgers'); } -} +}; diff --git a/app/Database/migrations/2018_04_01_193443_create_files_table.php b/app/Database/migrations/2018_04_01_193443_create_files_table.php index d77f0e1c..13da118e 100644 --- a/app/Database/migrations/2018_04_01_193443_create_files_table.php +++ b/app/Database/migrations/2018_04_01_193443_create_files_table.php @@ -5,8 +5,7 @@ use App\Contracts\Model; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateFilesTable extends Migration -{ +return new class() extends Migration { /** * Create the files table. Acts as a morphable * @@ -40,4 +39,4 @@ class CreateFilesTable extends Migration { Schema::dropIfExists('files'); } -} +}; diff --git a/app/Database/migrations/2019_06_19_220910_add_readonly_to_roles.php b/app/Database/migrations/2019_06_19_220910_add_readonly_to_roles.php index 491547cd..447cd9f4 100644 --- a/app/Database/migrations/2019_06_19_220910_add_readonly_to_roles.php +++ b/app/Database/migrations/2019_06_19_220910_add_readonly_to_roles.php @@ -5,8 +5,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; -class AddReadonlyToRoles extends Migration -{ +return new class() extends Migration { public function up(): void { Schema::table('roles', static function (Blueprint $table) { @@ -25,4 +24,4 @@ class AddReadonlyToRoles extends Migration $table->dropColumn('read_only'); }); } -} +}; diff --git a/app/Database/migrations/2019_07_16_141152_users_add_pilot_id.php b/app/Database/migrations/2019_07_16_141152_users_add_pilot_id.php index cd1b411d..4b9a157f 100644 --- a/app/Database/migrations/2019_07_16_141152_users_add_pilot_id.php +++ b/app/Database/migrations/2019_07_16_141152_users_add_pilot_id.php @@ -12,8 +12,7 @@ use Illuminate\Support\Facades\Schema; * 3. Iterate through all of the users and set their `id` to the `pilot_id` * 4. Change the other tables column types that reference `user_id` */ -class UsersAddPilotId extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('users', static function (Blueprint $table) { @@ -33,4 +32,4 @@ class UsersAddPilotId extends Migration $table->dropColumn('pilot_id'); }); } -} +}; diff --git a/app/Database/migrations/2019_08_30_132224_create_notifications_table.php b/app/Database/migrations/2019_08_30_132224_create_notifications_table.php index 79a4055d..cda85a97 100644 --- a/app/Database/migrations/2019_08_30_132224_create_notifications_table.php +++ b/app/Database/migrations/2019_08_30_132224_create_notifications_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateNotificationsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('notifications', function (Blueprint $table) { @@ -22,4 +21,4 @@ class CreateNotificationsTable extends Migration { Schema::dropIfExists('notifications'); } -} +}; diff --git a/app/Database/migrations/2019_09_16_141152_pireps_change_state_type.php b/app/Database/migrations/2019_09_16_141152_pireps_change_state_type.php index b19c8926..a2f4f8e5 100644 --- a/app/Database/migrations/2019_09_16_141152_pireps_change_state_type.php +++ b/app/Database/migrations/2019_09_16_141152_pireps_change_state_type.php @@ -9,8 +9,7 @@ use Illuminate\Support\Facades\Schema; /** * Change the PIREP state column to be a TINYINT */ -class PirepsChangeStateType extends Migration -{ +return new class() extends Migration { public function up() { // Migrate the old rejected state @@ -23,4 +22,4 @@ class PirepsChangeStateType extends Migration $table->unsignedSmallInteger('state')->change(); }); } -} +}; diff --git a/app/Database/migrations/2019_10_30_141152_pireps_add_flight_id.php b/app/Database/migrations/2019_10_30_141152_pireps_add_flight_id.php index 102f02f9..4878c450 100644 --- a/app/Database/migrations/2019_10_30_141152_pireps_add_flight_id.php +++ b/app/Database/migrations/2019_10_30_141152_pireps_add_flight_id.php @@ -8,12 +8,11 @@ use Illuminate\Support\Facades\Schema; /** * Add a `flight_id` column to the PIREPs table */ -class PirepsAddFlightId extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('pireps', function (Blueprint $table) { $table->string('flight_id', Model::ID_MAX_LENGTH)->nullable()->after('aircraft_id'); }); } -} +}; diff --git a/app/Database/migrations/2020_02_12_141152_expenses_add_flight_type.php b/app/Database/migrations/2020_02_12_141152_expenses_add_flight_type.php index 97075d8e..1e1b0cb8 100644 --- a/app/Database/migrations/2020_02_12_141152_expenses_add_flight_type.php +++ b/app/Database/migrations/2020_02_12_141152_expenses_add_flight_type.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `flight_type` column to the expenses table */ -class ExpensesAddFlightType extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('expenses', function (Blueprint $table) { @@ -24,4 +23,4 @@ class ExpensesAddFlightType extends Migration $table->dropColumn('flight_type'); }); } -} +}; diff --git a/app/Database/migrations/2020_02_26_044305_modify_airports_coordinates.php b/app/Database/migrations/2020_02_26_044305_modify_airports_coordinates.php index 5a817db7..86938739 100644 --- a/app/Database/migrations/2020_02_26_044305_modify_airports_coordinates.php +++ b/app/Database/migrations/2020_02_26_044305_modify_airports_coordinates.php @@ -6,8 +6,7 @@ use Illuminate\Support\Facades\Schema; /** * Turn the airport coordinates and other lat/lon coords into decimal type */ -class ModifyAirportsCoordinates extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -25,4 +24,4 @@ class ModifyAirportsCoordinates extends Migration $table->decimal('lon', 11, 5)->change()->default(0.0)->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2020_03_04_044305_flight_field_nullable.php b/app/Database/migrations/2020_03_04_044305_flight_field_nullable.php index 135c3c50..cb3054f4 100644 --- a/app/Database/migrations/2020_03_04_044305_flight_field_nullable.php +++ b/app/Database/migrations/2020_03_04_044305_flight_field_nullable.php @@ -6,12 +6,11 @@ use Illuminate\Support\Facades\Schema; /** * Allow the flight field value to be nullable */ -class FlightFieldNullable extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('flight_field_values', function ($table) { $table->text('value')->change()->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2020_03_05_141152_flights_add_load_factor.php b/app/Database/migrations/2020_03_05_141152_flights_add_load_factor.php index 32dc426d..b27a2c56 100644 --- a/app/Database/migrations/2020_03_05_141152_flights_add_load_factor.php +++ b/app/Database/migrations/2020_03_05_141152_flights_add_load_factor.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `load_factor` and `load_factor_variance` columns to the expenses table */ -class FlightsAddLoadFactor extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('flights', function (Blueprint $table) { @@ -29,4 +28,4 @@ class FlightsAddLoadFactor extends Migration $table->dropColumn('load_factor_variance'); }); } -} +}; diff --git a/app/Database/migrations/2020_03_06_141152_flights_add_pilot_pay.php b/app/Database/migrations/2020_03_06_141152_flights_add_pilot_pay.php index 90634f6a..903c0120 100644 --- a/app/Database/migrations/2020_03_06_141152_flights_add_pilot_pay.php +++ b/app/Database/migrations/2020_03_06_141152_flights_add_pilot_pay.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `pilot_pay` column for a fixed amount to pay to a pilot for a flight */ -class FlightsAddPilotPay extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('flights', function (Blueprint $table) { @@ -24,4 +23,4 @@ class FlightsAddPilotPay extends Migration $table->dropColumn('pilot_pay'); }); } -} +}; diff --git a/app/Database/migrations/2020_03_06_141153_fares_add_type.php b/app/Database/migrations/2020_03_06_141153_fares_add_type.php index 8c6809ab..a36c2a3d 100644 --- a/app/Database/migrations/2020_03_06_141153_fares_add_type.php +++ b/app/Database/migrations/2020_03_06_141153_fares_add_type.php @@ -8,8 +8,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `pilot_pay` column for a fixed amount to pay to a pilot for a flight */ -class FaresAddType extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('fares', function (Blueprint $table) { @@ -19,4 +18,4 @@ class FaresAddType extends Migration ->after('capacity'); }); } -} +}; diff --git a/app/Database/migrations/2020_03_09_141152_increase_id_lengths.php b/app/Database/migrations/2020_03_09_141152_increase_id_lengths.php index 85d16412..32a0c66c 100644 --- a/app/Database/migrations/2020_03_09_141152_increase_id_lengths.php +++ b/app/Database/migrations/2020_03_09_141152_increase_id_lengths.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Increase string ID lengths because of collisions */ -class IncreaseIdLengths extends Migration -{ +return new class() extends Migration { public function up() { $tables = [ @@ -33,4 +32,4 @@ class IncreaseIdLengths extends Migration }); } } -} +}; diff --git a/app/Database/migrations/2020_03_09_141153_remove_subfleet_type_index.php b/app/Database/migrations/2020_03_09_141153_remove_subfleet_type_index.php index e498fc7c..cb377c42 100644 --- a/app/Database/migrations/2020_03_09_141153_remove_subfleet_type_index.php +++ b/app/Database/migrations/2020_03_09_141153_remove_subfleet_type_index.php @@ -7,12 +7,11 @@ use Illuminate\Support\Facades\Schema; /** * Remove the unique index from subfleets.type */ -class RemoveSubfleetTypeIndex extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('subfleets', function (Blueprint $table) { $table->dropUnique(['type']); }); } -} +}; diff --git a/app/Database/migrations/2020_03_11_141153_add_simbrief_table.php b/app/Database/migrations/2020_03_11_141153_add_simbrief_table.php index 1564ebd2..b40cb9a1 100644 --- a/app/Database/migrations/2020_03_11_141153_add_simbrief_table.php +++ b/app/Database/migrations/2020_03_11_141153_add_simbrief_table.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a table to store the Simbrief data */ -class AddSimbriefTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('simbrief', function (Blueprint $table) { @@ -31,4 +30,4 @@ class AddSimbriefTable extends Migration { Schema::drop('simbrief'); } -} +}; diff --git a/app/Database/migrations/2020_03_27_174238_create_pages.php b/app/Database/migrations/2020_03_27_174238_create_pages.php index d51daacd..0441a320 100644 --- a/app/Database/migrations/2020_03_27_174238_create_pages.php +++ b/app/Database/migrations/2020_03_27_174238_create_pages.php @@ -9,8 +9,7 @@ use Illuminate\Support\Facades\Schema; * Create the pages * https://github.com/nabeelio/phpvms/issues/641 */ -class CreatePages extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('pages', function (Blueprint $table) { @@ -32,4 +31,4 @@ class CreatePages extends Migration { Schema::dropIfExists('pages'); } -} +}; diff --git a/app/Database/migrations/2020_03_28_174238_airline_remove_nullable.php b/app/Database/migrations/2020_03_28_174238_airline_remove_nullable.php index 576848c4..c238a7bd 100644 --- a/app/Database/migrations/2020_03_28_174238_airline_remove_nullable.php +++ b/app/Database/migrations/2020_03_28_174238_airline_remove_nullable.php @@ -4,12 +4,11 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AirlineRemoveNullable extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('airlines', function (Blueprint $table) { $table->dropUnique(['iata']); }); } -} +}; diff --git a/app/Database/migrations/2020_03_28_174238_page_icon_nullable.php b/app/Database/migrations/2020_03_28_174238_page_icon_nullable.php index 9d849946..592be3f5 100644 --- a/app/Database/migrations/2020_03_28_174238_page_icon_nullable.php +++ b/app/Database/migrations/2020_03_28_174238_page_icon_nullable.php @@ -4,12 +4,11 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class PageIconNullable extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('pages', function (Blueprint $table) { $table->string('icon')->change()->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2020_06_09_141153_pages_add_link.php b/app/Database/migrations/2020_06_09_141153_pages_add_link.php index a73841fd..8c912a78 100644 --- a/app/Database/migrations/2020_06_09_141153_pages_add_link.php +++ b/app/Database/migrations/2020_06_09_141153_pages_add_link.php @@ -8,8 +8,7 @@ use Illuminate\Support\Facades\Schema; * Add a `link` column and make the body optional. Also add a "new_window" bool * which determines if we open this link in a new window or not */ -class PagesAddLink extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('pages', function (Blueprint $table) { @@ -30,4 +29,4 @@ class PagesAddLink extends Migration $table->dropColumn('new_window'); }); } -} +}; diff --git a/app/Database/migrations/2020_07_21_141153_create_user_fields.php b/app/Database/migrations/2020_07_21_141153_create_user_fields.php index df6bb024..cf1ffa12 100644 --- a/app/Database/migrations/2020_07_21_141153_create_user_fields.php +++ b/app/Database/migrations/2020_07_21_141153_create_user_fields.php @@ -8,8 +8,7 @@ use Illuminate\Support\Facades\Schema; /** * Add two tables for holding user fields and the values */ -class CreateUserFields extends Migration -{ +return new class() extends Migration { public function up() { /* @@ -39,4 +38,4 @@ class CreateUserFields extends Migration $table->index(['user_field_id', 'user_id']); }); } -} +}; diff --git a/app/Database/migrations/2020_09_03_141152_aircraft_add_mtow.php b/app/Database/migrations/2020_09_03_141152_aircraft_add_mtow.php index cde9694f..af830ce5 100644 --- a/app/Database/migrations/2020_09_03_141152_aircraft_add_mtow.php +++ b/app/Database/migrations/2020_09_03_141152_aircraft_add_mtow.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `mtow` column for the max takeoff weight */ -class AircraftAddMtow extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('aircraft', function (Blueprint $table) { @@ -25,4 +24,4 @@ class AircraftAddMtow extends Migration $table->dropColumn('mtow'); }); } -} +}; diff --git a/app/Database/migrations/2020_09_30_081536_create_modules_table.php b/app/Database/migrations/2020_09_30_081536_create_modules_table.php index 3956710a..39e64e91 100644 --- a/app/Database/migrations/2020_09_30_081536_create_modules_table.php +++ b/app/Database/migrations/2020_09_30_081536_create_modules_table.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class CreateModulesTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('modules', function (Blueprint $table) { @@ -26,4 +25,4 @@ class CreateModulesTable extends Migration { Schema::dropIfExists('modules'); } -} +}; diff --git a/app/Database/migrations/2020_11_20_044305_modify_pages_size.php b/app/Database/migrations/2020_11_20_044305_modify_pages_size.php index e7d13e5b..e0846076 100644 --- a/app/Database/migrations/2020_11_20_044305_modify_pages_size.php +++ b/app/Database/migrations/2020_11_20_044305_modify_pages_size.php @@ -7,12 +7,11 @@ use Illuminate\Support\Facades\Schema; /** * Change the pages body column type to a Medium Text, max size of 16MB */ -class ModifyPagesSize extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('pages', function (Blueprint $table) { $table->mediumText('body')->change()->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2020_11_26_044305_modify_download_link_size.php b/app/Database/migrations/2020_11_26_044305_modify_download_link_size.php index 5d00dc13..645d85fa 100644 --- a/app/Database/migrations/2020_11_26_044305_modify_download_link_size.php +++ b/app/Database/migrations/2020_11_26_044305_modify_download_link_size.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Change the downloads link size */ -class ModifyDownloadLinkSize extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('files', function (Blueprint $table) { @@ -16,4 +15,4 @@ class ModifyDownloadLinkSize extends Migration $table->mediumText('path')->change()->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php b/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php index e71bf1b4..f8c0ff3e 100644 --- a/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php +++ b/app/Database/migrations/2021_01_17_044305_add_hub_to_subfleets.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a hub to the subfleet is */ -class AddHubToSubfleets extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('subfleets', function (Blueprint $table) { @@ -17,4 +16,4 @@ class AddHubToSubfleets extends Migration ->after('airline_id'); }); } -} +}; diff --git a/app/Database/migrations/2021_02_10_044305_change_acars_vs_type.php b/app/Database/migrations/2021_02_10_044305_change_acars_vs_type.php index 6816ce8f..2e7e0260 100644 --- a/app/Database/migrations/2021_02_10_044305_change_acars_vs_type.php +++ b/app/Database/migrations/2021_02_10_044305_change_acars_vs_type.php @@ -7,12 +7,11 @@ use Illuminate\Support\Facades\Schema; /** * Change the vertical speed for the acars table to a double */ -class ChangeAcarsVsType extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('acars', function (Blueprint $table) { $table->float('vs')->change()->default(0.0)->nullable(); }); } -} +}; diff --git a/app/Database/migrations/2021_02_11_044305_update_sessions_table.php b/app/Database/migrations/2021_02_11_044305_update_sessions_table.php index 9ff807fb..3e6195ac 100644 --- a/app/Database/migrations/2021_02_11_044305_update_sessions_table.php +++ b/app/Database/migrations/2021_02_11_044305_update_sessions_table.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Bring the sessions table in line with the latest */ -class UpdateSessionsTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('sessions', function (Blueprint $table) { @@ -16,4 +15,4 @@ class UpdateSessionsTable extends Migration $table->index('last_activity'); }); } -} +}; diff --git a/app/Database/migrations/2021_02_23_150601_aircraft_add_fuelonboard.php b/app/Database/migrations/2021_02_23_150601_aircraft_add_fuelonboard.php index ca18762f..c20ebe8d 100644 --- a/app/Database/migrations/2021_02_23_150601_aircraft_add_fuelonboard.php +++ b/app/Database/migrations/2021_02_23_150601_aircraft_add_fuelonboard.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a `fuel_onboard` column for recording what is left in tanks */ -class AircraftAddFuelonboard extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('aircraft', function (Blueprint $table) { @@ -18,4 +17,4 @@ class AircraftAddFuelonboard extends Migration ->after('zfw'); }); } -} +}; diff --git a/app/Database/migrations/2021_02_23_205630_add_sbtype_to_subfleets.php b/app/Database/migrations/2021_02_23_205630_add_sbtype_to_subfleets.php index 42c6c975..755d0dd0 100644 --- a/app/Database/migrations/2021_02_23_205630_add_sbtype_to_subfleets.php +++ b/app/Database/migrations/2021_02_23_205630_add_sbtype_to_subfleets.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a SimBrief Type to subfleet */ -class AddSbtypeToSubfleets extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('subfleets', function (Blueprint $table) { @@ -17,4 +16,4 @@ class AddSbtypeToSubfleets extends Migration ->after('type'); }); } -} +}; diff --git a/app/Database/migrations/2021_03_01_044305_add_aircraft_to_simbrief.php b/app/Database/migrations/2021_03_01_044305_add_aircraft_to_simbrief.php index adbd532e..5f3b6f30 100644 --- a/app/Database/migrations/2021_03_01_044305_add_aircraft_to_simbrief.php +++ b/app/Database/migrations/2021_03_01_044305_add_aircraft_to_simbrief.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a hub to the subfleet is */ -class AddAircraftToSimbrief extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('simbrief', function (Blueprint $table) { @@ -21,4 +20,4 @@ class AddAircraftToSimbrief extends Migration $table->mediumText('fare_data')->nullable()->after('ofp_xml'); }); } -} +}; diff --git a/app/Database/migrations/2021_03_05_044305_add_kvp_table.php b/app/Database/migrations/2021_03_05_044305_add_kvp_table.php index e7b75b6e..7e4830c4 100644 --- a/app/Database/migrations/2021_03_05_044305_add_kvp_table.php +++ b/app/Database/migrations/2021_03_05_044305_add_kvp_table.php @@ -7,8 +7,7 @@ use Illuminate\Support\Facades\Schema; /** * Add a hub to the subfleet is */ -class AddKvpTable extends Migration -{ +return new class() extends Migration { public function up() { Schema::create('kvp', function (Blueprint $table) { @@ -16,4 +15,4 @@ class AddKvpTable extends Migration $table->string('value'); }); } -} +}; diff --git a/app/Database/migrations/2021_03_18_161419_add_disableactivitychecks_to_roles.php b/app/Database/migrations/2021_03_18_161419_add_disableactivitychecks_to_roles.php index 72318d42..1678747a 100644 --- a/app/Database/migrations/2021_03_18_161419_add_disableactivitychecks_to_roles.php +++ b/app/Database/migrations/2021_03_18_161419_add_disableactivitychecks_to_roles.php @@ -4,8 +4,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddDisableactivitychecksToRoles extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -31,4 +30,4 @@ class AddDisableactivitychecksToRoles extends Migration $table->dropColumn('disable_activity_checks'); }); } -} +}; diff --git a/app/Database/migrations/2021_03_25_213017_remove_setting_removebidonaccept.php b/app/Database/migrations/2021_03_25_213017_remove_setting_removebidonaccept.php index 25e25dae..2b76f3f1 100644 --- a/app/Database/migrations/2021_03_25_213017_remove_setting_removebidonaccept.php +++ b/app/Database/migrations/2021_03_25_213017_remove_setting_removebidonaccept.php @@ -3,8 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\DB; -class RemoveSettingRemoveBidOnAccept extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -16,4 +15,4 @@ class RemoveSettingRemoveBidOnAccept extends Migration ->where(['key' => 'pireps.remove_bid_on_accept']) ->delete(); } -} +}; diff --git a/app/Database/migrations/2021_04_05_055245_flights_add_alphanumeric_callsign.php b/app/Database/migrations/2021_04_05_055245_flights_add_alphanumeric_callsign.php index 0b8af69f..70b93f80 100644 --- a/app/Database/migrations/2021_04_05_055245_flights_add_alphanumeric_callsign.php +++ b/app/Database/migrations/2021_04_05_055245_flights_add_alphanumeric_callsign.php @@ -10,8 +10,7 @@ use Illuminate\Support\Facades\Schema; * According to FAA and EASA, callsigns must be maximum 7 chars in which first 3 chars is * airline ICAO code remaining rest can be used freely according to airline's choices */ -class FlightsAddAlphanumericCallsign extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('flights', function (Blueprint $table) { @@ -27,4 +26,4 @@ class FlightsAddAlphanumericCallsign extends Migration $table->dropColumn('callsign'); }); } -} +}; diff --git a/app/Database/migrations/2021_04_10_055245_migrate_configs.php b/app/Database/migrations/2021_04_10_055245_migrate_configs.php index 3d04b9b9..c9e64a0c 100644 --- a/app/Database/migrations/2021_04_10_055245_migrate_configs.php +++ b/app/Database/migrations/2021_04_10_055245_migrate_configs.php @@ -6,8 +6,7 @@ use App\Services\Installer\ConfigService; /** * Migrate the configuration files */ -class MigrateConfigs extends Migration -{ +return new class() extends Migration { public function up() { /** @var ConfigService $configSvc */ @@ -18,4 +17,4 @@ class MigrateConfigs extends Migration public function down() { } -} +}; diff --git a/app/Database/migrations/2021_05_21_141152_increase_icao_sizes.php b/app/Database/migrations/2021_05_21_141152_increase_icao_sizes.php index 37aa65ca..d3751327 100644 --- a/app/Database/migrations/2021_05_21_141152_increase_icao_sizes.php +++ b/app/Database/migrations/2021_05_21_141152_increase_icao_sizes.php @@ -8,8 +8,7 @@ use Illuminate\Support\Facades\Schema; * Increase Airport ICAO size to 5 chars * https://github.com/nabeelio/phpvms/issues/1052 */ -class IncreaseIcaoSizes extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('airports', function (Blueprint $table) { @@ -23,4 +22,4 @@ class IncreaseIcaoSizes extends Migration $table->string('alt_airport_id', 5)->change(); }); } -} +}; diff --git a/app/Database/migrations/2021_05_28_165608_remove_setting_simbriefexpiredays.php b/app/Database/migrations/2021_05_28_165608_remove_setting_simbriefexpiredays.php index f8106998..da6735db 100644 --- a/app/Database/migrations/2021_05_28_165608_remove_setting_simbriefexpiredays.php +++ b/app/Database/migrations/2021_05_28_165608_remove_setting_simbriefexpiredays.php @@ -3,8 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\DB; -class RemoveSettingSimbriefExpireDays extends Migration -{ +return new class() extends Migration { /** * Run the migrations. * @@ -16,4 +15,4 @@ class RemoveSettingSimbriefExpireDays extends Migration ->where(['key' => 'simbrief.expire_days']) ->delete(); } -} +}; diff --git a/app/Database/migrations/2021_06_01_141152_discord_fields.php b/app/Database/migrations/2021_06_01_141152_discord_fields.php index f0716f0a..dc593bf4 100644 --- a/app/Database/migrations/2021_06_01_141152_discord_fields.php +++ b/app/Database/migrations/2021_06_01_141152_discord_fields.php @@ -5,8 +5,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; -class DiscordFields extends Migration -{ +return new class() extends Migration { public function up() { // Delete the old Discord fields and then a webhook will get added @@ -29,4 +28,4 @@ class DiscordFields extends Migration ->after('rank_id'); }); } -} +}; diff --git a/app/Database/migrations/2021_06_04_141152_discord_private_channel_id.php b/app/Database/migrations/2021_06_04_141152_discord_private_channel_id.php index c1a69c90..fc76406b 100644 --- a/app/Database/migrations/2021_06_04_141152_discord_private_channel_id.php +++ b/app/Database/migrations/2021_06_04_141152_discord_private_channel_id.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class DiscordPrivateChannelId extends Migration -{ +return new class() extends Migration { public function up() { // Add a field to the user to enter their own Discord ID @@ -15,4 +14,4 @@ class DiscordPrivateChannelId extends Migration ->after('discord_id'); }); } -} +}; diff --git a/app/Database/migrations/2021_11_23_184532_add_type_rating_tables.php b/app/Database/migrations/2021_11_23_184532_add_type_rating_tables.php index e3623e25..bd1bc0f0 100644 --- a/app/Database/migrations/2021_11_23_184532_add_type_rating_tables.php +++ b/app/Database/migrations/2021_11_23_184532_add_type_rating_tables.php @@ -4,8 +4,7 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddTypeRatingTables extends Migration -{ +return new class() extends Migration { public function up() { if (!Schema::hasTable('typeratings')) { @@ -50,4 +49,4 @@ class AddTypeRatingTables extends Migration Schema::dropIfExists('typerating_user'); Schema::dropIfExists('typerating_subfleet'); } -} +}; diff --git a/app/Database/migrations/2021_11_27_132418_add_hub_to_aircraft.php b/app/Database/migrations/2021_11_27_132418_add_hub_to_aircraft.php index a4157717..84a6deb5 100644 --- a/app/Database/migrations/2021_11_27_132418_add_hub_to_aircraft.php +++ b/app/Database/migrations/2021_11_27_132418_add_hub_to_aircraft.php @@ -4,12 +4,11 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddHubToAircraft extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('aircraft', function (Blueprint $table) { $table->string('hub_id', 5)->nullable()->after('airport_id'); }); } -} +}; diff --git a/app/Database/migrations/2022_01_10_131604_update_awards_add_active.php b/app/Database/migrations/2022_01_10_131604_update_awards_add_active.php index 8d8baf9f..85cf37bd 100644 --- a/app/Database/migrations/2022_01_10_131604_update_awards_add_active.php +++ b/app/Database/migrations/2022_01_10_131604_update_awards_add_active.php @@ -4,12 +4,11 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class UpdateAwardsAddActive extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('awards', function (Blueprint $table) { $table->boolean('active')->default(true)->nullable()->after('ref_model_params'); }); } -} +}; diff --git a/app/Database/migrations/2022_02_11_124926_update_users_add_notes.php b/app/Database/migrations/2022_02_11_124926_update_users_add_notes.php index 764c7c91..309e6a62 100644 --- a/app/Database/migrations/2022_02_11_124926_update_users_add_notes.php +++ b/app/Database/migrations/2022_02_11_124926_update_users_add_notes.php @@ -4,12 +4,11 @@ use App\Contracts\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class UpdateUsersAddNotes extends Migration -{ +return new class() extends Migration { public function up() { Schema::table('users', function (Blueprint $table) { $table->mediumText('notes')->nullable()->after('remember_token'); }); } -} +}; diff --git a/app/Database/migrations/2022_03_09_152342_ignore_admin_activity_checks.php b/app/Database/migrations/2022_03_09_152342_ignore_admin_activity_checks.php new file mode 100644 index 00000000..4f23bb79 --- /dev/null +++ b/app/Database/migrations/2022_03_09_152342_ignore_admin_activity_checks.php @@ -0,0 +1,28 @@ +where(['name' => 'admin']) + ->update(['disable_activity_checks' => true]); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +}; diff --git a/app/Database/seeds/dev/simbrief.yml b/app/Database/seeds/dev/simbrief.yml index bf7a0c4d..f61c2faf 100644 --- a/app/Database/seeds/dev/simbrief.yml +++ b/app/Database/seeds/dev/simbrief.yml @@ -8,8 +8,8 @@ simbrief: acars_xml: "\n\n \n 19893491\n 120867\n 1585669695\n lido2\n 2001\n lbs\n \n \n 1\n VMS\n 113\n 0\n PLANNED OPTIMUM FLIGHT LEVEL\n \n 1\n CI5\n 250/280/78\n 78/280/250\n CI0\n RES\n 5\n 16000\n OMDB/0160\n 8\n 38512\n -6\n 278\n 028\n 63\n 105\n 108\n 2606\n 338\n .53\n 145\n KUTL3F KUTLI DCT EMERU EMER2D\n KUTLI3F KUTLI DCT EMERU EMERU2D\n KUTL3F KUTLI DCT EMERU EMER2D\n \n \n OMDB\n DXB\n \n 62\n 25.252778\n 55.364444\n DUBAI INTL\n 30L\n \n \n OMAA\n AUH\n \n 83\n 24.433056\n 54.651111\n ABU DHABI INTL\n 31L\n \n \n OMDB\n DXB\n \n 62\n 25.252778\n 55.364444\n DUBAI INTL\n 30L\n 18000\n 139\n 63\n 137\n 038\n 036\n 328\n 331\n P003\n 274\n 033\n 39100\n P07\n 2104\n 2906\n DCT BOMUP DCT LOVIM DCT RESIG DCT NODVI DCT OBMUK DCT LORID DCT ORGUR DCT PEBUS DCT EMOPO DCT LOTUK DCT LAGTA DCT LOVOL DCT\n DCT BOMUP DCT LOVIM DCT RESIG DCT NODVI DCT OBMUK DCT LORID DCT ORGUR DCT PEBUS DCT EMOPO DCT LOTUK DCT LAGTA DCT LOVOL DCT\n \n \n \n \n \n DB570\n DB570\n wpt\n 25.295528\n 55.294722\n CLB\n KUTL3F\n 1\n 5\n 304\n 302\n 302\n 300\n 9800\n \n \n DB575\n DB575\n wpt\n 25.227500\n 55.181111\n CLB\n KUTL3F\n 1\n 7\n 236\n 234\n 239\n 237\n 14200\n \n \n DB467\n DB467\n wpt\n 25.202222\n 55.091667\n CLB\n KUTL3F\n 1\n 5\n 252\n 250\n 254\n 252\n 15700\n \n \n TOC\n TOP OF CLIMB\n ltlg\n 25.195879\n 55.074647\n CLB\n KUTL3F\n 1\n 1\n 247\n 245\n 250\n 248\n 16000\n \n \n GINLA\n GINLA\n wpt\n 25.140833\n 54.927222\n CRZ\n KUTL3F\n 1\n 9\n 247\n 246\n 250\n 248\n 16000\n \n \n XARTA\n XARTA\n wpt\n 25.025861\n 54.927222\n CRZ\n KUTL3F\n 1\n 7\n 180\n 178\n 186\n 184\n 16000\n \n \n KUTLI\n KUTLI\n wpt\n 24.864250\n 54.938333\n CRZ\n KUTL3F\n 0\n 10\n 176\n 174\n 182\n 180\n 16000\n \n \n TOD\n TOP OF DESCENT\n ltlg\n 24.824103\n 55.018735\n CRZ\n DCT\n 0\n 5\n 118\n 117\n 121\n 119\n 16000\n \n \n EMERU\n EMERU\n wpt\n 24.808056\n 55.050833\n DSC\n DCT\n 0\n 2\n 118\n 117\n 120\n 118\n 15400\n \n \n TUGVA\n TUGVA\n wpt\n 24.583889\n 54.904222\n DSC\n EMER2D\n 1\n 16\n 210\n 209\n 214\n 212\n 10700\n \n \n TONKI\n TONKI\n wpt\n 24.445861\n 54.814222\n DSC\n EMER2D\n 1\n 10\n 210\n 209\n 214\n 212\n 7700\n \n \n LOXIX\n LOXIX\n wpt\n 24.354528\n 54.942417\n DSC\n EMER2D\n 1\n 9\n 128\n 126\n 128\n 126\n 5000\n \n \n OMAA\n ABU DHABI INTL\n apt\n 24.433056\n 54.651111\n DSC\n EMER2D\n 1\n 19\n 286\n 285\n 288\n 286\n 2600\n \n \n \n (FPL-VMS113-IS\n-B737/M-SDE2E3FGHIRWXY/LB1\n-OMDB1230\n-N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n-OMAA0029 OMDB\n-PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS)\n N0338F160 KUTL3F KUTLI DCT EMERU EMER2D\n N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n VMS113\n 0338\n N\n 160\n F\n PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS\n OMAE\n OMAE\n OMAE\n \n \n \n \n B737\n 73G\n B737-700\n N714SB\n 714\n \n M-SDE2E3FGHIRWXY/LB1\n 149\n 1\n \n \n 250\n 2606\n 1338\n 2906\n 2159\n 0\n 0\n 9009\n 9009\n 9259\n 6653\n 5353\n 46100\n \n \n 1753\n 7140\n 1388579400\n 1388580000\n 1388587140\n 1388587500\n 8100\n 1388579400\n 1388580000\n 1388581753\n 1388582113\n 2713\n 4\n 4\n 600\n 360\n 1800\n 6907\n 900\n 0\n 0\n \n \n 84119\n 145\n 230\n 200\n 33550\n 117669\n 121700\n 126678\n 131806\n 154500\n L\n 124072\n 129200\n 126928\n \n \n <div style=\"line-height:14px;font-size:13px\"><pre><!--BKMK///OFP///0--><!--BKMK///Summary and Fuel///1--><b>[ OFP ]\n--------------------------------------------------------------------</b>\nVMS0113 01JAN2014 OMDB-OMAA B737 N714SB RELEASE 1548 31MAR20\nOFP 1 DUBAI INTL-ABU DHABI INTL\n WX PROG 0112 0115 OBS 2412 2412\n\t\n ATC C/S VMS113 OMDB/DXB OMAA/AUH CRZ SYS CI 5\n01JAN2014 N714SB 1230/1240 1309/1315 GND DIST 105\nB737-700 / CFM56-7B24 STA 1445 AIR DIST 108\n CTOT:.... G/C DIST 63\n AVG WIND 278/028\nMAXIMUM TOW 154500 LAW 129200 ZFW 121700 AVG W/C M006\nESTIMATED TOW 126678 LAW 124072 ZFW 117669 AVG ISA P008\n AVG FF LBS/HR 5353\n FUEL BIAS P00.0\nALTN OMDB TKOF ALTN .......\nFL STEPS OMDB/0160/\n--------------------------------------------------------------------\nDISP RMKS PLANNED OPTIMUM FLIGHT LEVEL\n\n--------------------------------------------------------------------\n PLANNED FUEL\n---------------------------------\nFUEL ARPT FUEL TIME\n---------------------------------\nTRIP AUH 2606 0029\nCONT 15 MIN 1338 0015\nALTN DXB 2906 0035\nFINRES 2159 0030\n---------------------------------\nMINIMUM T/OFF FUEL 9009 0149\n---------------------------------\nEXTRA 0 0000\n---------------------------------\nT/OFF FUEL 9009 0149\nTAXI DXB 250 0010\n---------------------------------\nBLOCK FUEL DXB 9259\nPIC EXTRA .....\nTOTAL FUEL .....\nREASON FOR PIC EXTRA ............\n--------------------------------------------------------------------\nNO TANKERING RECOMMENDED (P)\n--------------------------------------------------------------------\nI HEREWITH CONFIRM THAT I HAVE PERFORMED A THOROUGH SELF BRIEFING\nABOUT THE DESTINATION AND ALTERNATE AIRPORTS OF THIS FLIGHT \nINCLUDING THE APPLICABLE INSTRUMENT APPROACH PROCEDURES, AIRPORT \nFACILITIES, NOTAMS AND ALL OTHER RELEVANT PARTICULAR INFORMATION.\n\nDISPATCHER: GENEVA CROSS PIC NAME: SHAHZAD, NABEEL\n\nTEL: +1 800 555 0199 PIC SIGNATURE: ...............<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Routing and Impacts///1-->\nALTERNATE ROUTE TO: FINRES 2159\nAPT TRK DST VIA FL WC TIME FUEL\n--------------------------------------------------------------------\nOMDB/30L 038 139 DCT BOMUP DCT LOVIM DCT RESIG 180 P003 0035 2906\n DCT NODVI DCT OBMUK DCT LORID \n DCT ORGUR DCT PEBUS DCT EMOPO \n DCT LOTUK DCT LAGTA DCT LOVOL \n DCT \n--------------------------------------------------------------------\n\nMEL/CDL ITEMS DESCRIPTION\n------------- -----------\n\n--------------------------------------------------------------------\n\nROUTING:\n\nROUTE ID: DEFRTE\nOMDB/30L KUTLI3F KUTLI DCT EMERU EMERU2D OMAA/31L\n\n--------------------------------------------------------------------\nDEPARTURE ATC CLEARANCE:\n.\n.\n.\n--------------------------------------------------------------------\n OPERATIONAL IMPACTS\n -------------------\nWEIGHT CHANGE UP 1.0 TRIP P 0027 LBS TIME P 0000\nWEIGHT CHANGE DN 1.0 TRIP P 0018 LBS TIME P 0000\nFL CHANGE UP FL1 NOT AVAILABLE\nFL CHANGE DN FL1 TRIP P 0033 LBS TIME P 0000\nFL CHANGE DN FL2 TRIP P 0028 LBS TIME P 0000\nSPD CHANGE CI 0 TRIP M 0001 LBS TIME P 0000\nSPD CHANGE CI 100 TRIP P 0066 LBS TIME M 0001\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Times and Weights///1-->--------------------------------------------------------------------\nATIS:\n.\n.\n--------- --------- --------- --------- --------- --------- --------\nRVSM: ALT SYS LEFT: STBY: RIGHT:\n\n--------- --------- --------- --------- --------- --------- --------\n--------------------------------------------------------------------\n TIMES\n -----\n\t\t\t\t \n ESTIMATED SKED ACTUAL\n\nOUT 1230Z/1630L 1230Z/1630L ......Z\n\nOFF 1240Z/1640L 1240Z/1640L ......Z\n\nON 1309Z/1709L 1439Z/1839L ......Z\n\nIN 1315Z/1715L 1445Z/1845L ......Z\n\nBLOCK TIME 0045 0215 ......\n\n--------------------------------------------------------------------\n WEIGHTS\n -------\n\n EST MAX ACTUAL\n\nPAX 145 ......\n\nCARGO 0.2 ......\n\nPAYLOAD 33.6 ......\n\nZFW 117.7 121.7 ......\n\nFUEL 9.3 14.4 ...... POSS EXTRA 5.1\n\nTOW 126.7 131.8 LDG......\n\nSTAB TRIM ......\n\nLAW 124.1 129.2 ......\n\n--------------------------------------------------------------------\n TERRAIN CLEARANCE CHECK\n -----------------------\nDD CHECK - TERRAIN CLEARANCE CHECK DISABLED\n\nDP CHECK - TERRAIN CLEARANCE CHECK DISABLED\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Flight Log///1--> FLIGHT LOG \n ---------- \n\nMOST CRITICAL MORA 02400 FEET AT TONKI///MXSHR 02 AT TOC\n--------------------------------------------------------------------\nAWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\n 302 9.0 0.3\nDUBAI INTL N2515.2 ... 21 304 M021 \nOMDB E05521.9 0000 ... 105 274 .... ....\n\nKUTLI3F 098 234 .45 282/023 04 8.6 0.7\nDB570 N2517.7 0001 ... 21 236 M021 P09\nDB570 E05517.7 0001 ... 5 100 274 348 .... ....\n\nKUTLI3F 142 250 .55 272/032 M04 8.0 1.2\nDB575 N2513.7 0003 ... 21 252 M026 P09\nDB575 E05510.9 0004 ... 7 93 328 348 .... ....\n\nKUTLI3F 157 245 .57 274/035 M07 7.6 1.6\nDB467 N2512.1 0001 ... 20 247 M033 P09\nDB467 E05505.5 0005 ... 5 88 330 348 .... ....\n\nKUTLI3F 160 246 .57 275/036 M08 7.5 1.7\nT O C N2511.8 0001 ... 20 247 365 M032 P09\n E05504.5 0006 ... 1 87 333 2 348 .... ....\n\nKUTLI3F 160 178 .53 275/036 M08 7.4 1.9\nGINLA N2508.4 0001 ... 21 180 338 M032 P09\nGINLA E05455.6 0007 ... 9 78 306 2 348 .... ....\n\nKUTLI3F 160 174 .52 275/036 M08 7.3 2.0\nXARTA N2501.6 0002 ... 21 176 329 P001 P09\nXARTA E05455.6 0009 ... 7 71 330 2 348 .... ....\n\nKUTLI3F 160 117 .52 275/036 M08 7.2 2.1\nKUTLI N2451.9 0001 ... 23 118 328 P004 P09\nKUTLI E05456.3 0010 ... 10 61 332 2 348 .... ....\n\nDCT 160 117 .51 275/036 M08 7.1 2.2\nT O D N2449.4 0001 ... 22 118 321 P033 P09\n E05501.1 0011 ... 5 56 354 2 348 .... ....\n\nDCT 154 209 .56 274/034 M07 7.1 2.2\nEMERU N2448.5 0001 ... 23 210 P031 P09\nEMERU E05503.0 0012 ... 2 54 392 348 .... ....\n\nEMERU2D 107 209 .51 280/025 02 6.9 2.3\nTUGVA N2435.0 0004 ... 23 210 M009 P08\nTUGVA E05454.3 0016 ... 16 38 325 348 .... ....\n\nEMERU2D 077 126 .43 288/019 08 6.9 2.4\nTONKI N2426.8 0002 ... 24 128 M005 P08\nTONKI E05448.9 0018 ... 10 28 280 516 .... ....\n\n<h2 style=\"page-break-after: always;\"> </h2>AWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\nEMERU2D 050 285 .41 300/015 09 6.8 2.5\nLOXIX N2421.3 0003 ... 23 286 P015 P04\nLOXIX E05456.5 0021 ... 9 19 286 516 .... ....\n\nEMERU2D 6.4 2.9\nABU DHABI I N2426.0 0008 ... \nOMAA E05439.1 0029 ... 19 .... ....\n\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Wind Information///1-->--------------------------------------------------------------------\n WIND INFORMATION \n ---------------- \n\nCLIMB T O C GINLA XARTA\n350 259/067 -51 200 273/042 -19 200 273/042 -19 200 273/042 -19\n310 264/052 -47 180 275/039 -14 180 275/039 -14 180 275/039 -14\n200 273/042 -19 160 275/036 -08 160 275/036 -08 160 275/036 -08\n150 273/033 -06 140 272/031 -04 140 272/031 -04 140 272/031 -04\n100 282/024 +04 120 276/027 +00 120 276/027 +00 120 276/027 +00\n\nKUTLI T O D DESCENT\n200 273/042 -19 200 273/042 -19 350 256/083 -50\n180 275/039 -14 180 275/039 -14 310 256/065 -45\n160 275/036 -08 160 275/036 -08 200 269/044 -18\n140 272/031 -04 140 272/031 -04 150 275/033 -06\n120 276/027 +00 120 276/027 +00 100 269/021 +04\n\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///ATC Flight Plan///0--><b>[ ATC Flight Plan ]\n--------------------------------------------------------------------</b>\n ICAO FLIGHT PLAN \n ---------------- \n\nFF OMAEZQZX\n311548 CYULSBFP\n(FPL-VMS113-IS\n-B737/M-SDE2E3FGHIRWXY/LB1\n-OMDB1230\n-N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n-OMAA0019 OMDB\n-PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS)<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Additional Info///0--><b>[ Additional Info ]\n--------------------------------------------------------------------</b>\nD I S P A T C H B R I E F I N G I N F O VMS0113 OMDB/OMAA\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Airport WX List///0--><b>[ Airport WX List ]\n--------------------------------------------------------------------</b>\nOMDB --> OMAA VMS 113 / 01JAN2014\nLIDO/WEATHER SERVICE DATE : 31Mar2020 TIME : 15:48 UTC\n\nAIRMETs:\n No Wx data available\n\nSIGMETs:\n No Wx data available\n\nTropical Cyclone SIGMETs:\n No Wx data available\n\nVolcanic Ash SIGMETs:\n No Wx data available\n\nDeparture / Destination Alternate:\nOMDB/DXB DUBAI INTL\n SA 311500 28009KT CAVOK 24/16 Q1013 NOSIG\n FT 311101 3112/0118 28014KT CAVOK\n BECMG 3116/3118 20007KT\n BECMG 0108/0110 30012KT\n BECMG 0116/0118 21007KT\n\nDestination:\nOMAA/AUH ABU DHABI INTL\n SA 311500 32011KT CAVOK 24/16 Q1013 NOSIG\n FT 311100 3112/0118 30014KT CAVOK\n BECMG 3118/3120 23006KT\n PROB30 0101/0104 3500 HZ\n BECMG 0107/0109 30012KT\n BECMG 0117/0118 VRB02KT\n\n\n\n AIRPORTLIST ENDED<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///NOTAM///0--><b>[ NOTAM ]\n--------------------------------------------------------------------</b>\nLIDO-NOTAM-BULLETIN INCLUDES NOTAM, COMP NOTAM AND AIP-REGULATION\n<b>VALID: 1401011230 - 1401011650</b> STD(EOBT)+TRIP+ALTN+3HRS\nVMS 113 /01JAN OFP-NR: 1\nROUTE: OMDB - OMAA ALTN: OMDB\nN0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n\n\n<b>=============================================\nDEPARTURE / ALTERNATE AIRPORT - DETAILED INFO\n=============================================</b>\n\n<b>OMDB/DXB DUBAI INTL\n-----------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0802/20 </b>\n H24\n SECN OF TXL T BTN TXL S AND <b>TWY M</b> <b>CLSD</b>.\n SECN OF <b>TWY M</b> BTN <b>TWY M20</b> AND <b>TWY M21</b> <b>CLSD</b>.\n <b>TWY M21</b> AND ASSOCIATED LINKS <b>CLSD</b>.\n<b>A0817/20 </b>\n H24\n SECN OF TXL J BEHIND STANDS D1 TO D3 <b>CLSD</b>.\n<b>A0808/20 </b>\n H24\n SECN OF TXL P BTN ACFT STANDS E14 AND E18 AND ASSOCIATED <b>TWY P3</b>\n LINK <b>CLSD</b>.\n<b>A0769/20 </b>\n H24\n RFFS <b>CAT</b> <b>DOWNGRADED</b> TO <b>CAT</b> 7.\n <b>CAT</b> 8, <b>CAT</b> 9 AND <b>CAT</b> 10 <b>AVBL</b> WITH 20 MIN PN.\n<b>A0766/20 </b>\n H24\n <b>TWY Z8</b> AND <b>TWY Z9</b> <b>NOT AVBL</b>.\n<b>A0754/20 </b>\n HJ\n UAS ACT WILL TAKE PLACE WI AREA BOUNDED BY LINES JOINING:\n 251806.38N 0551940.66E\n 251636.78N 0551741.26E\n 251730.33N 0551711.46E\n 251809.04N 0551741.28E\n 251815.30N 0551851.37E\n F) SFC G) 200FT AGL\n<b>A0302/20 </b>\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020 <b>TWY</b>\n DETAILS AMD\n VFR CHARTS AMD\n<b>A0689/20 </b>\n H24\n OBST CRANE ELEV 88M ERECTED AT VCY OF PSN 251505.28N 0552024.29E\n ARP BRG 266 DEG MAG DIST 2.5KM. CRANE LGT AT NGT\n F) SFC G) 289FT AMSL<h2 style=\"page-break-after: always;\"> </h2><b>A0535/20 </b>\n H24\n <b>TWY K13</b> <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY K</b> EASTBOUND <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY K</b> WESTBOUND <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY J5</b> <b>CLSD</b>\n <b>TWY K</b> CL TO OBJECT CLR REDUCED TO 47.5M ABEAM <b>TWY K13</b>\n<b>A0469/20 </b>\n H24\n OBST CRANE ELEV 338M ERECTED AT VCY OF PSN 251233.9N 0552037.8E\n OMDB ARP BRG 201 DEG MAG DIST 5230M.\n CRANE LGT AT NGT.\n F) SFC G) 1109FT AMSL\n<b>A0264/20 </b>\n DLY BTN 0300-0700\n PILOTS TO BE ADVISED OF FLOCKS OF GULLS TRAVELLING FM NORTH TO\n SOUTH AND VICE VERSA. ANY BIRDSTRIKE TO BE REPORTED TO ATC.\n F) 500FT AGL G) 1500FT AGL\n<b>A0171/20 </b>\n H24\n OBST CRANE ELEV 207M ERECTED AT VCY OF PSN 251043.69N 0551835.79E\n ARP BRG 212 DEG MAG DIST 9.93KM.\n CRANE LGT AT NGT.\n F) SFC G) 679FT AMSL\n<b>A0149/20 </b>\n H24\n OBST CRANES ELEV 306M ERECTED AT VCY OF PSN 251225.83N 0552032.74E\n ARP BRG 202 DEG MAG DIST 5.5KM\n CRANE LIT AT NGT.\n F) SFC G) 1004FT AMSL\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A0752/20 </b>\n H24\n <b>RWY 12L/30R</b> <b>CLSD</b>\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A0275/20 </b>\n SID ITOTU 1F <b>RWY</b> 30L/R <b>WITHDRAWN</b>\n REF UAE AIP CHART OMDB <b>AD</b> 2-42.\n\n<b>===================================\nDESTINATION AIRPORT - DETAILED INFO\n===================================</b>\n\n<b>OMAA/AUH ABU DHABI INTL\n---------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0796/20 </b>\n H24\n <b>TWY A</b> BTN <b>TWY A14</b> AND <b>TWY A17</b> INCLUDING INT WITH <b>TWY A16</b> AND <b>TWY</b>\n B15 <b>CLSD</b>.<h2 style=\"page-break-after: always;\"> </h2><b>A0798/20 </b>\n DLY BTN 0300-1400\n <b>TWY A</b> BTN <b>TWY A14</b> AND <b>TWY G</b> INCLUDING INT OF <b>TWY A14</b> AND <b>TWY A</b>\n <b>CLSD</b> DUE <b>WIP</b>.\n INT <b>TWY A17</b> AND <b>TWY A</b> <b>CLSD</b> DUE <b>WIP</b>.\n <b>TWY B</b> BTN <b>TWY A18</b> AND <b>TWY G</b> <b>CLSD</b> DUE <b>WIP</b>.\n<b>A0799/20 </b>\n DLY BTN 0300-1400\n OBST CRANE OPR WI AREA BOUNDED BY LINES JOINING:\n 242636.62N 0543958.28E\n 242630.00N 0544007.42E\n 242634.26N 0543956.35E\n 242627.55N 0544005.24E\n 242636.62N 0543958.28E\n F) SFC G) 036FT AGL\n<b>A0299/20 </b>\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020\n SURVEILLANCE SER BASED ON MODE S MULTILATERATION PROC ADDED MISSED\n APCH ALT AMD\n CHART REF FOR RVR LCA AMD.\n<b>A0738/20 </b>\n H24\n <b>TWY C</b> AND <b>TWY N</b> <b>CLSD</b>.\n<b>A0737/20 </b>\n H24\n SECN OF <b>TWY B</b> BTN <b>TWY B9</b> AND <b>TWY G</b> <b>CLSD</b> DUE <b>WIP</b>.\n<b>A0401/20 </b>\n DLY BTN 0200-1600\n OBST CRAWLER CRANE OPR IN YAS ISLAND WI RADIUS 56M AT PSN\n 242742.38N 0543602.65E\n F) SFC G) 338FT AGL\n<b>A0408/20 </b>\n DLY BTN 0130-0300 AND 1430-1530\n IN ORDER TO MNTN ATC FAMILIARITY WITH THE NEW AIRFIELD LGT SYSTEM,\n ATC WILL UTILISE THE SYSTEM IN THE SOUTH AIRFIELD DURING THESE\n TIMES IN <b>CAT</b> I COND. ATC WILL CONT TO ISSUE STANDARD <b>TWY</b> ROUTINGS\n BY RTF, AND WILL SUPPLEMENT THESE BY PROVIDING GREEN CL LIGHT\n ROUTINGS. INSTRUCTIONS ISSUED BY RTF TAKE PRECEDENCE, AND\n THEREFORE SHOULD THERE BE ANY DOUBT, OR IF IT IS BELIEVED THERE IS\n A DISCREPANCY BTN RTF INSTRUCTIONS AND GND LGT ROUTINGS, ACFT\n SHALL CTC ATC AT THE EARLIEST OPPORTUNITY AND, IF NECCESSARY, HOLD\n PSN WHEN SAFE TO DO SO.\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A0797/20 </b>\n DLY BTN 0300-1400\n <b>RWY 13L/31R</b> <b>CLSD</b> DUE <b>WIP</b>.\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Company NOTAM///0--><b>[ Company NOTAM ]\n--------------------------------------------------------------------</b>\n<b>==========\nCREW ALERT\n==========</b>\n\n<b>SB007/14 </b>\n SUBJECT: AUTO COST INDEXES\n <t>WHEN PLANNING A COST INDEX, 2 OPTIONS ARE AVAILABLE. PILOTS MAY\n EITHER SELECT A SPECIFIC COST INDEX NUMBER FROM THE LIST, OR THEY\n MAY SELECT \"AUTO\". WHEN PLANNING AN \"AUTO\" COST INDEX, THE SYSTEM\n WILL REFERENCE THE \"TIME ENROUTE\" OPTION AND ATTEMPT TO CHOOSE A\n COST INDEX WHICH CLOSELY MATCHES THIS VALUE. NOTE THAT THE \"TIME\n ENROUTE\" OPTION IS MEANT AS A GATE TO GATE TIME (AS INDICATED ON\n AN AIRLINE'S FLIGHT SCHEDULE, FOR EXAMPLE). IF A \"TIME ENROUTE\" OF\n 2:30 IS SELECTED, THE SYSTEM WILL SUBTRACT THE TAXI TIMES FROM\n THIS VALUE TO DETERMINE THE SCHEDULED AIR TIME. IT WILL THEN\n DETERMINE AND USE THE COST INDEX WHICH MATCHES THIS AIR TIME.</t>\n\n<b>SB003/13 </b>\n SUBJECT: FLIGHT RELEASE UNITS\n <t>ALL FLIGHT CREW: PLEASE PAY SPECIAL ATTENTION TO THE UNITS\n SELECTION WHEN GENERATING A FLIGHT PLAN. FAILURE TO IDENTIFY THE\n CORRECT UNITS WHEN REFUELING PRIOR TO FLIGHT CAN RESULT IN\n DEPARTING WITH INSUFFICIENT FUEL AND/OR AN ERRONEOUS PAYLOAD.</t>\n\n<b>=============\nCREW BULLETIN\n=============</b>\n\nNIL\n\n\n==================== END OF LIDO-NOTAM-BULLETIN ====================<h2 style=\"page-break-after: always;\"> </h2>Route\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_ROUTE.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_ROUTE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 1 of 1\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_SIGWX06.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_SIGWX06.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 1 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS14000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS14000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 2 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS18000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS18000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 3 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS24000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS24000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>Vertical profile\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_PROFILE.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_PROFILE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a></pre></div>\n \n \n VMS\n 113\n B737\n OMDB\n OMAA\n 1388534400\n 43200\n 1800\n KUTL3F KUTLI EMERU EMER2D\n 7200\n 900\n \n \n \n auto\n OMDB\n \n NABEEL SHAHZAD\n 120867\n 1\n auto\n 0\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n AUTO\n lido\n 1\n 1\n 0\n 0\n 1\n 1\n 0\n 1\n \n \n \n \n \n \n \n \n \n false\n \n \n\n" ofp_xml: "\n\n \n 19893491\n 120867\n 1585669695\n lido2\n 2001\n lbs\n \n \n 1\n VMS\n 113\n 0\n PLANNED OPTIMUM FLIGHT LEVEL\n \n 1\n CI5\n 250/280/78\n 78/280/250\n CI0\n RES\n 5\n 16000\n OMDB/0160\n 8\n 38512\n -6\n 278\n 028\n 63\n 105\n 108\n 2606\n 338\n .53\n 145\n KUTL3F KUTLI DCT EMERU EMER2D\n KUTLI3F KUTLI DCT EMERU EMERU2D\n KUTL3F KUTLI DCT EMERU EMER2D\n \n \n OMDB\n DXB\n \n 62\n 25.252778\n 55.364444\n DUBAI INTL\n 30L\n \n \n OMAA\n AUH\n \n 83\n 24.433056\n 54.651111\n ABU DHABI INTL\n 31L\n \n \n OMDB\n DXB\n \n 62\n 25.252778\n 55.364444\n DUBAI INTL\n 30L\n 18000\n 139\n 63\n 137\n 038\n 036\n 328\n 331\n P003\n 274\n 033\n 39100\n P07\n 2104\n 2906\n DCT BOMUP DCT LOVIM DCT RESIG DCT NODVI DCT OBMUK DCT LORID DCT ORGUR DCT PEBUS DCT EMOPO DCT LOTUK DCT LAGTA DCT LOVOL DCT\n DCT BOMUP DCT LOVIM DCT RESIG DCT NODVI DCT OBMUK DCT LORID DCT ORGUR DCT PEBUS DCT EMOPO DCT LOTUK DCT LAGTA DCT LOVOL DCT\n \n \n \n \n \n DB570\n DB570\n wpt\n \n 25.295528\n 55.294722\n CLB\n KUTL3F\n 1\n 5\n 304\n 302\n 302\n 300\n 9800\n 250\n 295\n 0.45\n 0.45\n -21\n 274\n 100\n 100\n 14149\n 407\n 407\n 7264\n 8602\n 4\n 9\n 282\n 23\n 0\n 34800\n 12\n 2100\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n DB575\n DB575\n wpt\n \n 25.227500\n 55.181111\n CLB\n KUTL3F\n 1\n 7\n 236\n 234\n 239\n 237\n 14200\n 280\n 354\n 0.55\n 0.55\n -26\n 328\n 140\n 240\n 14074\n 568\n 975\n 6696\n 8034\n -4\n 9\n 272\n 32\n 0\n 34800\n 12\n 2100\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n DB467\n DB467\n wpt\n \n 25.202222\n 55.091667\n CLB\n KUTL3F\n 1\n 5\n 252\n 250\n 254\n 252\n 15700\n 280\n 363\n 0.57\n 0.57\n -33\n 330\n 100\n 340\n 14023\n 406\n 1381\n 6290\n 7628\n -7\n 9\n 274\n 35\n 0\n 34800\n 12\n 2100\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n TOC\n TOP OF CLIMB\n ltlg\n \n 25.195879\n 55.074647\n CLB\n KUTL3F\n 1\n 1\n 247\n 245\n 250\n 248\n 16000\n 280\n 365\n 0.57\n 0.57\n -32\n 333\n 20\n 360\n 13999\n 81\n 1462\n 6209\n 7547\n -8\n 9\n 275\n 36\n 0\n 34800\n 12\n 2000\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n GINLA\n GINLA\n wpt\n \n 25.140833\n 54.927222\n CRZ\n KUTL3F\n 1\n 9\n 247\n 246\n 250\n 248\n 16000\n 259\n 338\n 0.53\n 0.532\n -32\n 306\n 106\n 466\n 4796\n 141\n 1603\n 6068\n 7406\n -8\n 9\n 275\n 36\n 0\n 34800\n 12\n 2000\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n XARTA\n XARTA\n wpt\n \n 25.025861\n 54.927222\n CRZ\n KUTL3F\n 1\n 7\n 180\n 178\n 186\n 184\n 16000\n 253\n 329\n 0.52\n 0.519\n 1\n 330\n 76\n 542\n 4669\n 99\n 1702\n 5969\n 7307\n -8\n 9\n 275\n 36\n 0\n 34800\n 12\n 2100\n OMAE\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n KUTLI\n KUTLI\n wpt\n \n 24.864250\n 54.938333\n CRZ\n KUTL3F\n 0\n 10\n 176\n 174\n 182\n 180\n 16000\n 252\n 328\n 0.52\n 0.517\n 4\n 332\n 108\n 651\n 4652\n 140\n 1842\n 5829\n 7167\n -8\n 9\n 275\n 36\n 0\n 34800\n 12\n 2100\n OMAE\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n TOD\n TOP OF DESCENT\n ltlg\n \n 24.824103\n 55.018735\n CRZ\n DCT\n 0\n 5\n 118\n 117\n 121\n 119\n 16000\n 246\n 321\n 0.51\n 0.506\n 33\n 354\n 51\n 702\n 4559\n 64\n 1906\n 5765\n 7103\n -8\n 9\n 275\n 36\n 0\n 34800\n 12\n 2300\n OMAE\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n EMERU\n EMERU\n wpt\n \n 24.808056\n 55.050833\n DSC\n DCT\n 0\n 2\n 118\n 117\n 120\n 118\n 15400\n 280\n 361\n 0.56\n 0.56\n 31\n 392\n 31\n 733\n 3026\n 18\n 1924\n 5747\n 7085\n -7\n 9\n 274\n 34\n 0\n 34800\n 12\n 2200\n OMAE\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n TUGVA\n TUGVA\n wpt\n \n 24.583889\n 54.904222\n DSC\n EMER2D\n 1\n 16\n 210\n 209\n 214\n 212\n 10700\n 280\n 334\n 0.51\n 0.51\n -9\n 325\n 249\n 982\n 3031\n 141\n 2065\n 5606\n 6944\n 2\n 8\n 280\n 25\n 0\n 34800\n 12\n 2300\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 293\n 19\n 20\n \n \n 5000\n 291\n 20\n 10\n \n \n 10000\n 282\n 24\n 4\n \n \n 14000\n 272\n 31\n -4\n \n \n 18000\n 275\n 39\n -14\n \n \n 24000\n 270\n 47\n -29\n \n \n 30000\n 266\n 49\n -45\n \n \n 34000\n 260\n 63\n -51\n \n \n 39000\n 255\n 79\n -52\n \n \n 45000\n 249\n 77\n -56\n \n \n \n \n \n TONKI\n TONKI\n wpt\n \n 24.445861\n 54.814222\n DSC\n EMER2D\n 1\n 10\n 210\n 209\n 214\n 212\n 7700\n 250\n 285\n 0.43\n 0.43\n -5\n 280\n 156\n 1137\n 3036\n 88\n 2153\n 5518\n 6856\n 8\n 8\n 288\n 19\n 0\n 51600\n 369\n 2300\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 316\n 16\n 22\n \n \n 5000\n 300\n 15\n 9\n \n \n 10000\n 269\n 21\n 4\n \n \n 14000\n 273\n 31\n -3\n \n \n 18000\n 271\n 40\n -13\n \n \n 24000\n 268\n 45\n -29\n \n \n 30000\n 256\n 60\n -43\n \n \n 34000\n 255\n 79\n -50\n \n \n 39000\n 258\n 98\n -52\n \n \n 45000\n 252\n 88\n -58\n \n \n \n \n \n LOXIX\n LOXIX\n wpt\n \n 24.354528\n 54.942417\n DSC\n EMER2D\n 1\n 9\n 128\n 126\n 128\n 126\n 5000\n 250\n 271\n 0.41\n 0.41\n 15\n 286\n 140\n 1277\n 3004\n 79\n 2232\n 5439\n 6777\n 9\n 4\n 300\n 15\n 0\n 51600\n 369\n 2400\n OMAE\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 316\n 16\n 22\n \n \n 5000\n 300\n 15\n 9\n \n \n 10000\n 269\n 21\n 4\n \n \n 14000\n 273\n 31\n -3\n \n \n 18000\n 271\n 40\n -13\n \n \n 24000\n 268\n 45\n -29\n \n \n 30000\n 256\n 60\n -43\n \n \n 34000\n 255\n 79\n -50\n \n \n 39000\n 258\n 98\n -52\n \n \n 45000\n 252\n 88\n -58\n \n \n \n \n \n OMAA\n ABU DHABI INTL\n apt\n \n 24.433056\n 54.651111\n DSC\n EMER2D\n 1\n 19\n 286\n 285\n 288\n 286\n 2600\n 250\n 262\n 0.39\n 0.39\n -15\n 247\n 475\n 1753\n 3014\n 374\n 2606\n 5065\n 6403\n 15\n 5\n 313\n 17\n 1\n 51600\n 369\n 2300\n OMAE\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 316\n 16\n 22\n \n \n 5000\n 300\n 15\n 9\n \n \n 10000\n 269\n 21\n 4\n \n \n 14000\n 273\n 31\n -3\n \n \n 18000\n 271\n 40\n -13\n \n \n 24000\n 268\n 45\n -29\n \n \n 30000\n 256\n 60\n -43\n \n \n 34000\n 255\n 79\n -50\n \n \n 39000\n 258\n 98\n -52\n \n \n 45000\n 252\n 88\n -58\n \n \n \n \n \n \n \n (FPL-VMS113-IS\n-B737/M-SDE2E3FGHIRWXY/LB1\n-OMDB1230\n-N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n-OMAA0029 OMDB\n-PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS)\n N0338F160 KUTL3F KUTLI DCT EMERU EMER2D\n N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n VMS113\n 0338\n N\n 160\n F\n PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS\n OMAE\n OMAE\n OMAE\n \n \n \n \n B737\n 73G\n B737-700\n N714SB\n 714\n \n M-SDE2E3FGHIRWXY/LB1\n 149\n 1\n \n \n 250\n 2606\n 1338\n 2906\n 2159\n 0\n 0\n 9009\n 9009\n 9259\n 6653\n 5353\n 46100\n \n \n 1753\n 7140\n 1388579400\n 1388580000\n 1388587140\n 1388587500\n 8100\n 1388579400\n 1388580000\n 1388581753\n 1388582113\n 2713\n 4\n 4\n 600\n 360\n 1800\n 6907\n 900\n 0\n 0\n \n \n 84119\n 145\n 230\n 200\n 33550\n 117669\n 121700\n 126678\n 131806\n 154500\n L\n 124072\n 129200\n 126928\n \n \n \n 1829\n 77\n 2698\n 92\n 9341\n 100\n 294\n 0.45\n 5\n \n \n 1775\n 22\n 2634\n 28\n 9285\n 120\n 315\n 0.49\n 5\n \n \n 1761\n 8\n 2639\n 33\n 9303\n 140\n 327\n 0.51\n 5\n \n \n \n \n \n 1671\n -81\n 2672\n 66\n 9426\n 160\n 432\n 0.68\n 100\n \n \n 1763\n 11\n 2605\n -1\n 9250\n 160\n 328\n 0.52\n 0\n \n \n 1758\n 6\n 2633\n 27\n 9296\n 140\n 328\n 0.51\n 5\n \n \n 1763\n 10\n 2624\n 18\n 9279\n 140\n 325\n 0.51\n 5\n \n \n \n 120867\n NABEEL SHAHZAD\n RAMON HERMAN\n GENEVA CROSS\n GERARD HAMMOND\n JOANNA COHEN\n DARRIN SHAW\n JACQUELINE KELLY\n \n \n \n M\n KNSF\n V0090/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101229\n 202004230001\n 202002101229\n V0090/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101229 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n VOR RWY 31L; MINIMA TO READÂ\NS-31L* CAT AB 520-750M 437 (500-750M).\n CIRCLING CAT AB 800-1600M 717 (800-1600M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED VOR RWY 31L; MINIMA TO READ S-31L* CAT AB 520-750M 437 (500-750M). CIRCLING CAT AB 800-1600M 717 (800-1600M). 10 FEB 12:29 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:29 2020\n NOTAMN\n QPICH\n \n \n M\n KNSF\n V0089/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101228\n 202004230001\n 202002101228\n V0089/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101228 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n VOR RWY 13R; MINIMA TO READÂ\NS-13R* CAT AB 540-1200M 462\n (500-1200M), CAT CD 540-1500M 462 (500-1500M). *WHEN ALS INOP,\n INCREASE CAT CD VIS TO 2200M. CIRCLING CAT AB 800-1900M 717\n (800-1900M), CAT C 900-4000M 817 (900-4000M), CAT D 900-4400M 817\n (900-4400M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED VOR RWY 13R; MINIMA TO READ S-13R* CAT AB 540-1200M 462 (500-1200M), CAT CD 540-1500M 462 (500-1500M). *WHEN ALS INOP, INCREASE CAT CD VIS TO 2200M. CIRCLING CAT AB 800-1900M 717 (800-1900M), CAT C 900-4000M 817 (900-4000M), CAT D 900-4400M 817 (900-4400M). 10 FEB 12:28 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:28 2020\n NOTAMN\n QPICH\n \n \n M\n KNSF\n V0088/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101226\n 202004230001\n 202002101226\n V0088/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101226 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n ILS RWY 31R; MINIMA TO READÂ\NS-LOC 31R* CAT ABCD 750-2400M 678\n (700-2400M). *WHEN ALS INOP, INCREASE CAT AB VIS TO 3100M. CIRCLING\n 780-3200M 697 (700-3200M), CAT CD 880-3600M 797 (800-3600M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED ILS RWY 31R; MINIMA TO READ S-LOC 31R* CAT ABCD 750-2400M 678 (700-2400M). *WHEN ALS INOP, INCREASE CAT AB VIS TO 3100M. CIRCLING 780-3200M 697 (700-3200M), CAT CD 880-3600M 797 (800-3600M). 10 FEB 12:26 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:26 2020\n NOTAMN\n QPICH\n \n \n M\n KNSF\n V0087/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101224\n 202004230001\n 202002101225\n V0087/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101224 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n ILS RWY 31L; MA CG REQUIRED TO CROSS VEDEX AT 4000 IS 247 FPNM OR\n 4.05%. MINIMA TO READÂ\NS-ILS 31L* CAT AB 350-800M 267 (300-800M),\n CAT CD 369-800M 286 (300-800M). *WHEN ALS INOP, INCREASE CAT AB VIS\n TO 1300M, CAT CD VIS TO 1400M. S-LOC 31L** CAT ABCD 480-1100M 397\n (400-1100M). **WHEN ALS INOP, INCREASE CAT ABCD VIS TO 1800M.\n CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT CD 880-3600M 797\n (800-3600M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED ILS RWY 31L; MA CG REQUIRED TO CROSS VEDEX AT 4000 IS 247 FPNM OR 4.05%. MINIMA TO READ S-ILS 31L* CAT AB 350-800M 267 (300-800M), CAT CD 369-800M 286 (300-800M). *WHEN ALS INOP, INCREASE CAT AB VIS TO 1300M, CAT CD VIS TO 1400M. S-LOC 31L** CAT ABCD 480-1100M 397 (400-1100M). **WHEN ALS INOP, INCREASE CAT ABCD VIS TO 1800M. CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT CD 880-3600M 797 (800-3600M). 10 FEB 12:24 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:25 2020\n NOTAMN\n QPICH\n \n \n M\n KNSF\n V0086/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101221\n 202004230001\n 202002101222\n V0086/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101221 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n ILS RWY 13R; MINIMA TO READÂ\NS-ILS 13R* CAT AB 288-800M 210\n (300-800M), CAT CD 309-800M 231 (300-800M). *WHEN ALS INOP,\n INCREASE CAT ABCD VIS TO 1200M. S-LOC 13R** CAT ABC 510-1300M 427\n (500-1300M). **WHEN ALS INOP, INCREASE CAT ABC VIS TO 2000M.\n CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT C 880-3600M 797\n (800-3600M), CAT D 970-3800M 827 (900-3800M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED ILS RWY 13R; MINIMA TO READ S-ILS 13R* CAT AB 288-800M 210 (300-800M), CAT CD 309-800M 231 (300-800M). *WHEN ALS INOP, INCREASE CAT ABCD VIS TO 1200M. S-LOC 13R** CAT ABC 510-1300M 427 (500-1300M). **WHEN ALS INOP, INCREASE CAT ABC VIS TO 2000M. CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT C 880-3600M 797 (800-3600M), CAT D 970-3800M 827 (900-3800M). 10 FEB 12:21 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:22 2020\n NOTAMN\n QPICH\n \n \n M\n KNSF\n V0085/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002101213\n 202004230001\n 202002101214\n V0085/20 NOTAMN\nQ) OMAE/QPICH/I/BO/A/000/999/2426N05439E005 A) OMAA B) 2002101213 C) 2004230001\nE) [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED\n ILS RWY 13L; MINIMA TO READÂ\NS-ILS 13L* CAT AB 375-800M 313\n (300-800M), CAT CD 395-800M 333 (400-800M). *WHEN ALS INOP,\n INCREASE CAT AB VIS TO 1500M AND CAT CD VIS TO 1700M. S-LOC 13L**\n CAT AB 570-1600M 506 (500-1600M). WHEN ALS INOP, INCREASE CAT AB\n VIS TO 2400M. CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT CD\n 890-3600M 797 (800-3600M).\n [US DOD PROCEDURAL NOTAM] INSTRUMENT APPROACH PROCEDURE CHANGED ILS RWY 13L; MINIMA TO READ S-ILS 13L* CAT AB 375-800M 313 (300-800M), CAT CD 395-800M 333 (400-800M). *WHEN ALS INOP, INCREASE CAT AB VIS TO 1500M AND CAT CD VIS TO 1700M. S-LOC 13L** CAT AB 570-1600M 506 (500-1600M). WHEN ALS INOP, INCREASE CAT AB VIS TO 2400M. CIRCLING CAT AB 780-3200M 697 (700-3200M), CAT CD 890-3600M 797 (800-3600M). 10 FEB 12:13 2020 UNTIL 23 APR 00:01 2020. CREATED: 10 FEB 12:13 2020\n NOTAMN\n QPICH\n \n \n I\n OMAEYNYX\n A0799/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003310300\n 202004101400\n 202003301615\n A0799/20 NOTAMN\nQ) OMAE/QOBCE/IV/M/AE/000/001/2426N05439E001\nA) OMAA B) 2003310300 C) 2004101400\nD) DLY BTN 0300-1400\nE) OBST CRANE OPR WI AREA BOUNDED BY LINES JOINING:\n242636.62N 0543958.28E\n242630.00N 0544007.42E\n242634.26N 0543956.35E\n242627.55N 0544005.24E\n242636.62N 0543958.28E\nF) SFC G) 036FT AGL\n OBST CRANE OPR WI AREA BOUNDED BY LINES JOINING: 242636.62N 0543958.28E 242630.00N 0544007.42E 242634.26N 0543956.35E 242627.55N 0544005.24E 242636.62N 0543958.28E. SFC - 036FT AGL, DLY BTN 0300-1400, 31 MAR 03:00 2020 UNTIL 10 APR 14:00 2020. CREATED: 30 MAR 16:15 2020\n NOTAMN\n QOBCE\n \n \n I\n OMAEYNYX\n A0798/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003310300\n 202004051400\n 202003301506\n A0798/20 NOTAMN\nQ) OMAE/QMXLC/IV/M/A/000/999/2426N05439E005\nA) OMAA B) 2003310300 C) 2004051400\nD) DLY BTN 0300-1400\nE) TWY A BTN TWY A14 AND TWY G INCLUDING INT OF TWY A14 AND TWY A CLSD\nDUE WIP.\nINT TWY A17 AND TWY A CLSD DUE WIP.\nTWY B BTN TWY A18 AND TWY G CLSD DUE WIP.\n TWY A BTN TWY A14 AND TWY G INCLUDING INT OF TWY A14 AND TWY A CLSD DUE WIP. INT TWY A17 AND TWY A CLSD DUE WIP. TWY B BTN TWY A18 AND TWY G CLSD DUE WIP. DLY BTN 0300-1400, 31 MAR 03:00 2020 UNTIL 05 APR 14:00 2020. CREATED: 30 MAR 15:06 2020\n NOTAMN\n QMXLC\n \n \n I\n OMAEYNYX\n A0797/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003310300\n 202004051400\n 202003301450\n A0797/20 NOTAMN\nQ) OMAE/QMRLC/IV/NBO/A/000/999/2426N05439E005\nA) OMAA B) 2003310300 C) 2004051400\nD) DLY BTN 0300-1400\nE) RWY 13L/31R CLSD DUE WIP.\n RWY 13L/31R CLSD DUE WIP. DLY BTN 0300-1400, 31 MAR 03:00 2020 UNTIL 05 APR 14:00 2020. CREATED: 30 MAR 14:49 2020\n NOTAMN\n QMRLC\n \n \n I\n OMAEYNYX\n A0796/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003310300\n 202004101400\n 202003301440\n A0796/20 NOTAMN\nQ) OMAE/QMXLC/IV/M/A/000/999/2426N05439E005\nA) OMAA B) 2003310300 C) 2004101400\nD) H24\nE) TWY A BTN TWY A14 AND TWY A17 INCLUDING INT WITH TWY A16 AND TWY\nB15 CLSD.\n TWY A BTN TWY A14 AND TWY A17 INCLUDING INT WITH TWY A16 AND TWY B15 CLSD. H24, 31 MAR 03:00 2020 UNTIL 10 APR 14:00 2020. CREATED: 30 MAR 14:40 2020\n NOTAMN\n QMXLC\n \n \n I\n OMAEYNYX\n A0738/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003250450\n 202004072359\n 202003250450\n A0738/20 NOTAMN\nQ) OMAE/QMXLC/IV/M/A/000/999/2426N05439E005\nA) OMAA B) 2003250450 C) 2004072359\nD) H24\nE) TWY C AND TWY N CLSD.\n TWY C AND TWY N CLSD. H24, 25 MAR 04:50 2020 UNTIL 07 APR 23:59 2020. CREATED: 25 MAR 04:50 2020\n NOTAMN\n QMXLC\n \n \n I\n OMAEYNYX\n A0737/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003250300\n 202004301400\n 202003241615\n A0737/20 NOTAMN\nQ) OMAE/QMXLC/IV/M/A/000/999/2426N05439E005\nA) OMAA B) 2003250300 C) 2004301400\nD) H24\nE) SECN OF TWY B BTN TWY B9 AND TWY G CLSD DUE WIP.\n SECN OF TWY B BTN TWY B9 AND TWY G CLSD DUE WIP. H24, 25 MAR 03:00 2020 UNTIL 30 APR 14:00 2020. CREATED: 24 MAR 16:15 2020\n NOTAMN\n QMXLC\n \n \n I\n OMAEYNYX\n A0408/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002190130\n 202005191530\n 202002182001\n A0408/20 NOTAMN\nQ) OMAE/QMGXX/IV/B/A/000/999/2426N05439E005\nA) OMAA B) 2002190130 C) 2005191530\nD) DLY BTN 0130-0300 AND 1430-1530\nE) IN ORDER TO MNTN ATC FAMILIARITY WITH THE NEW AIRFIELD LGT SYSTEM,\nATC WILL UTILISE THE SYSTEM IN THE SOUTH AIRFIELD DURING THESE\nTIMES IN CAT I COND. ATC WILL CONT TO ISSUE STANDARD TWY ROUTINGS\nBY RTF, AND WILL SUPPLEMENT THESE BY PROVIDING GREEN CL LIGHT\nROUTINGS. INSTRUCTIONS ISSUED BY RTF TAKE PRECEDENCE, AND THEREFORE\nSHOULD THERE BE ANY DOUBT, OR IF IT IS BELIEVED THERE IS A\nDISCREPANCY BTN RTF INSTRUCTIONS AND GND LGT ROUTINGS, ACFT SHALL\nCTC ATC AT THE EARLIEST OPPORTUNITY AND, IF NECCESSARY, HOLD PSN\nWHEN SAFE TO DO SO.\n IN ORDER TO MNTN ATC FAMILIARITY WITH THE NEW AIRFIELD LGT SYSTEM, ATC WILL UTILISE THE SYSTEM IN THE SOUTH AIRFIELD DURING THESE TIMES IN CAT I COND. ATC WILL CONT TO ISSUE STANDARD TWY ROUTINGS BY RTF, AND WILL SUPPLEMENT THESE BY PROVIDING GREEN CL LIGHT ROUTINGS. INSTRUCTIONS ISSUED BY RTF TAKE PRECEDENCE, AND THEREFORE SHOULD THERE BE ANY DOUBT, OR IF IT IS BELIEVED THERE IS A DISCREPANCY BTN RTF INSTRUCTIONS AND GND LGT ROUTINGS, ACFT SHALL CTC ATC AT THE EARLIEST OPPORTUNITY AND, IF NECCESSARY, HOLD PSN WHEN SAFE TO DO SO. DLY BTN 0130-0300 AND 1430-1530, 19 FEB 01:30 2020 UNTIL 19 MAY 15:30 2020. CREATED: 18 FEB 20:01 2020\n NOTAMN\n QMGXX\n \n \n I\n OMAEYNYX\n A0401/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202002250200\n 202004201600\n 202002181239\n A0401/20 NOTAMN\nQ) OMAE/QOBCE/IV/M/AE/000/004/2427N05436E001\nA) OMAA B) 2002250200 C) 2004201600\nD) DLY BTN 0200-1600\nE) OBST CRAWLER CRANE OPR IN YAS ISLAND WI RADIUS 56M AT PSN\n242742.38N 0543602.65E\nF) SFC G) 338FT AGL\n OBST CRAWLER CRANE OPR IN YAS ISLAND WI RADIUS 56M AT PSN 242742.38N 0543602.65E. SFC - 338FT AGL, DLY BTN 0200-1600, 25 FEB 02:00 2020 UNTIL 20 APR 16:00 2020. CREATED: 18 FEB 12:39 2020\n NOTAMN\n QOBCE\n \n \n I\n OMAEYNYX\n A0299/20\n 1\n OMAA\n OMAA\n ABU DHABI INTL\n 1\n 202003260000\n 202004092359\n 202002050750\n A0299/20 NOTAMN\nQ) OMAE/QFATT/IV/BO/A/000/999/2426N05439E005\nA) OMAA B) 2003260000 C) 2004092359\nE) TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020\nSURVEILLANCE SER BASED ON MODE S MULTILATERATION PROC ADDED\nMISSED APCH ALT AMD\nCHART REF FOR RVR LCA AMD.\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020 SURVEILLANCE SER BASED ON MODE S MULTILATERATION PROC ADDED MISSED APCH ALT AMD CHART REF FOR RVR LCA AMD. 26 MAR 00:00 2020 UNTIL 09 APR 23:59 2020. CREATED: 05 FEB 07:50 2020\n NOTAMN\n QFATT\n \n \n I\n OMAEYNYX\n A0817/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003310210\n 202004300800\n 202003310211\n A0817/20 NOTAMR A0686/20\nQ) OMAE/QMXLC/IV/M/A/000/999/2515N05522E005\nA) OMDB B) 2003310210 C) 2004300800\nD) H24\nE) SECN OF TXL J BEHIND STANDS D1 TO D3 CLSD.\n SECN OF TXL J BEHIND STANDS D1 TO D3 CLSD. H24, 31 MAR 02:10 2020 UNTIL 30 APR 08:00 2020. CREATED: 31 MAR 02:10 2020\n NOTAMR\n QMXLC\n \n \n I\n OMAEYNYX\n A0808/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003310036\n 202004020800\n 202003310036\n A0808/20 NOTAMR A0767/20\nQ) OMAE/QMXLC/IV/M/A/000/999/2515N05522E005\nA) OMDB B) 2003310036 C) 2004020800\nD) H24\nE) SECN OF TXL P BTN ACFT STANDS E14 AND E18 AND ASSOCIATED TWY P3\nLINK CLSD.\n SECN OF TXL P BTN ACFT STANDS E14 AND E18 AND ASSOCIATED TWY P3 LINK CLSD. H24, 31 MAR 00:36 2020 UNTIL 02 APR 08:00 2020. CREATED: 31 MAR 00:36 2020\n NOTAMR\n QMXLC\n \n \n I\n OMAEYNYX\n A0802/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003310800\n 202004130800\n 202003310010\n A0802/20 NOTAMN\nQ) OMAE/QMXLC/IV/M/A/000/999/2515N05522E005\nA) OMDB B) 2003310800 C) 2004130800\nD) H24\nE) SECN OF TXL T BTN TXL S AND TWY M CLSD.\nSECN OF TWY M BTN TWY M20 AND TWY M21 CLSD.\nTWY M21 AND ASSOCIATED LINKS CLSD.\n SECN OF TXL T BTN TXL S AND TWY M CLSD. SECN OF TWY M BTN TWY M20 AND TWY M21 CLSD. TWY M21 AND ASSOCIATED LINKS CLSD. H24, 31 MAR 08:00 2020 UNTIL 13 APR 08:00 2020. CREATED: 31 MAR 00:10 2020\n NOTAMN\n QMXLC\n \n \n I\n OMAEYNYX\n A0769/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003290200\n 202004290200\n 202003281522\n A0769/20 NOTAMN\nQ) OMAE/QFFCG/IV/NBO/A/000/999/2515N05522E005\nA) OMDB B) 2003290200 C) 2004290200\nD) H24\nE) RFFS CAT DOWNGRADED TO CAT 7.\nCAT 8, CAT 9 AND CAT 10 AVBL WITH 20 MIN PN.\n RFFS CAT DOWNGRADED TO CAT 7. CAT 8, CAT 9 AND CAT 10 AVBL WITH 20 MIN PN. H24, 29 MAR 02:00 2020 UNTIL 29 APR 02:00 2020. CREATED: 28 MAR 15:22 2020\n NOTAMN\n QFFCG\n \n \n I\n OMAEYNYX\n A0766/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003281125\n 202004300800\n 202003281125\n A0766/20 NOTAMR A0580/20\nQ) OMAE/QMXXX/IV/M/A/000/999/2515N05522E005\nA) OMDB B) 2003281125 C) 2004300800\nD) H24\nE) TWY Z8 AND TWY Z9 NOT AVBL.\n TWY Z8 AND TWY Z9 NOT AVBL. H24, 28 MAR 11:25 2020 UNTIL 30 APR 08:00 2020. CREATED: 28 MAR 11:25 2020\n NOTAMR\n QMXXX\n \n \n I\n OMAEYNYX\n A0754/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003270200\n 202004171400\n 202003261220\n A0754/20 NOTAMN\nQ) OMAE/QWULW/IV/BO/AW/000/002/2517N05517E005\nA) OMDB B) 2003270200 C) 2004171400\nD) HJ\nE) UAS ACT WILL TAKE PLACE WI AREA BOUNDED BY LINES JOINING:\n251806.38N 0551940.66E\n251636.78N 0551741.26E\n251730.33N 0551711.46E\n251809.04N 0551741.28E\n251815.30N 0551851.37E\nF) SFC G) 200FT AGL\n UAS ACT WILL TAKE PLACE WI AREA BOUNDED BY LINES JOINING: 251806.38N 0551940.66E 251636.78N 0551741.26E 251730.33N 0551711.46E 251809.04N 0551741.28E 251815.30N 0551851.37E. SFC - 200FT AGL, HJ, 27 MAR 02:00 2020 UNTIL 17 APR 14:00 2020. CREATED: 26 MAR 12:20 2020\n NOTAMN\n QWULW\n \n \n I\n OMAEYNYX\n A0752/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003261400\n 202004021059\n 202003261138\n A0752/20 NOTAMN\nQ) OMAE/QMRLC/IV/NBO/A/000/999/2515N05522E005\nA) OMDB B) 2003261400 C) 2004021059\nD) H24\nE) RWY 12L/30R CLSD\n RWY 12L/30R CLSD. H24, 26 MAR 14:00 2020 UNTIL 02 APR 10:59 2020. CREATED: 26 MAR 11:38 2020\n NOTAMN\n QMRLC\n \n \n I\n OMAEYNYX\n A0689/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003220701\n 202005212359\n 202003220702\n A0689/20 NOTAMR A2797/19\nQ) OMAE/QOBCE/IV/M/AE/000/003/2515N05520E005\nA) OMDB B) 2003220701 C) 2005212359\nD) H24\nE) OBST CRANE ELEV 88M ERECTED AT VCY OF PSN 251505.28N 0552024.29E\nARP BRG 266 DEG MAG DIST 2.5KM. CRANE LGT AT NGT\nF) SFC G) 289FT AMSL\n OBST CRANE ELEV 88M ERECTED AT VCY OF PSN 251505.28N 0552024.29E ARP BRG 266 DEG MAG DIST 2.5KM. CRANE LGT AT NGT. SFC - 289FT AMSL, H24, 22 MAR 07:01 2020 UNTIL 21 MAY 23:59 2020. CREATED: 22 MAR 07:02 2020\n NOTAMR\n QOBCE\n \n \n I\n OMAEYNYX\n A0535/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003180800\n 202005071400\n 202003021049\n A0535/20 NOTAMN\nQ) OMAE/QMXXX/IV/M/A/000/999/2515N05522E005\nA) OMDB B) 2003180800 C) 2005071400\nD) H24\nE) TWY K13 CLSD\nTWY K13 LINK TO TWY K EASTBOUND CLSD\nTWY K13 LINK TO TWY K WESTBOUND CLSD\nTWY K13 LINK TO TWY J5 CLSD\nTWY K CL TO OBJECT CLR REDUCED TO 47.5M ABEAM TWY K13\n TWY K13 CLSD TWY K13 LINK TO TWY K EASTBOUND CLSD TWY K13 LINK TO TWY K WESTBOUND CLSD TWY K13 LINK TO TWY J5 CLSD TWY K CL TO OBJECT CLR REDUCED TO 47.5M ABEAM TWY K13. H24, 18 MAR 08:00 2020 UNTIL 07 MAY 14:00 2020. CREATED: 02 MAR 10:49 2020\n NOTAMN\n QMXXX\n \n \n I\n OMAEYNYX\n A0469/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202002240909\n 202005240559\n 202002240910\n A0469/20 NOTAMN\nQ) OMAE/QOBCE/IV/M/AE/000/012/2512N05520E001\nA) OMDB B) 2002240909 C) 2005240559\nD) H24\nE) OBST CRANE ELEV 338M ERECTED AT VCY OF PSN 251233.9N 0552037.8E\nOMDB ARP BRG 201 DEG MAG DIST 5230M.\nCRANE LGT AT NGT.\nF) SFC G) 1109FT AMSL\n OBST CRANE ELEV 338M ERECTED AT VCY OF PSN 251233.9N 0552037.8E OMDB ARP BRG 201 DEG MAG DIST 5230M. CRANE LGT AT NGT. SFC - 1109FT AMSL, H24, 24 FEB 09:09 2020 UNTIL 24 MAY 05:59 2020. CREATED: 24 FEB 09:09 2020\n NOTAMN\n QOBCE\n \n \n I\n OMAEYNYX\n A0302/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202003260000\n 202004092359\n 202002050750\n A0302/20 NOTAMN\nQ) OMAE/QMXTT/IV/BO/A/000/999/2515N05522E005\nA) OMDB B) 2003260000 C) 2004092359\nE) TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020\nTWY DETAILS AMD\nVFR CHARTS AMD\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020 TWY DETAILS AMD VFR CHARTS AMD. 26 MAR 00:00 2020 UNTIL 09 APR 23:59 2020. CREATED: 05 FEB 07:50 2020\n NOTAMN\n QMXTT\n \n \n I\n OMAEYNYX\n A0275/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202002031000\n 202002030943\n A0275/20 NOTAMN\nQ) OMAE/QPDAW/I/NBO/A/000/999/2515N05522E005\nA) OMDB B) 2002031000 C) PERM\nE) SID ITOTU 1F RWY 30L/R WITHDRAWN\nREF UAE AIP CHART OMDB AD 2-42.\n SID ITOTU 1F RWY 30L/R WITHDRAWN REF UAE AIP CHART OMDB AD 2-42. 03 FEB 10:00 2020 UNTIL PERM. CREATED: 03 FEB 09:43 2020\n NOTAMN\n QPDAW\n \n \n I\n OMAEYNYX\n A0264/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202002020527\n 202004020700\n 202002020527\n A0264/20 NOTAMR A2125/19\nQ) OMAE/QFAXX/IV/NBO/AW/005/015/2515N05522E005\nA) OMDB B) 2002020527 C) 2004020700\nD) DLY BTN 0300-0700\nE) PILOTS TO BE ADVISED OF FLOCKS OF GULLS TRAVELLING FM NORTH TO\nSOUTH AND VICE VERSA. ANY BIRDSTRIKE TO BE REPORTED TO ATC.\nF) 500FT AGL G) 1500FT AGL\n PILOTS TO BE ADVISED OF FLOCKS OF GULLS TRAVELLING FM NORTH TO SOUTH AND VICE VERSA. ANY BIRDSTRIKE TO BE REPORTED TO ATC. 500FT AGL - 1500FT AGL, DLY BTN 0300-0700, 02 FEB 05:27 2020 UNTIL 02 APR 07:00 2020. CREATED: 02 FEB 05:27 2020\n NOTAMR\n QFAXX\n \n \n I\n OMAEYNYX\n A0171/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202001211145\n 202004210559\n 202001211145\n A0171/20 NOTAMR A2077/19\nQ) OMAE/QOBCE/IV/M/AE/000/007/2510N05518E001\nA) OMDB B) 2001211145 C) 2004210559\nD) H24\nE) OBST CRANE ELEV 207M ERECTED AT VCY OF PSN 251043.69N 0551835.79E\nARP BRG 212 DEG MAG DIST 9.93KM.\nCRANE LGT AT NGT.\n\nF) SFC G) 679FT AMSL\n OBST CRANE ELEV 207M ERECTED AT VCY OF PSN 251043.69N 0551835.79E ARP BRG 212 DEG MAG DIST 9.93KM. CRANE LGT AT NGT. SFC - 679FT AMSL, H24, 21 JAN 11:45 2020 UNTIL 21 APR 05:59 2020. CREATED: 21 JAN 11:45 2020\n NOTAMR\n QOBCE\n \n \n I\n OMAEYNYX\n A0149/20\n 1\n OMDB\n OMDB\n DUBAI INTL\n 1\n 202001210600\n 202004210559\n 202001210534\n A0149/20 NOTAMN\nQ) OMAE/QOBCE/IV/M/AE/000/011/2512N05520E005\nA) OMDB B) 2001210600 C) 2004210559\nD) H24\nE) OBST CRANES ELEV 306M ERECTED AT VCY OF PSN 251225.83N 0552032.74E\nARP BRG 202 DEG MAG DIST 5.5KM\nCRANE LIT AT NGT.\nF) SFC G) 1004FT AMSL\n OBST CRANES ELEV 306M ERECTED AT VCY OF PSN 251225.83N 0552032.74E ARP BRG 202 DEG MAG DIST 5.5KM CRANE LIT AT NGT. SFC - 1004FT AMSL, H24, 21 JAN 06:00 2020 UNTIL 21 APR 05:59 2020. CREATED: 21 JAN 05:34 2020\n NOTAMN\n QOBCE\n \n 30\n \n \n OMDB 311500Z 28009KT CAVOK 24/16 Q1013 NOSIG\n OMDB 311101Z 3112/0118 28014KT CAVOK\nBECMG 3116/3118 20007KT\nBECMG 0108/0110 30012KT\nBECMG 0116/0118 21007KT\n OMAA 311500Z 32011KT CAVOK 24/16 Q1013 NOSIG\n OMAA 311100Z 3112/0118 30014KT CAVOK\nBECMG 3118/3120 23006KT\nPROB30 0101/0104 3500 HZ\nBECMG 0107/0109 30012KT\nBECMG 0117/0118 VRB02KT\n OMDB 311500Z 28009KT CAVOK 24/16 Q1013 NOSIG\n OMDB 311101Z 3112/0118 28014KT CAVOK\nBECMG 3116/3118 20007KT\nBECMG 0108/0110 30012KT\nBECMG 0116/0118 21007KT\n \n \n \n \n \n \n \n \n \n \n <div style=\"line-height:14px;font-size:13px\"><pre><!--BKMK///OFP///0--><!--BKMK///Summary and Fuel///1--><b>[ OFP ]\n--------------------------------------------------------------------</b>\nVMS0113 01JAN2014 OMDB-OMAA B737 N714SB RELEASE 1548 31MAR20\nOFP 1 DUBAI INTL-ABU DHABI INTL\n WX PROG 0112 0115 OBS 2412 2412\n\t\n ATC C/S VMS113 OMDB/DXB OMAA/AUH CRZ SYS CI 5\n01JAN2014 N714SB 1230/1240 1309/1315 GND DIST 105\nB737-700 / CFM56-7B24 STA 1445 AIR DIST 108\n CTOT:.... G/C DIST 63\n AVG WIND 278/028\nMAXIMUM TOW 154500 LAW 129200 ZFW 121700 AVG W/C M006\nESTIMATED TOW 126678 LAW 124072 ZFW 117669 AVG ISA P008\n AVG FF LBS/HR 5353\n FUEL BIAS P00.0\nALTN OMDB TKOF ALTN .......\nFL STEPS OMDB/0160/\n--------------------------------------------------------------------\nDISP RMKS PLANNED OPTIMUM FLIGHT LEVEL\n\n--------------------------------------------------------------------\n PLANNED FUEL\n---------------------------------\nFUEL ARPT FUEL TIME\n---------------------------------\nTRIP AUH 2606 0029\nCONT 15 MIN 1338 0015\nALTN DXB 2906 0035\nFINRES 2159 0030\n---------------------------------\nMINIMUM T/OFF FUEL 9009 0149\n---------------------------------\nEXTRA 0 0000\n---------------------------------\nT/OFF FUEL 9009 0149\nTAXI DXB 250 0010\n---------------------------------\nBLOCK FUEL DXB 9259\nPIC EXTRA .....\nTOTAL FUEL .....\nREASON FOR PIC EXTRA ............\n--------------------------------------------------------------------\nNO TANKERING RECOMMENDED (P)\n--------------------------------------------------------------------\nI HEREWITH CONFIRM THAT I HAVE PERFORMED A THOROUGH SELF BRIEFING\nABOUT THE DESTINATION AND ALTERNATE AIRPORTS OF THIS FLIGHT \nINCLUDING THE APPLICABLE INSTRUMENT APPROACH PROCEDURES, AIRPORT \nFACILITIES, NOTAMS AND ALL OTHER RELEVANT PARTICULAR INFORMATION.\n\nDISPATCHER: GENEVA CROSS PIC NAME: SHAHZAD, NABEEL\n\nTEL: +1 800 555 0199 PIC SIGNATURE: ...............<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Routing and Impacts///1-->\nALTERNATE ROUTE TO: FINRES 2159\nAPT TRK DST VIA FL WC TIME FUEL\n--------------------------------------------------------------------\nOMDB/30L 038 139 DCT BOMUP DCT LOVIM DCT RESIG 180 P003 0035 2906\n DCT NODVI DCT OBMUK DCT LORID \n DCT ORGUR DCT PEBUS DCT EMOPO \n DCT LOTUK DCT LAGTA DCT LOVOL \n DCT \n--------------------------------------------------------------------\n\nMEL/CDL ITEMS DESCRIPTION\n------------- -----------\n\n--------------------------------------------------------------------\n\nROUTING:\n\nROUTE ID: DEFRTE\nOMDB/30L KUTLI3F KUTLI DCT EMERU EMERU2D OMAA/31L\n\n--------------------------------------------------------------------\nDEPARTURE ATC CLEARANCE:\n.\n.\n.\n--------------------------------------------------------------------\n OPERATIONAL IMPACTS\n -------------------\nWEIGHT CHANGE UP 1.0 TRIP P 0027 LBS TIME P 0000\nWEIGHT CHANGE DN 1.0 TRIP P 0018 LBS TIME P 0000\nFL CHANGE UP FL1 NOT AVAILABLE\nFL CHANGE DN FL1 TRIP P 0033 LBS TIME P 0000\nFL CHANGE DN FL2 TRIP P 0028 LBS TIME P 0000\nSPD CHANGE CI 0 TRIP M 0001 LBS TIME P 0000\nSPD CHANGE CI 100 TRIP P 0066 LBS TIME M 0001\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Times and Weights///1-->--------------------------------------------------------------------\nATIS:\n.\n.\n--------- --------- --------- --------- --------- --------- --------\nRVSM: ALT SYS LEFT: STBY: RIGHT:\n\n--------- --------- --------- --------- --------- --------- --------\n--------------------------------------------------------------------\n TIMES\n -----\n\t\t\t\t \n ESTIMATED SKED ACTUAL\n\nOUT 1230Z/1630L 1230Z/1630L ......Z\n\nOFF 1240Z/1640L 1240Z/1640L ......Z\n\nON 1309Z/1709L 1439Z/1839L ......Z\n\nIN 1315Z/1715L 1445Z/1845L ......Z\n\nBLOCK TIME 0045 0215 ......\n\n--------------------------------------------------------------------\n WEIGHTS\n -------\n\n EST MAX ACTUAL\n\nPAX 145 ......\n\nCARGO 0.2 ......\n\nPAYLOAD 33.6 ......\n\nZFW 117.7 121.7 ......\n\nFUEL 9.3 14.4 ...... POSS EXTRA 5.1\n\nTOW 126.7 131.8 LDG......\n\nSTAB TRIM ......\n\nLAW 124.1 129.2 ......\n\n--------------------------------------------------------------------\n TERRAIN CLEARANCE CHECK\n -----------------------\nDD CHECK - TERRAIN CLEARANCE CHECK DISABLED\n\nDP CHECK - TERRAIN CLEARANCE CHECK DISABLED\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Flight Log///1--> FLIGHT LOG \n ---------- \n\nMOST CRITICAL MORA 02400 FEET AT TONKI///MXSHR 02 AT TOC\n--------------------------------------------------------------------\nAWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\n 302 9.0 0.3\nDUBAI INTL N2515.2 ... 21 304 M021 \nOMDB E05521.9 0000 ... 105 274 .... ....\n\nKUTLI3F 098 234 .45 282/023 04 8.6 0.7\nDB570 N2517.7 0001 ... 21 236 M021 P09\nDB570 E05517.7 0001 ... 5 100 274 348 .... ....\n\nKUTLI3F 142 250 .55 272/032 M04 8.0 1.2\nDB575 N2513.7 0003 ... 21 252 M026 P09\nDB575 E05510.9 0004 ... 7 93 328 348 .... ....\n\nKUTLI3F 157 245 .57 274/035 M07 7.6 1.6\nDB467 N2512.1 0001 ... 20 247 M033 P09\nDB467 E05505.5 0005 ... 5 88 330 348 .... ....\n\nKUTLI3F 160 246 .57 275/036 M08 7.5 1.7\nT O C N2511.8 0001 ... 20 247 365 M032 P09\n E05504.5 0006 ... 1 87 333 2 348 .... ....\n\nKUTLI3F 160 178 .53 275/036 M08 7.4 1.9\nGINLA N2508.4 0001 ... 21 180 338 M032 P09\nGINLA E05455.6 0007 ... 9 78 306 2 348 .... ....\n\nKUTLI3F 160 174 .52 275/036 M08 7.3 2.0\nXARTA N2501.6 0002 ... 21 176 329 P001 P09\nXARTA E05455.6 0009 ... 7 71 330 2 348 .... ....\n\nKUTLI3F 160 117 .52 275/036 M08 7.2 2.1\nKUTLI N2451.9 0001 ... 23 118 328 P004 P09\nKUTLI E05456.3 0010 ... 10 61 332 2 348 .... ....\n\nDCT 160 117 .51 275/036 M08 7.1 2.2\nT O D N2449.4 0001 ... 22 118 321 P033 P09\n E05501.1 0011 ... 5 56 354 2 348 .... ....\n\nDCT 154 209 .56 274/034 M07 7.1 2.2\nEMERU N2448.5 0001 ... 23 210 P031 P09\nEMERU E05503.0 0012 ... 2 54 392 348 .... ....\n\nEMERU2D 107 209 .51 280/025 02 6.9 2.3\nTUGVA N2435.0 0004 ... 23 210 M009 P08\nTUGVA E05454.3 0016 ... 16 38 325 348 .... ....\n\nEMERU2D 077 126 .43 288/019 08 6.9 2.4\nTONKI N2426.8 0002 ... 24 128 M005 P08\nTONKI E05448.9 0018 ... 10 28 280 516 .... ....\n\n<h2 style=\"page-break-after: always;\"> </h2>AWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\nEMERU2D 050 285 .41 300/015 09 6.8 2.5\nLOXIX N2421.3 0003 ... 23 286 P015 P04\nLOXIX E05456.5 0021 ... 9 19 286 516 .... ....\n\nEMERU2D 6.4 2.9\nABU DHABI I N2426.0 0008 ... \nOMAA E05439.1 0029 ... 19 .... ....\n\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Wind Information///1-->--------------------------------------------------------------------\n WIND INFORMATION \n ---------------- \n\nCLIMB T O C GINLA XARTA\n350 259/067 -51 200 273/042 -19 200 273/042 -19 200 273/042 -19\n310 264/052 -47 180 275/039 -14 180 275/039 -14 180 275/039 -14\n200 273/042 -19 160 275/036 -08 160 275/036 -08 160 275/036 -08\n150 273/033 -06 140 272/031 -04 140 272/031 -04 140 272/031 -04\n100 282/024 +04 120 276/027 +00 120 276/027 +00 120 276/027 +00\n\nKUTLI T O D DESCENT\n200 273/042 -19 200 273/042 -19 350 256/083 -50\n180 275/039 -14 180 275/039 -14 310 256/065 -45\n160 275/036 -08 160 275/036 -08 200 269/044 -18\n140 272/031 -04 140 272/031 -04 150 275/033 -06\n120 276/027 +00 120 276/027 +00 100 269/021 +04\n\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///ATC Flight Plan///0--><b>[ ATC Flight Plan ]\n--------------------------------------------------------------------</b>\n ICAO FLIGHT PLAN \n ---------------- \n\nFF OMAEZQZX\n311548 CYULSBFP\n(FPL-VMS113-IS\n-B737/M-SDE2E3FGHIRWXY/LB1\n-OMDB1230\n-N0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n-OMAA0019 OMDB\n-PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS)<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Additional Info///0--><b>[ Additional Info ]\n--------------------------------------------------------------------</b>\nD I S P A T C H B R I E F I N G I N F O VMS0113 OMDB/OMAA\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Airport WX List///0--><b>[ Airport WX List ]\n--------------------------------------------------------------------</b>\nOMDB --> OMAA VMS 113 / 01JAN2014\nLIDO/WEATHER SERVICE DATE : 31Mar2020 TIME : 15:48 UTC\n\nAIRMETs:\n No Wx data available\n\nSIGMETs:\n No Wx data available\n\nTropical Cyclone SIGMETs:\n No Wx data available\n\nVolcanic Ash SIGMETs:\n No Wx data available\n\nDeparture / Destination Alternate:\nOMDB/DXB DUBAI INTL\n SA 311500 28009KT CAVOK 24/16 Q1013 NOSIG\n FT 311101 3112/0118 28014KT CAVOK\n BECMG 3116/3118 20007KT\n BECMG 0108/0110 30012KT\n BECMG 0116/0118 21007KT\n\nDestination:\nOMAA/AUH ABU DHABI INTL\n SA 311500 32011KT CAVOK 24/16 Q1013 NOSIG\n FT 311100 3112/0118 30014KT CAVOK\n BECMG 3118/3120 23006KT\n PROB30 0101/0104 3500 HZ\n BECMG 0107/0109 30012KT\n BECMG 0117/0118 VRB02KT\n\n\n\n AIRPORTLIST ENDED<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///NOTAM///0--><b>[ NOTAM ]\n--------------------------------------------------------------------</b>\nLIDO-NOTAM-BULLETIN INCLUDES NOTAM, COMP NOTAM AND AIP-REGULATION\n<b>VALID: 1401011230 - 1401011650</b> STD(EOBT)+TRIP+ALTN+3HRS\nVMS 113 /01JAN OFP-NR: 1\nROUTE: OMDB - OMAA ALTN: OMDB\nN0338F160 KUTLI3F KUTLI DCT EMERU EMERU2D\n\n\n<b>=============================================\nDEPARTURE / ALTERNATE AIRPORT - DETAILED INFO\n=============================================</b>\n\n<b>OMDB/DXB DUBAI INTL\n-----------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0802/20 </b>\n H24\n SECN OF TXL T BTN TXL S AND <b>TWY M</b> <b>CLSD</b>.\n SECN OF <b>TWY M</b> BTN <b>TWY M20</b> AND <b>TWY M21</b> <b>CLSD</b>.\n <b>TWY M21</b> AND ASSOCIATED LINKS <b>CLSD</b>.\n<b>A0817/20 </b>\n H24\n SECN OF TXL J BEHIND STANDS D1 TO D3 <b>CLSD</b>.\n<b>A0808/20 </b>\n H24\n SECN OF TXL P BTN ACFT STANDS E14 AND E18 AND ASSOCIATED <b>TWY P3</b>\n LINK <b>CLSD</b>.\n<b>A0769/20 </b>\n H24\n RFFS <b>CAT</b> <b>DOWNGRADED</b> TO <b>CAT</b> 7.\n <b>CAT</b> 8, <b>CAT</b> 9 AND <b>CAT</b> 10 <b>AVBL</b> WITH 20 MIN PN.\n<b>A0766/20 </b>\n H24\n <b>TWY Z8</b> AND <b>TWY Z9</b> <b>NOT AVBL</b>.\n<b>A0754/20 </b>\n HJ\n UAS ACT WILL TAKE PLACE WI AREA BOUNDED BY LINES JOINING:\n 251806.38N 0551940.66E\n 251636.78N 0551741.26E\n 251730.33N 0551711.46E\n 251809.04N 0551741.28E\n 251815.30N 0551851.37E\n F) SFC G) 200FT AGL\n<b>A0302/20 </b>\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020 <b>TWY</b>\n DETAILS AMD\n VFR CHARTS AMD\n<b>A0689/20 </b>\n H24\n OBST CRANE ELEV 88M ERECTED AT VCY OF PSN 251505.28N 0552024.29E\n ARP BRG 266 DEG MAG DIST 2.5KM. CRANE LGT AT NGT\n F) SFC G) 289FT AMSL<h2 style=\"page-break-after: always;\"> </h2><b>A0535/20 </b>\n H24\n <b>TWY K13</b> <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY K</b> EASTBOUND <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY K</b> WESTBOUND <b>CLSD</b>\n <b>TWY K13</b> LINK TO <b>TWY J5</b> <b>CLSD</b>\n <b>TWY K</b> CL TO OBJECT CLR REDUCED TO 47.5M ABEAM <b>TWY K13</b>\n<b>A0469/20 </b>\n H24\n OBST CRANE ELEV 338M ERECTED AT VCY OF PSN 251233.9N 0552037.8E\n OMDB ARP BRG 201 DEG MAG DIST 5230M.\n CRANE LGT AT NGT.\n F) SFC G) 1109FT AMSL\n<b>A0264/20 </b>\n DLY BTN 0300-0700\n PILOTS TO BE ADVISED OF FLOCKS OF GULLS TRAVELLING FM NORTH TO\n SOUTH AND VICE VERSA. ANY BIRDSTRIKE TO BE REPORTED TO ATC.\n F) 500FT AGL G) 1500FT AGL\n<b>A0171/20 </b>\n H24\n OBST CRANE ELEV 207M ERECTED AT VCY OF PSN 251043.69N 0551835.79E\n ARP BRG 212 DEG MAG DIST 9.93KM.\n CRANE LGT AT NGT.\n F) SFC G) 679FT AMSL\n<b>A0149/20 </b>\n H24\n OBST CRANES ELEV 306M ERECTED AT VCY OF PSN 251225.83N 0552032.74E\n ARP BRG 202 DEG MAG DIST 5.5KM\n CRANE LIT AT NGT.\n F) SFC G) 1004FT AMSL\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A0752/20 </b>\n H24\n <b>RWY 12L/30R</b> <b>CLSD</b>\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A0275/20 </b>\n SID ITOTU 1F <b>RWY</b> 30L/R <b>WITHDRAWN</b>\n REF UAE AIP CHART OMDB <b>AD</b> 2-42.\n\n<b>===================================\nDESTINATION AIRPORT - DETAILED INFO\n===================================</b>\n\n<b>OMAA/AUH ABU DHABI INTL\n---------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0796/20 </b>\n H24\n <b>TWY A</b> BTN <b>TWY A14</b> AND <b>TWY A17</b> INCLUDING INT WITH <b>TWY A16</b> AND <b>TWY</b>\n B15 <b>CLSD</b>.<h2 style=\"page-break-after: always;\"> </h2><b>A0798/20 </b>\n DLY BTN 0300-1400\n <b>TWY A</b> BTN <b>TWY A14</b> AND <b>TWY G</b> INCLUDING INT OF <b>TWY A14</b> AND <b>TWY A</b>\n <b>CLSD</b> DUE <b>WIP</b>.\n INT <b>TWY A17</b> AND <b>TWY A</b> <b>CLSD</b> DUE <b>WIP</b>.\n <b>TWY B</b> BTN <b>TWY A18</b> AND <b>TWY G</b> <b>CLSD</b> DUE <b>WIP</b>.\n<b>A0799/20 </b>\n DLY BTN 0300-1400\n OBST CRANE OPR WI AREA BOUNDED BY LINES JOINING:\n 242636.62N 0543958.28E\n 242630.00N 0544007.42E\n 242634.26N 0543956.35E\n 242627.55N 0544005.24E\n 242636.62N 0543958.28E\n F) SFC G) 036FT AGL\n<b>A0299/20 </b>\n TRIGGER NOTAM - PERM AIRAC AIP AMDT NR 04/2020 WEF 26 MAR 2020\n SURVEILLANCE SER BASED ON MODE S MULTILATERATION PROC ADDED MISSED\n APCH ALT AMD\n CHART REF FOR RVR LCA AMD.\n<b>A0738/20 </b>\n H24\n <b>TWY C</b> AND <b>TWY N</b> <b>CLSD</b>.\n<b>A0737/20 </b>\n H24\n SECN OF <b>TWY B</b> BTN <b>TWY B9</b> AND <b>TWY G</b> <b>CLSD</b> DUE <b>WIP</b>.\n<b>A0401/20 </b>\n DLY BTN 0200-1600\n OBST CRAWLER CRANE OPR IN YAS ISLAND WI RADIUS 56M AT PSN\n 242742.38N 0543602.65E\n F) SFC G) 338FT AGL\n<b>A0408/20 </b>\n DLY BTN 0130-0300 AND 1430-1530\n IN ORDER TO MNTN ATC FAMILIARITY WITH THE NEW AIRFIELD LGT SYSTEM,\n ATC WILL UTILISE THE SYSTEM IN THE SOUTH AIRFIELD DURING THESE\n TIMES IN <b>CAT</b> I COND. ATC WILL CONT TO ISSUE STANDARD <b>TWY</b> ROUTINGS\n BY RTF, AND WILL SUPPLEMENT THESE BY PROVIDING GREEN CL LIGHT\n ROUTINGS. INSTRUCTIONS ISSUED BY RTF TAKE PRECEDENCE, AND\n THEREFORE SHOULD THERE BE ANY DOUBT, OR IF IT IS BELIEVED THERE IS\n A DISCREPANCY BTN RTF INSTRUCTIONS AND GND LGT ROUTINGS, ACFT\n SHALL CTC ATC AT THE EARLIEST OPPORTUNITY AND, IF NECCESSARY, HOLD\n PSN WHEN SAFE TO DO SO.\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A0797/20 </b>\n DLY BTN 0300-1400\n <b>RWY 13L/31R</b> <b>CLSD</b> DUE <b>WIP</b>.\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Company NOTAM///0--><b>[ Company NOTAM ]\n--------------------------------------------------------------------</b>\n<b>==========\nCREW ALERT\n==========</b>\n\n<b>SB007/14 </b>\n SUBJECT: AUTO COST INDEXES\n <t>WHEN PLANNING A COST INDEX, 2 OPTIONS ARE AVAILABLE. PILOTS MAY\n EITHER SELECT A SPECIFIC COST INDEX NUMBER FROM THE LIST, OR THEY\n MAY SELECT \"AUTO\". WHEN PLANNING AN \"AUTO\" COST INDEX, THE SYSTEM\n WILL REFERENCE THE \"TIME ENROUTE\" OPTION AND ATTEMPT TO CHOOSE A\n COST INDEX WHICH CLOSELY MATCHES THIS VALUE. NOTE THAT THE \"TIME\n ENROUTE\" OPTION IS MEANT AS A GATE TO GATE TIME (AS INDICATED ON\n AN AIRLINE'S FLIGHT SCHEDULE, FOR EXAMPLE). IF A \"TIME ENROUTE\" OF\n 2:30 IS SELECTED, THE SYSTEM WILL SUBTRACT THE TAXI TIMES FROM\n THIS VALUE TO DETERMINE THE SCHEDULED AIR TIME. IT WILL THEN\n DETERMINE AND USE THE COST INDEX WHICH MATCHES THIS AIR TIME.</t>\n\n<b>SB003/13 </b>\n SUBJECT: FLIGHT RELEASE UNITS\n <t>ALL FLIGHT CREW: PLEASE PAY SPECIAL ATTENTION TO THE UNITS\n SELECTION WHEN GENERATING A FLIGHT PLAN. FAILURE TO IDENTIFY THE\n CORRECT UNITS WHEN REFUELING PRIOR TO FLIGHT CAN RESULT IN\n DEPARTING WITH INSUFFICIENT FUEL AND/OR AN ERRONEOUS PAYLOAD.</t>\n\n<b>=============\nCREW BULLETIN\n=============</b>\n\nNIL\n\n\n==================== END OF LIDO-NOTAM-BULLETIN ====================<h2 style=\"page-break-after: always;\"> </h2>Route\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_ROUTE.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_ROUTE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 1 of 1\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_SIGWX06.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_SIGWX06.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 1 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS14000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS14000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 2 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS18000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS18000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 3 of 3\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS24000.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_WINDS24000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>Vertical profile\n<a class=\"ofpmaplink\" href=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_PROFILE.gif\" target=\"_blank\"><img src=\"http://www.simbrief.com/ofp/uads/OMDBOMAA_1585669694_PROFILE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a></pre></div>\n \n \n \n 1585669531\n 1585634400\n 1585668781\n 1585669625\n 1585669264\n 1585660560\n \n \n http://www.simbrief.com/ofp/flightplans/\n \n PDF Document\n OMDBOMAA_PDF_1585669695.pdf\n \n \n Aerosoft Airbus\n OMDBOMAA_ABX_1585669695.flp\n \n \n Aerosoft Airbus EFB\n OMDBOMAA_PDF_1585669695.pdf--A3E\n \n \n Aerosoft CRJ\n OMDBOMAA_CRX_1585669695.flp\n \n \n Aerowinx PSX 747\n OMDBOMAA_PSX_1585669695.route\n \n \n AivlaSoft EFB\n OMDBOMAA_EFB_1585669695.efbr\n \n \n AivlaSoft EFB v2\n OMDBOMAA_EF2_1585669695.efbr\n \n \n Black Box Airbus\n OMDBOMAA_BBS_1585669695.pln\n \n \n Captain Sim (PLN)\n OMDBOMAA_CSF_1585669695.pln\n \n \n FeelThere\n OMDBOMAA_FTR_1585669695.fpl\n \n \n Flight1 GTN\n OMDBOMAA_GTN_1585669695.gfp\n \n \n FlightFactor 757-777\n OMDBOMAA_VMX_1585669695.flp\n \n \n FlightFactor A320\n OMDBOMAA_FFA_1585669695.in\n \n \n FS Commander\n OMDBOMAA_FSC_1585669695.pln\n \n \n FS2004\n OMDBOMAA_FS9_1585669695.pln\n \n \n FSLabs A320\n OMDBOMAA_FSL_1585669695.txt\n \n \n FSX/P3D\n OMDBOMAA_FSX_1585669695.pln\n \n \n FSX/P3D (No SID/STAR)\n OMDBOMAA_FSN_1585669695.pln\n \n \n Google Earth KML\n OMDBOMAA_KML_1585669695.kml\n \n \n iFly 737NG\n OMDBOMAA_IFY_1585669695.FLTPLAN\n \n \n iFly 747 V2\n OMDBOMAA_I74_1585669695.route\n \n \n IVAO/IVAP\n OMDBOMAA_IVO_1585669695.fpl\n \n \n IVAO/IVAP (Default.fpl)\n OMDBOMAA_XVD_1585669695.fpl\n \n \n IVAO/XIVAP\n OMDBOMAA_XVP_1585669695.fpl\n \n \n IXEG 737 Classic\n OMDBOMAA_IXG_1585669695.fpl\n \n \n JARDesign Airbus\n OMDBOMAA_JAR_1585669695.txt\n \n \n Leonardo MD80\n OMDBOMAA_MDR_1585669695.mdr\n \n \n Leonardo MD80 (ACARS)\n OMDBOMAA_MDA_1585669695.txt\n \n \n Level-D 767\n OMDBOMAA_LVD_1585669695.rte\n \n \n Majestic Q400\n OMDBOMAA_MJC_1585669695.fpr\n \n \n phpVMS ACARS\n OMDBOMAA_VMS_1585669695.xml\n \n \n PMDG Flightplan\n OMDBOMAA_PMR_1585669695.rte\n \n \n PMDG Wind Uplink\n OMDBOMAA_PMW_1585669695.wx\n \n \n Project Magenta\n OMDBOMAA_MGA_1585669695.sbp\n \n \n ProSim 737\n OMDBOMAA_PSM_1585669695.xml\n \n \n QualityWings\n OMDBOMAA_QTY_1585669695.RTE\n \n \n Sim-Avionics\n xml/OMDBOMAA_XML_1585669695.xml--sbr\n \n \n Squawkbox\n OMDBOMAA_SFP_1585669695.sfp\n \n \n TFDi Design 717\n OMDBOMAA_TFD_1585669695.xml\n \n \n UFMC - Universal FMC\n OMDBOMAA_UFC_1585669695.ufmc\n \n \n vasFMC\n OMDBOMAA_VAS_1585669695.fmc\n \n \n vPilot\n OMDBOMAA_VFP_1585669695.vfp\n \n \n Wilco Airbus Evo\n OMDBOMAA_WAE_1585669695.rte\n \n \n X-FMC\n OMDBOMAA_XFM_1585669695.FPL\n \n \n X-Plane 11\n OMDBOMAA_XPE_1585669695.fms\n \n \n X-Plane 9/10\n OMDBOMAA_XP9_1585669695.fms\n \n \n \n http://www.simbrief.com/ofp/flightplans/\n \n PDF Document\n OMDBOMAA_PDF_1585669695.pdf\n \n \n Aerosoft Airbus\n OMDBOMAA_ABX_1585669695.flp\n \n \n Aerosoft Airbus EFB\n OMDBOMAA_PDF_1585669695.pdf--A3E\n \n \n Aerosoft CRJ\n OMDBOMAA_CRX_1585669695.flp\n \n \n Aerowinx PSX 747\n OMDBOMAA_PSX_1585669695.route\n \n \n AivlaSoft EFB\n OMDBOMAA_EFB_1585669695.efbr\n \n \n AivlaSoft EFB v2\n OMDBOMAA_EF2_1585669695.efbr\n \n \n Black Box Airbus\n OMDBOMAA_BBS_1585669695.pln\n \n \n Captain Sim (PLN)\n OMDBOMAA_CSF_1585669695.pln\n \n \n FeelThere\n OMDBOMAA_FTR_1585669695.fpl\n \n \n Flight1 GTN\n OMDBOMAA_GTN_1585669695.gfp\n \n \n FlightFactor 757-777\n OMDBOMAA_VMX_1585669695.flp\n \n \n FlightFactor A320\n OMDBOMAA_FFA_1585669695.in\n \n \n FS Commander\n OMDBOMAA_FSC_1585669695.pln\n \n \n FS2004\n OMDBOMAA_FS9_1585669695.pln\n \n \n FSLabs A320\n OMDBOMAA_FSL_1585669695.txt\n \n \n FSX/P3D\n OMDBOMAA_FSX_1585669695.pln\n \n \n FSX/P3D (No SID/STAR)\n OMDBOMAA_FSN_1585669695.pln\n \n \n Google Earth KML\n OMDBOMAA_KML_1585669695.kml\n \n \n iFly 737NG\n OMDBOMAA_IFY_1585669695.FLTPLAN\n \n \n iFly 747 V2\n OMDBOMAA_I74_1585669695.route\n \n \n IVAO/IVAP\n OMDBOMAA_IVO_1585669695.fpl\n \n \n IVAO/IVAP (Default.fpl)\n OMDBOMAA_XVD_1585669695.fpl\n \n \n IVAO/XIVAP\n OMDBOMAA_XVP_1585669695.fpl\n \n \n IXEG 737 Classic\n OMDBOMAA_IXG_1585669695.fpl\n \n \n JARDesign Airbus\n OMDBOMAA_JAR_1585669695.txt\n \n \n Leonardo MD80\n OMDBOMAA_MDR_1585669695.mdr\n \n \n Leonardo MD80 (ACARS)\n OMDBOMAA_MDA_1585669695.txt\n \n \n Level-D 767\n OMDBOMAA_LVD_1585669695.rte\n \n \n Majestic Q400\n OMDBOMAA_MJC_1585669695.fpr\n \n \n phpVMS ACARS\n OMDBOMAA_VMS_1585669695.xml\n \n \n PMDG Flightplan\n OMDBOMAA_PMR_1585669695.rte\n \n \n PMDG Wind Uplink\n OMDBOMAA_PMW_1585669695.wx\n \n \n Project Magenta\n OMDBOMAA_MGA_1585669695.sbp\n \n \n ProSim 737\n OMDBOMAA_PSM_1585669695.xml\n \n \n QualityWings\n OMDBOMAA_QTY_1585669695.RTE\n \n \n Sim-Avionics\n xml/OMDBOMAA_XML_1585669695.xml--sbr\n \n \n Squawkbox\n OMDBOMAA_SFP_1585669695.sfp\n \n \n TFDi Design 717\n OMDBOMAA_TFD_1585669695.xml\n \n \n UFMC - Universal FMC\n OMDBOMAA_UFC_1585669695.ufmc\n \n \n vasFMC\n OMDBOMAA_VAS_1585669695.fmc\n \n \n vPilot\n OMDBOMAA_VFP_1585669695.vfp\n \n \n Wilco Airbus Evo\n OMDBOMAA_WAE_1585669695.rte\n \n \n X-FMC\n OMDBOMAA_XFM_1585669695.FPL\n \n \n X-Plane 11\n OMDBOMAA_XPE_1585669695.fms\n \n \n X-Plane 9/10\n OMDBOMAA_XP9_1585669695.fms\n \n \n \n http://www.simbrief.com/ofp/uads/\n \n Route\n OMDBOMAA_1585669694_ROUTE.gif\n \n \n SigWx 1 of 1\n OMDBOMAA_1585669694_SIGWX06.gif\n \n \n UAD 1 of 3\n OMDBOMAA_1585669694_WINDS14000.gif\n \n \n UAD 2 of 3\n OMDBOMAA_1585669694_WINDS18000.gif\n \n \n UAD 3 of 3\n OMDBOMAA_1585669694_WINDS24000.gif\n \n \n Vertical profile\n OMDBOMAA_1585669694_PROFILE.gif\n \n \n \n http://skyvector.com/?ll=24.844177,55.005425&chart=304&zoom=2&fpl= OMDB KUTLI3F KUTLI EMERU EMERU2D OMAA\n \n <Form method=\"get\" action=\"https://cert.vatsim.net/fp/file.php\" target=\"_blank\">\n<button type=\"submit\">Pre-file on VATSIM</button>\n<input type=\"hidden\" name=\"2\" value=\"VMS113\">\n<input type=\"hidden\" name=\"3\" value=\"B737/L\">\n<input type=\"hidden\" name=\"4\" value=\"338\">\n<input type=\"hidden\" name=\"5\" value=\"OMDB\">\n<input type=\"hidden\" name=\"6\" value=\"1230\">\n<input type=\"hidden\" name=\"7\" value=\"16000\">\n<input type=\"hidden\" name=\"8\" value=\"KUTLI3F KUTLI EMERU EMERU2D\">\n<input type=\"hidden\" name=\"9\" value=\"OMAA\">\n<input type=\"hidden\" name=\"10a\" value=\"00\">\n<input type=\"hidden\" name=\"10b\" value=\"29\">\n<input type=\"hidden\" name=\"11\" value=\"PBN%2FA1B1C1D1S1S2+DOF%2F140101+REG%2FN714SB+OPR%2FVMS+PER%2FC+RMK%2FTCAS SIMBRIEF\">\n<input type=\"hidden\" name=\"12a\" value=\"01\">\n<input type=\"hidden\" name=\"12b\" value=\"55\">\n<input type=\"hidden\" name=\"13\" value=\"OMDB\">\n<input type=\"hidden\" name=\"14\" value=\"NABEEL SHAHZAD\">\n<input type=\"hidden\" name=\"voice\" value=\"/V/\">\n</Form>\n <form action=\"https://fpl.ivao.aero/api/fp/load\" method=\"POST\" target=\"_blank\">\n<button type=\"submit\">Pre-file on IVAO</button>\n<input type=\"hidden\" name=\"CALLSIGN\" value=\"VMS113\">\n<input type=\"hidden\" name=\"RULES\" value=\"I\">\n<input type=\"hidden\" name=\"FLIGHTTYPE\" value=\"S\">\n<input type=\"hidden\" name=\"NUMBER\" value=\"1\">\n<input type=\"hidden\" name=\"ACTYPE\" value=\"B737\">\n<input type=\"hidden\" name=\"WAKECAT\" value=\"M\">\n<input type=\"hidden\" name=\"EQUIPMENT\" value=\"SDE2E3FGHIRWXY\">\n<input type=\"hidden\" name=\"TRANSPONDER\" value=\"LB1\">\n<input type=\"hidden\" name=\"DEPICAO\" value=\"OMDB\">\n<input type=\"hidden\" name=\"DEPTIME\" value=\"1230\">\n<input type=\"hidden\" name=\"SPEEDTYPE\" value=\"N\">\n<input type=\"hidden\" name=\"SPEED\" value=\"0338\">\n<input type=\"hidden\" name=\"LEVELTYPE\" value=\"F\">\n<input type=\"hidden\" name=\"LEVEL\" value=\"160\">\n<input type=\"hidden\" name=\"ROUTE\" value=\"KUTLI3F KUTLI DCT EMERU EMERU2D\">\n<input type=\"hidden\" name=\"DESTICAO\" value=\"OMAA\">\n<input type=\"hidden\" name=\"EET\" value=\"0029\">\n<input type=\"hidden\" name=\"ALTICAO\" value=\"OMDB\">\n<input type=\"hidden\" name=\"ALTICAO2\" value=\"\">\n<input type=\"hidden\" name=\"OTHER\" value=\"PBN/A1B1C1D1S1S2 DOF/140101 REG/N714SB OPR/VMS PER/C RMK/TCAS SIMBRIEF\">\n<input type=\"hidden\" name=\"ENDURANCE\" value=\"0155\">\n<input type=\"hidden\" name=\"POB\" value=\"151\">\n</form>\n https://www.simbrief.com/ofp/flightplans/OMDBOMAA_MJS_1585669695.js\n \n VMS\n 113\n B737\n OMDB\n OMAA\n 1388534400\n 43200\n 1800\n KUTL3F KUTLI EMERU EMER2D\n 7200\n 900\n \n \n \n auto\n OMDB\n \n NABEEL SHAHZAD\n 120867\n 1\n auto\n 0\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n auto\n AUTO\n lido\n 1\n 1\n 0\n 0\n 1\n 1\n 0\n 1\n \n \n \n \n \n \n \n \n \n false\n \n \n\n" fare_data: null - created_at: '2022-01-27 18:05:33' - updated_at: '2022-01-27 18:05:33' + created_at: now + updated_at: now - id: 1643306916_2EDF51C628 user_id: 1 @@ -19,5 +19,5 @@ simbrief: acars_xml: "\n\n \n 46018208\n 120867\n 1643306919\n VMS0001_flightid_1\n lido2\n 2003\n lbs\n \n \n 1\n VMS\n 100\n 0\n LOAD DISTRIBUTION Y 400 B 9 F 4\n \n 1\n CI25\n 250/340/84\n 84/340/250\n CI0\n RES\n 25\n 5 MIN\n 11000\n KHPN/0110\n -9\n 32927\n 8\n 248\n 025\n 26\n 117\n 113\n 8801\n 321\n .51\n 400\n DCT CMK V374 DENNA V44 DPK DCT\n DCT CMK V374 DENNA V44 DPK DCT\n DCT CMK V374 DENNA V44 DPK DCT\n \n \n KHPN\n HPN\n \n 439\n 41.066953\n -73.707567\n WESTCHESTER CO\n 16\n 18000\n 18000\n \n \n KJFK\n JFK\n \n 13\n 40.639928\n -73.778692\n KENNEDY INTL\n 22R\n 18000\n 18000\n \n \n KBOS\n BOS\n \n 19\n 42.362944\n -71.006389\n LOGAN INTL\n 22L\n 18000\n 18000\n 35000\n 254\n 162\n 230\n 049\n 063\n 439\n 473\n P034\n 255\n 043\n 33400\n M04\n 2520\n 14180\n DCT MERIT ROBUC3\n DCT MERIT ROBUC3\n \n \n \n \n \n TOC\n TOP OF CLIMB\n ltlg\n 41.097385\n -73.689597\n CLB\n DCT\n 0\n 21\n 023\n 037\n 020\n 033\n 11000\n \n \n CMK\n CARMEL\n vor\n 41.280089\n -73.581325\n CRZ\n DCT\n 0\n 12\n 023\n 037\n 019\n 032\n 11000\n \n \n DENNA\n DENNA\n wpt\n 41.233275\n -73.193872\n CRZ\n V374\n 0\n 18\n 099\n 112\n 101\n 114\n 11000\n \n \n BDR\n BRIDGEPORT\n vor\n 41.160694\n -73.124497\n CRZ\n V44\n 0\n 5\n 144\n 157\n 148\n 161\n 11000\n \n \n NESSI\n NESSI\n wpt\n 41.100444\n -73.039244\n CRZ\n V44\n 0\n 5\n 133\n 146\n 137\n 150\n 11000\n \n \n TOD\n TOP OF DESCENT\n ltlg\n 41.123243\n -73.071478\n CRZ\n V44\n 0\n 2\n 313\n 327\n 309\n 322\n 11000\n \n \n BELTT\n BELTT\n wpt\n 41.063503\n -72.987089\n DSC\n V44\n 0\n 5\n 133\n 147\n 138\n 151\n 9000\n \n \n DPK\n DEER PARK\n vor\n 40.791750\n -73.303658\n DSC\n V44\n 0\n 22\n 221\n 235\n 222\n 235\n 4200\n \n \n KJFK\n KENNEDY INTL\n apt\n 40.639928\n -73.778692\n DSC\n DCT\n 0\n 27\n 247\n 260\n 245\n 258\n 2500\n \n \n \n (FPL-VMS100-IS\n-B744/H-SDE3FGHIM1M2RWXY/LB1\n-KHPN1855\n-N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n-KJFK0030 KBOS\n-PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS\n PER/D RMK/TCAS)\n N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n VMS100\n 0321\n N\n 110\n F\n PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS PER/D RMK/TCAS\n KZBW\n KZNY\n KZBW\n \n KZNY\n \n \n B744\n 744\n B747-400\n 001Z\n 484\n BKFS\n H-SDE3FGHIM1M2RWXY/LB1\n 400\n 1\n \n \n 1000\n 8801\n 1436\n 14180\n 9064\n 0\n 0\n 33481\n 33481\n 34481\n 24680\n 17229\n 383810\n \n \n 1839\n 13740\n 1643309700\n 1643310000\n 1643323740\n 1643324100\n 14400\n 1643309700\n 1643310000\n 1643311839\n 1643312199\n 2499\n -5\n -5\n 300\n 360\n 1800\n 6459\n 300\n 0\n 0\n \n \n 403534\n 400\n 0\n 400\n 0\n 220\n 0\n 3300\n 3300\n 91300\n 494834\n 545000\n 528315\n 638801\n 875000\n L\n 519514\n 630000\n 529315\n \n \n <div style=\"line-height:14px;font-size:13px\"><pre><!--BKMK///OFP///0--><!--BKMK///Summary and Fuel///1--><b>[ OFP ]\n--------------------------------------------------------------------</b>\nVMS0100 27JAN2022 KHPN-KJFK B744 001Z RELEASE 1808 27JAN22\nOFP 1 WESTCHESTER CO-KENNEDY INTL\n WX PROG 2718 2721 OBS 2712 2712\n\t\n ATC C/S VMS100 KHPN/HPN KJFK/JFK CRZ SYS CI 25\n27JAN2022 001Z 1855/1900 1930/1936 GND DIST 117\nB747-400 / RB211-524G/H STA 2255 AIR DIST 113\n CTOT:.... G/C DIST 26\n AVG WIND 248/025\nMAXIMUM TOW 875000 LAW 630000 ZFW 545000 AVG W/C P008\nESTIMATED TOW 528315 LAW 519514 ZFW 494834 AVG ISA M009\n AVG FF LB/HR 17229\n FUEL BIAS P00.0\nALTN KBOS TKOF ALTN .......\nFL STEPS KHPN/0110/\n--------------------------------------------------------------------\nDISP RMKS LOAD DISTRIBUTION Y 400 B 9 F 4\n\n--------------------------------------------------------------------\n PLANNED FUEL\n---------------------------------\nFUEL ARPT FUEL TIME\n---------------------------------\nTRIP JFK 8801 0030\nCONT 5 MIN 1436 0005\nALTN BOS 14180 0042\nFINRES 9064 0030\n---------------------------------\nMINIMUM T/OFF FUEL 33481 0147\n---------------------------------\nEXTRA 0 0000\n---------------------------------\nT/OFF FUEL 33481 0147\nTAXI HPN 1000 0005\n---------------------------------\nBLOCK FUEL HPN 34481\nPIC EXTRA .....\nTOTAL FUEL .....\nREASON FOR PIC EXTRA ............\n--------------------------------------------------------------------\nFMC INFO:\nFINRES+ALTN 23244\nTRIP+TAXI 9801\n--------------------------------------------------------------------\nNO TANKERING RECOMMENDED (P)\n--------------------------------------------------------------------\nI HEREWITH CONFIRM THAT I HAVE PERFORMED A THOROUGH SELF BRIEFING\nABOUT THE DESTINATION AND ALTERNATE AIRPORTS OF THIS FLIGHT \nINCLUDING THE APPLICABLE INSTRUMENT APPROACH PROCEDURES, AIRPORT \nFACILITIES, NOTAMS AND ALL OTHER RELEVANT PARTICULAR INFORMATION.\n\nDISPATCHER: PATSY MOSLEY PIC NAME: SHAHZAD, NABEEL\n\nTEL: +1 800 555 0199 PIC SIGNATURE: ...............<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Routing and Impacts///1-->\nALTERNATE ROUTE TO: FINRES 9064\nAPT TRK DST VIA FL WC TIME FUEL\n--------------------------------------------------------------------\nKBOS/22L 049 254 DCT MERIT ROBUC3 350 P034 0042 14180\n--------------------------------------------------------------------\n\nMEL/CDL ITEMS DESCRIPTION\n------------- -----------\n\n--------------------------------------------------------------------\n\nROUTING:\n\nROUTE ID: DEFRTE\nKHPN/16 DCT CMK V374 DENNA V44 DPK DCT KJFK/22R\n\n--------------------------------------------------------------------\nDEPARTURE ATC CLEARANCE:\n.\n.\n.\n--------------------------------------------------------------------\n OPERATIONAL IMPACTS\n -------------------\nWEIGHT CHANGE UP 1.0 TRIP P 0010 LBS TIME M 0000\nWEIGHT CHANGE DN 1.0 TRIP M 0017 LBS TIME P 0000\nFL CHANGE UP FL1 TRIP P 0809 LBS TIME P 0002\nFL CHANGE DN FL1 TRIP M 0459 LBS TIME P 0000\nFL CHANGE DN FL2 TRIP M 0564 LBS TIME P 0000\nSPD CHANGE CI 0 TRIP M 0045 LBS TIME P 0000\nSPD CHANGE CI 500 TRIP P 0122 LBS TIME M 0001\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Times and Weights///1-->--------------------------------------------------------------------\nATIS:\n.\n.\n--------- --------- --------- --------- --------- --------- --------\nRVSM: ALT SYS LEFT: STBY: RIGHT:\n\n--------- --------- --------- --------- --------- --------- --------\n--------------------------------------------------------------------\n TIMES\n -----\n\t\t\t\t \n ESTIMATED SKED ACTUAL\n\nOUT 1855Z/1355L 1855Z/1355L ......Z\n\nOFF 1900Z/1400L 1900Z/1400L ......Z\n\nON 1930Z/1430L 2249Z/1749L ......Z\n\nIN 1936Z/1436L 2255Z/1755L ......Z\n\nBLOCK TIME 0041 0400 ......\n\n--------------------------------------------------------------------\n WEIGHTS\n -------\n\n EST MAX ACTUAL\n\nPAX 400 ......\n\nCARGO 3.3 ......\n\nPAYLOAD 91.3 ......\n\nZFW 494.8 545.0 ......\n\nFUEL 34.5 145.0 ...... POSS EXTRA 110.5\n\nTOW 528.3 638.8 LDG......\n\nSTAB TRIM ......\n\nLAW 519.5 630.0 ......\n\n--------------------------------------------------------------------\n TERRAIN CLEARANCE CHECK\n -----------------------\nDD CHECK - TERRAIN CLEARANCE CHECK DISABLED\n\nDP CHECK - TERRAIN CLEARANCE CHECK DISABLED\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Flight Log///1--> FLIGHT LOG \n ---------- \n\nMOST CRITICAL MORA 03000 FEET AT TOC///MXSHR 01 AT TOC\n--------------------------------------------------------------------\nAWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\n 037 33.5 1.0\nWESTCHESTER N4104.0 ... 26 023 P018 \nKHPN W07342.5 0000 ... 117 415 .... ....\n\nDCT 110 037 .63 252/029 M13 29.3 5.2\nT O C N4105.8 0006 ... 30 023 397 P018 M06\n W07341.4 0006 ... 21 96 415 1 328 .... ....\n\nDCT 110 112 .51 252/029 M13 28.6 5.9\nCARMEL N4116.8 0002 ... 30 099 321 P018 M06\nCMK W07334.9 0008 ... 12 84 339 1 328 .... ....\n116.60\n\nV374 110 157 .51 250/026 M13 27.6 6.8\nDENNA N4114.0 0003 ... 23 144 321 P022 M06\nDENNA W07311.6 0011 ... 18 66 343 1 330 .... ....\n\nV44 110 146 .51 250/026 M13 27.4 7.1\nBRIDGEPORT N4109.6 0001 ... 20 133 321 P006 M06\nBDR W07307.5 0012 ... 5 61 327 1 330 .... ....\n108.80\n\nV44 110 327 .51 250/026 M13 27.1 7.4\nNESSI N4106.0 0001 ... 20 313 321 P011 M06\nNESSI W07302.4 0013 ... 5 56 332 1 330 .... ....\n\nV44 110 147 .51 250/026 M13 27.0 7.5\nT O D N4107.4 0001 ... 22 133 321 M013 M06\n W07304.3 0014 ... 2 54 308 1 330 .... ....\n\nV44 090 235 .44 250/025 M10 26.8 7.7\nBELTT N4103.8 0001 ... 24 221 P010 M07\nBELTT W07259.2 0015 ... 5 49 293 330 .... ....\n\nV44 042 260 .40 233/017 M10 26.1 8.3\nDEER PARK N4047.5 0005 ... 24 247 M017 M17\nDPK W07318.2 0020 ... 22 27 241 330 .... ....\n117.70\n\nNEW YORK FIR/UIR \n-KZNY N4047.6 0000 ...\n W07317.8 0020 ... 0 27\n\nDCT 24.7 9.8\nKENNEDY INT N4038.4 0010 ... \nKJFK W07346.7 0030 ... 27 .... ....\n\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Wind Information///1-->--------------------------------------------------------------------\n WIND INFORMATION \n ---------------- \n\nCLIMB T O C CMK DENNA\n350 258/050 -56 150 253/034 -19 150 253/034 -19 150 251/034 -19\n310 252/042 -53 130 251/032 -16 130 251/032 -16 130 250/030 -16\n200 256/040 -29 110 252/029 -13 110 253/029 -13 110 250/026 -13\n150 253/034 -19 090 257/027 -10 090 257/027 -10 090 250/025 -10\n100 255/028 -12 070 256/024 -09 070 256/024 -09 070 249/023 -09\n\nBDR NESSI T O D DESCENT\n150 251/034 -19 150 251/034 -19 150 251/034 -19 350 259/050 -57\n130 250/030 -16 130 250/030 -16 130 250/030 -16 310 254/041 -52\n110 250/026 -13 110 250/026 -13 110 250/026 -13 200 255/041 -29\n090 250/025 -10 090 250/025 -10 090 250/025 -10 150 251/034 -19\n070 249/023 -09 070 249/023 -09 070 249/023 -09 100 250/026 -12\n\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///ATC Flight Plan///0--><b>[ ATC Flight Plan ]\n--------------------------------------------------------------------</b>\n ICAO FLIGHT PLAN \n ---------------- \n\nFF KZBWZQZX KZNYZQZX\n271808 CYULSBFP\n(FPL-VMS100-IS\n-B744/H-SDE3FGHIM1M2RWXY/LB1\n-KHPN1855\n-N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n-KJFK0020 KBOS\n-PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS\n PER/D RMK/TCAS)<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Additional Info///0--><b>[ Additional Info ]\n--------------------------------------------------------------------</b>\nD I S P A T C H B R I E F I N G I N F O VMS0100 KHPN/KJFK\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Airport WX List///0--><b>[ Airport WX List ]\n--------------------------------------------------------------------</b>\nKHPN --> KJFK VMS 100 / 27JAN2022\nLIDO/WEATHER SERVICE DATE : 27Jan2022 TIME : 18:08 UTC\n\nAIRMETs:\n No Wx data available\n\nSIGMETs:\n No Wx data available\n\nTropical Cyclone SIGMETs:\n No Wx data available\n\nVolcanic Ash SIGMETs:\n No Wx data available\n\nDeparture:\nKHPN/HPN WESTCHESTER CO\n SA 271756 17008KT 150V210 10SM SCT050 M03/M14 A3036 RMK AO2\n SLP294 T10281139 11028 21139 58025\n FT 271737 2718/2818 18008KT P6SM SCT035\n FM280300 23004KT P6SM BKN100\n FM281200 27004KT P6SM BKN040\n FM281700 31005KT P6SM BKN025 NOT SKED\n\nDestination:\nKJFK/JFK KENNEDY INTL\n SA 271751 18010KT 10SM BKN037 BKN250 M02/M11 A3043 RMK AO2\n SLP302 T10171111 11017 21100 58022\n FT 271737 2718/2824 19009KT P6SM SCT035\n FM280300 22010KT P6SM BKN100\n FM280900 25005KT P6SM SCT050 OVC070\n FM281500 27007KT P6SM BKN040\n FM281800 27007KT P6SM BKN025\n FM282100 35008KT P6SM BKN020\n PROB30 2821/2824 5SM -SN OVC015\n\nDestination Alternates:\nKBOS/BOS LOGAN INTL\n SA 271754 19006KT 10SM BKN250 M04/M21 A3038 RMK AO2 SLP286\n T10441206 11044 21128 58038\n FT 271738 2718/2824 20008KT P6SM BKN250\n FM280200 21010KT P6SM BKN150\n FM280800 23008KT P6SM OVC050\n\n\n AIRPORTLIST ENDED<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///NOTAM///0--><b>[ NOTAM ]\n--------------------------------------------------------------------</b>\nLIDO-NOTAM-BULLETIN INCLUDES NOTAM, COMP NOTAM AND AIP-REGULATION\n<b>VALID: 2201271855 - 2201272318</b> STD(EOBT)+TRIP+ALTN+3HRS\nVMS 100 /27JAN OFP-NR: 1\nROUTE: KHPN - KJFK ALTN: KBOS\nN0321F110 DCT CMK V374 DENNA V44 DPK DCT\n\n\n<b>=================================\nDEPARTURE AIRPORT - DETAILED INFO\n=================================</b>\n\n<b>KHPN/HPN WESTCHESTER CO\n---------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0333/22 VALID: 27-JAN-22 1400 - 27-JAN-22 2030</b>\n TAR/SSR <b>U/S</b>\n<b>A0334/22 VALID: 27-JAN-22 1400 - 27-JAN-22 2030</b>\n MBST/WS DETECTION SYSTEM <b>NOT AVBL</b>\n<b>A0200/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A0004/22 </b>\n DLY 0000-1500\n <b>TWY K</b> BTN APCH END <b>RWY 29</b> AND <b>TWY A</b> <b>CLSD</b>\n<b>11/011 </b>\n NAV <b>ILS</b> <b>RWY 34</b> NOT MNT DLY 0400-1100\n<b>11/012 </b>\n NAV <b>ILS</b> <b>RWY 16</b> NOT MNT DLY 0400-1100\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A1342/21 </b>\n PROP ONE DEPARTURE...\n COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\n EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A1341/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\n EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A1334/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n DISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057.\n CMK <b>VOR/DME</b> R-057 <b>UNUSABLE</b>.\n<b>A0559/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n DIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\n SUITABLE RNAV SYSTEM WITH GPS,\n COL <b>VOR</b> <b>OUT OF SERVICE</b>.<h2 style=\"page-break-after: always;\"> </h2>+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0198/22 </b>\n <b>ILS</b> <b>RWY 16</b> (SA <b>CAT</b> I - II), AMDT 25C ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A1507/21 </b>\n DLY 0400-1100\n <b>ILS</b> <b>RWY 16</b> SPECIAL AUTH <b>CAT</b> II NA\n<b>A1085/20 </b>\n RNAV (RNP) Z <b>RWY 16</b>, ORIG-C...\n RNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513.\n\n+++++++++++++++++++++++++++++++ STAR +++++++++++++++++++++++++++++++\n\n<b>A1139/21 </b>\n STAR NOBBI FIVE ARRIVAL ALB R-238 <b>UNUSABLE</b>. SUITABLE RNAV/GPS\n REQUIRED\n\n<b>===================================\nDESTINATION AIRPORT - DETAILED INFO\n===================================</b>\n\n<b>KJFK/JFK KENNEDY INTL\n-------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0916/22 VALID: 27-JAN-22 1636 - 27-JAN-22 2300</b>\n <b>TWY B</b> BTN <b>TWY NA</b> AND <b>TWY NB</b> <b>CLSD</b> TO ACFT WINGSPAN MORE THAN\n 214FT\n<b>A0915/22 VALID: 27-JAN-22 1635 - 27-JAN-22 2300</b>\n <b>TWY A</b> BTN <b>TWY NA</b> AND <b>TWY NB</b> <b>CLSD</b>\n<b>A0912/22 </b>\n GA TERMINAL RAMP HELIPAD <b>CLSD</b>\n<b>01/529 </b>\n <b>TWY H</b> HLDG PSN SIGN NORTHEAST SIDE FOR <b>RWY 04L/22R</b>\n LGT <b>U/S</b>\n<b>A0894/22 </b>\n ABN ON CONS\n<b>A0550/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A0534/22 </b>\n RNAV (RNP) <b>RWY 13L</b>, AMDT 3A...\n RNAV (RNP) <b>RWY 13R</b>, AMDT 3A...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13.\n<b>01/179 </b>\n <b>TWY MC</b> HLDG PSN SIGN EAST SIDE FOR <b>RWY 13R/31L</b>\n MISSING\n<b>A0131/22 </b>\n <b>TWY C7</b> CLR BAR LGT AT <b>TWY C</b> <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0073/22 </b>\n BLDG 73 RAMP <b>CLSD</b> TO ACFT WINGSPAN MORE THAN 171FT EXC\n UNDER TOW\n<b>01/033 </b>\n <b>TWY HB</b> <b>TWY</b> <b>DIRECTION</b> SIGN FOR <b>TWY A</b> MISSING\n<b>01/032 </b>\n <b>TWY HB</b> LOCATION SIGN BTN TERMINAL 4 RAMP AND <b>TWY A</b>\n MISSING\n<b>01/031 </b>\n <b>TWY Y</b> HLDG PSN SIGN FOR <b>ILS</b> <b>RWY</b>\n 13L/31R NORTHEAST SIDE LGT <b>U/S</b>\n<b>A9279/21 </b>\n <b>TWY Z</b> BTN <b>RWY 04L/22R</b> AND <b>TWY Y</b> <b>CLSD</b>\n<b>12/070 </b>\n <b>TWY F</b> <b>TWY</b> <b>DIRECTION</b> SIGN FOR <b>RWY 04L/22R</b> MISSING\n<b>A8604/21 </b>\n VOLMET 10.051/6.604/3.485/13.270 <b>U/S</b>\n<b>10/325 </b>\n <b>TWY KE</b> SFC PAINTED HLDG PSN SIGNS FOR <b>RWY 13R/31L</b>\n NORTH SIDE FADED\n<b>A8152/21 </b>\n <b>TWY TA</b> BTN <b>TWY A</b> AND TERMINAL 8 RAMP <b>WIP</b> CONST EAST SHOULDER\n LGTD AND BARRICADED\n<b>A7693/21 </b>\n <b>TWY A</b> CLR BAR LGT NOT STD\n<b>09/309 </b>\n COM <b>VOR</b> VOICE <b>U/S</b>\n<b>A0184/21 </b>\n BELMONT VISUAL <b>RWY 22L</b>, ORIG...\n PROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV\n SYSTEM WITH GPS, CRI R-068 <b>UNUSABLE</b>.\n<b>A0163/21 </b>\n <b>TWY TB</b> BTN TERMINAL 8 RAMP AND <b>TWY A</b> <b>CLSD</b>\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A8942/21 </b>\n <b>RWY 04L</b> <b>RWY</b> END ID LGT <b>U/S</b>\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A7525/21 </b>\n KENNEDY FIVE DEPARTURE...\n NOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\n SUITABLE RNAV SYSTEM WITH GPS,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A7049/21 </b>\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9... ADD\n TAKEOFF OBSTACLE NOTE: <b>RWY 31R</b>, TEMPORARY ACFT TAILS 1878FT FROM\n DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL\n (2020-AEA-1302-NRA, LONG TERM CONDITION).\n ALL OTHER DATA REMAINS AS PUBLISHED.\n\n+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0918/22 VALID: 27-JAN-22 1729 - 27-JAN-22 1930</b>\n <b>ILS</b> <b>RWY 31L</b> <b>GP</b> <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0533/22 </b>\n <b>ILS</b> <b>RWY 13L</b> (CAT II), AMDT 18C ...\n <b>ILS</b> <b>RWY 04R</b> (CAT II - III), AMDT 30B ...\n <b>ILS</b> <b>RWY 22L</b> (CAT II - III), AMDT 26 ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A0048/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22R</b>, AMDT 4...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS\n DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n (2021-AEA-9599-OE).\n<b>A9122/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>DME</b> REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV\n SYSTEM WITH GPS,\n CMK <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A8813/21 </b>\n /HTO/ <b>VORTAC</b> 010-240 <b>UNUSABLE</b>\n<b>A8812/21 </b>\n /HTO/ <b>VORTAC</b> 270-332 <b>UNUSABLE</b>\n<b>A8013/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 13L</b>, AMDT 18C...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4.\n UXHUB FIX MINIMUMS: CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA\n 847, VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2 3/4.\n EXCEPT WHEN ADVISED BY ATC CRANE IS DOWN.\n TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n (2021-AEA-9599-OE).\n<b>A8012/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 26...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31L</b>, AMDT 11B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31R</b>, AMDT 16B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 30B...\n RNAV (GPS) <b>RWY 22R</b>, AMDT 1G...\n RNAV (GPS) X <b>RWY 22L</b>, ORIG-A...\n RNAV (GPS) Y <b>RWY 22L</b>, AMDT 1F...\n RNAV (GPS) Y <b>RWY 31L</b>, AMDT 2B...\n RNAV (GPS) Y <b>RWY 31R</b>, AMDT 2C...\n RNAV (GPS) Y <b>RWY 4L</b>, AMDT 3B...\n RNAV (GPS) Y <b>RWY 4R</b>, AMDT 2B...\n <b>VOR</b> <b>RWY 22L</b>, AMDT 4F...\n <b>VOR</b> <b>RWY 31L</b>, ORIG-B...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>VOR</b> <b>RWY 4R</b>, ORIG-B...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4.\n EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN.\n TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n END PART 1 OF 2\n \n JOHN F KENNEDY INTL, NEW YORK, NY.\n (2021-AEA-9599-OE).\n END PART 2 OF 2<h2 style=\"page-break-after: always;\"> </h2><b>A5965/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 26...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22R</b>, AMDT 4...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31L</b>, AMDT 11B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31R</b>, AMDT 16B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 30B...\n RNAV (GPS) <b>RWY 22R</b>, AMDT 1G...\n RNAV (GPS) X <b>RWY 22L</b>, ORIG- A...\n RNAV (GPS) Y <b>RWY 22L</b>, AMDT 1F...\n RNAV (GPS) Y <b>RWY 31L</b>, AMDT 2B...\n RNAV (GPS) Y <b>RWY 31R</b>, AMDT 2C...\n RNAV (GPS) Y <b>RWY 4L</b>, AMDT 3B...\n RNAV (GPS) Y <b>RWY 4R</b>, AMDT 2B...\n <b>VOR</b> <b>RWY 22L</b>, AMDT 4F...\n <b>VOR</b> <b>RWY 31L</b>, ORIG-B...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>VOR</b> <b>RWY 4R</b>, ORIG-B...\n CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2\n 1/4.\n<b>A3497/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 13L</b>, AMDT 18C...\n CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2\n 1/4. UXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687.\n VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2 1/4.\n<b>A3344/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n AUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL.\n\n+++++++++++++++++++++++++++++++ STAR +++++++++++++++++++++++++++++++\n\n<b>A0555/22 </b>\n STAR ROBER TWO ARRIVAL <b>DME</b> REQUIRED EXC FOR\n ACFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, PVD <b>VOR/DME</b>\n <b>OUT OF SERVICE</b>.\n<b>A0132/22 </b>\n LENDY ARRIVAL...\n <b>UNUSABLE</b> BLW 4000FT\n\n<b>================================\nDESTINATION ALTERNATE AIRPORT(S)\n================================</b>\n\n<b>KBOS/BOS LOGAN INTL\n-----------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A1196/22 VALID: 27-JAN-22 1126 - 27-JAN-22 1900</b>\n <b>TWY A</b>, B, E, K <b>WIP</b>\n<b>01/716 </b>\n <b>TWY A1</b> <b>TWY</b> <b>DIRECTION</b> SIGN EAST SIDE FOR <b>TWY A</b>\n MISSING\n<b>01/714 </b>\n <b>RWY 22R</b> 6000FT DIST REMAINING SIGN LEFT SIDE LGT\n <b>U/S</b>\n<b>01/715 </b>\n <b>TWY Q</b> HLDG PSN SIGN FOR <b>RWY 15R/33L</b> LGT <b>U/S</b>\n<b>01/713 </b>\n <b>RWY 04L</b> 2000FT DIST REMAINING SIGN RIGHT SIDE LGT\n <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0692/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A1349/21 </b>\n SPECIAL RNAV VISUAL <b>RWY 04L</b> ORIG...PROC NOT AUTH.\n<b>03/082 </b>\n OBST STRUCTURE (ASN UNKNOWN) 422209N0710446W\n (2.6NM W BOS) UNKNOWN (302FT AGL) NOT LGTD\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A1223/22 </b>\n <b>RWY 15L/33R</b> <b>CLSD</b> EXC TAX 30 MIN PPR 131.1\n<b>A1178/22 </b>\n <b>RWY 14/32</b> <b>CLSD</b> EXC TAX 30MIN PPR 131.1\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A0871/22 </b>\n BLZZR FIVE DEPARTURE (RNAV)...\n BRUWN SIX DEPARTURE (RNAV)...\n CELTK SIX DEPARTURE (RNAV)...\n HYLND SIX DEPARTURE (RNAV)...\n LBSTA SEVEN DEPARTURE (RNAV)...\n LOGAN THREE DEPARTURE...\n PATSS SIX DEPARTURE (RNAV)...\n REVSS FIVE DEPARTURE (RNAV)...\n SSOXS SIX DEPARTURE (RNAV)...\n WYLYY FOUR DEPARTURE (RNAV)...\n TAKE-OFF MINIMUMS: <b>RWY 27</b>, 1000-2-1/2. TEMPORARY CRANE 927FT MSL\n 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE). ALL OTHER DATA REMAINS\n AS PUBLISHED.\n<b>A0870/22 </b>\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15...\n TAKE-OFF MINIMUMS: <b>RWY 27</b>, 1000-2-1/2. DEPARTURE PROCEDURE: <b>RWY</b>\n 4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. <b>RWY 9</b>,\n CLIMB ON HEADING 092 TO 600 BEFORE TURNING LEFT. <b>RWY 14</b>, CLIMB ON\n HEADING 141 TO 700 BEFORE TURNING RIGHT. <b>RWY</b> 15L/R, CLIMB ON\n HEADING 150 TO 600 BEFORE TURNING RIGHT. <b>RWY 22L</b>, CLIMB ON HEADING\n 215 TO 900 BEFORE TURNING RIGHT. <b>RWY 22R</b>, CLIMB ON HEADING 215 TO\n 1000 BEFORE TURNING RIGHT. <b>RWY 33L</b>, CLIMB ON HEADING 330 TO 900\n BEFORE TURNING LEFT. ADD TAKEOFF OBSTACLE NOTE: <b>RWY 14</b>, TEMPORARY\n CRANE 445FT FROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL\n (2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF <b>RWY</b>\n 14 (2019-ANE-1262-OE).\n TEMPORARY CRANE 927FT MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n ALL OTHER DATA REMAINS AS PUBLISHED.\n<b>A0875/22 </b>\n DIVERSE VECTOR AREA (RADAR VECTORS) ORIG ...\n <b>RWY 14</b>, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. <b>RWY 22L</b>,\n REQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. <b>RWY 22R</b>,\n DEPARTURE NA. <b>RWY 33L</b>, REQUIRES MINIMUM CLIMB OF 437 FT PER NM\n TO 1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF <b>RWY 9</b>, 427FT AGL/\n 440FT MSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS\n AIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA\n REMAINS AS PUBLISHED.<h2 style=\"page-break-after: always;\"> </h2><b>A2594/21 </b>\n LOGAN THREE DEPARTURE...\n TAKEOFF MINIMUMS: <b>RWY 27</b>, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n 500FT PER NM TO 1300.\n ALL OTHER DATA REMAINS AS PUBLISHED.\n<b>A0637/21 </b>\n WYLYY FOUR DEPARTURE (RNAV)...\n TAKEOFF MINIMUMS: <b>RWY 27</b>, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n 500 FT PER NM TO 2300.\n ALL OTHER DATA REMAINS AS PUBLISHED.\n\n+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0874/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 15R</b>, AMDT 2A...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 8D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 33L</b>, AMDT 5F...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 11...\n RNAV (GPS) <b>RWY 15R</b>, AMDT 2...\n RNAV (GPS) <b>RWY 22L</b>, AMDT 1D...\n RNAV (GPS) <b>RWY 32</b>, ORIG-G...\n RNAV (GPS) <b>RWY 33L</b>, AMDT 2D...\n RNAV (GPS) <b>RWY 4R</b>, AMDT 3...\n VOR-A, AMDT 1C...\n CIRCLING <b>CAT</b> B MDA 1240/ HAA 1221. NOTE: CIRCLING <b>RWY 9</b> NA AT\n NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF <b>RWY 9</b>\n (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS\n AIRPORT (2021-ANE-7562-OE).\n<b>A0873/22 </b>\n RNAV (GPS) <b>RWY 27</b>, AMDT 1...\n LNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL\n CATS, VISIBILITY CATS C/D 2. CIRCLING <b>CAT</b> B MDA 1240/ HAA 1221.\n NOTE: CIRCLING <b>RWY 9</b> NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27\n NM SOUTHWEST OF <b>RWY 9</b> (2021-ANE-2398-OE). TEMPORARY CRANE 927FT\n MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n<b>A0872/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 27</b>, AMDT 3...\n S-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8.\n S-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING <b>CAT</b> B MDA 1240/ HAA\n 1221. NOTE: CIRCLING <b>RWY 9</b> NA AT NIGHT. TEMPORARY CRANE 440FT\n MSL 1.27 NM SOUTHWEST OF <b>RWY 9</b> (2021-ANE-2398-OE). TEMPORARY\n CRANE 927FT MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n<b>A0689/22 </b>\n <b>ILS</b> <b>RWY 04R</b> (SA <b>CAT</b> I), AMDT 11 ...\n <b>ILS</b> <b>RWY 33L</b> (SA <b>CAT</b> I), AMDT 5F ...\n <b>ILS</b> <b>RWY 04R</b> (CAT II - III), AMDT 11 ...\n <b>ILS</b> <b>RWY 33L</b> (CAT II - III), AMDT 5F ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A9587/20 </b>\n <b>ILS</b> <b>RWY 4R</b> (SA <b>CAT</b> I), AMDT 11 ...\n DISREGARD NOTE: CIRCLING NA FOR <b>CAT</b> C/D WEST OF <b>RWYS</b> 4L AND 15R.\n DISREGARD NOTE: CIRCLING NA TO <b>RWY 14</b>.\n<b>A9586/20 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 11...\n ADD NOTE: CIRCLING NA FOR <b>CAT</b> C/D WEST OF <b>RWYS</b> 4L AND 15R..\n ADD NOTE: CIRCLING NA TO <b>RWY 14</b>.\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Company NOTAM///0--><b>[ Company NOTAM ]\n--------------------------------------------------------------------</b>\n<b>==========\nCREW ALERT\n==========</b>\n\n<b>SB007/14 </b>\n SUBJECT: AUTO COST INDEXES\n WHEN PLANNING A COST INDEX, 2 OPTIONS ARE AVAILABLE. PILOTS MAY\n EITHER SELECT A SPECIFIC COST INDEX NUMBER FROM THE LIST, OR THEY\n MAY SELECT \"AUTO\". WHEN PLANNING AN \"AUTO\" COST INDEX, THE SYSTEM\n WILL REFERENCE THE SCHEDULED \"TIME ENROUTE\" OPTION AND ATTEMPT TO\n CHOOSE A COST INDEX WHICH CLOSELY MATCHES THIS VALUE. NOTE THAT\n THE \"TIME ENROUTE\" OPTION IS MEANT AS A GATE TO GATE TIME (AS\n INDICATED ON AN AIRLINE'S FLIGHT SCHEDULE, FOR EXAMPLE). IF A\n \"TIME ENROUTE\" OF 2:30 IS SELECTED, THE SYSTEM WILL SUBTRACT THE\n TAXI TIMES FROM THIS VALUE TO DETERMINE THE SCHEDULED AIR TIME. IT\n WILL THEN DETERMINE AND USE THE COST INDEX WHICH MATCHES THIS AIR\n TIME.\n\n<b>SB003/13 </b>\n SUBJECT: FLIGHT RELEASE UNITS\n ALL FLIGHT CREW: PLEASE PAY SPECIAL ATTENTION TO THE UNITS\n SELECTION WHEN GENERATING A FLIGHT PLAN. FAILURE TO IDENTIFY THE\n CORRECT UNITS WHEN REFUELING PRIOR TO FLIGHT CAN RESULT IN\n DEPARTING WITH INSUFFICIENT FUEL AND/OR AN ERRONEOUS PAYLOAD.\n\n<b>=============\nCREW BULLETIN\n=============</b>\n\nNIL\n\n\n==================== END OF LIDO-NOTAM-BULLETIN ====================<h2 style=\"page-break-after: always;\"> </h2>Route\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_ROUTE.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_ROUTE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 1 of 2\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 2 of 2\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18_B.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18_B.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 1 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS5000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS5000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 2 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS10000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS10000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 3 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS14000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS14000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>Vertical profile\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_PROFILE.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_PROFILE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a></pre></div>\n \n https://www.pilotedge.net/pilot_tools/file?flightplan[type]=IFR&flightplan[aircraft_identification]=VMS100&flightplan[aircraft_type]=B744&flightplan[aircraft_equipment]=L&flightplan[heavy]=1&flightplan[airspeed]=321&flightplan[departing_airport]=KHPN&flightplan[arriving_airport]=KJFK&flightplan[altitude]=11000&flightplan[alternate_airport]=KBOS&flightplan[route]=CMK V374 DENNA V44 DPK&flightplan[remarks]=RMK/SIMBRIEF\n https://hq.poscon.net/flightplan/create?flightRules=I&callsign=VMS100&isRegistration=N&flightType=S&numOfAircraft=1&aircraftType=B744&wakeTurbulence=H&equipmentCode=S%2CD%2CE3%2CF%2CG%2CH%2CI%2CM1%2CM2%2CR%2CW%2CX%2CY&ssr=L%2CB1&departureApt=KHPN&dateOfFlight=220127&depTime=1855&speed=N0321&cruiseAlt=F110&route=DCT+CMK+V374+DENNA+V44+DPK+DCT&destinationApt=KJFK&ete=0030&firstAlt=KBOS&secondAlt=&status=&pbn=A1%2CB1%2CD1%2CO1%2CS2&performanceCat=D&otherInformation=PBN%2FA1B1D1O1S2+DOF%2F220127+REG%2F001Z+EET%2FKZNY0020+SEL%2FBKFS+OPR%2FVMS+PER%2FD+RMK%2FTCAS+SIMBRIEF&endurance=0147&numOnBoard=417&emergencyRadio=&waterEquipment=&remarks=TCAS+SIMBRIEF\n \n VMS\n 100\n B744\n KHPN\n KJFK\n 1643241600\n 64800\n 3300\n DCT CMK V374 DENNA V44 BELTT/N0346F140 V44 DPK DCT\n 14400\n 0\n 001Z\n \n BKFS\n 413\n KBOS\n 110\n NABEEL SHAHZAD\n 120867\n 1\n auto\n 0\n 0.05/5\n 30\n auto\n auto\n auto\n 16\n 22R\n auto\n auto\n CI\n AUTO\n lido\n 1\n 1\n 0\n 0\n 1\n 1\n 0\n 1\n \n \n \n \n \n \n \n \n VMS0001_flightid_1\n {'paxwgt':220}\n {\"paxwgt\":220}\n \n\n" ofp_xml: "\n\n \n 46018208\n 120867\n 1643306919\n VMS0001_flightid_1\n lido2\n 2003\n lbs\n \n \n 1\n VMS\n 100\n 0\n LOAD DISTRIBUTION Y 400 B 9 F 4\n \n 1\n CI25\n 250/340/84\n 84/340/250\n CI0\n RES\n 25\n 5 MIN\n 11000\n KHPN/0110\n -9\n 32927\n 8\n 248\n 025\n 26\n 117\n 113\n 8801\n 321\n .51\n 400\n DCT CMK V374 DENNA V44 DPK DCT\n DCT CMK V374 DENNA V44 DPK DCT\n DCT CMK V374 DENNA V44 DPK DCT\n \n \n KHPN\n HPN\n \n 439\n 41.066953\n -73.707567\n WESTCHESTER CO\n 16\n 18000\n 18000\n \n \n KJFK\n JFK\n \n 13\n 40.639928\n -73.778692\n KENNEDY INTL\n 22R\n 18000\n 18000\n \n \n KBOS\n BOS\n \n 19\n 42.362944\n -71.006389\n LOGAN INTL\n 22L\n 18000\n 18000\n 35000\n 254\n 162\n 230\n 049\n 063\n 439\n 473\n P034\n 255\n 043\n 33400\n M04\n 2520\n 14180\n DCT MERIT ROBUC3\n DCT MERIT ROBUC3\n \n \n \n \n \n TOC\n TOP OF CLIMB\n ltlg\n \n 41.097385\n -73.689597\n CLB\n DCT\n 0\n 21\n 023\n 037\n 020\n 033\n 11000\n 340\n 397\n 0.63\n 0.63\n 18\n 415\n 400\n 400\n 46903\n 4195\n 4195\n 27850\n 29286\n -13\n -6\n 252\n 29\n 1\n 32800\n 221\n 2600\n KZBW\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 206\n 12\n -5\n \n \n 5000\n 242\n 21\n -10\n \n \n 10000\n 255\n 28\n -12\n \n \n 14000\n 251\n 33\n -18\n \n \n 18000\n 257\n 37\n -25\n \n \n 24000\n 260\n 38\n -38\n \n \n 30000\n 251\n 41\n -51\n \n \n 34000\n 255\n 46\n -57\n \n \n 39000\n 267\n 64\n -52\n \n \n 45000\n 266\n 62\n -53\n \n \n \n \n \n CMK\n CARMEL\n vor\n 116.60\n 41.280089\n -73.581325\n CRZ\n DCT\n 0\n 12\n 023\n 037\n 019\n 032\n 11000\n 275\n 321\n 0.51\n 0.511\n 18\n 339\n 127\n 527\n 18666\n 661\n 4856\n 27189\n 28625\n -13\n -6\n 252\n 29\n 1\n 32800\n 221\n 3000\n KZBW\n N,F\n 3000,5000,7000,9000,11000,13000,15000,17000\n \n \n 0\n 206\n 12\n -5\n \n \n 5000\n 242\n 21\n -10\n \n \n 10000\n 255\n 28\n -12\n \n \n 14000\n 251\n 33\n -18\n \n \n 18000\n 257\n 37\n -25\n \n \n 24000\n 260\n 38\n -38\n \n \n 30000\n 251\n 41\n -51\n \n \n 34000\n 255\n 46\n -57\n \n \n 39000\n 267\n 64\n -52\n \n \n 45000\n 266\n 62\n -53\n \n \n \n \n \n DENNA\n DENNA\n wpt\n \n 41.233275\n -73.193872\n CRZ\n V374\n 0\n 18\n 099\n 112\n 101\n 114\n 11000\n 275\n 321\n 0.51\n 0.511\n 22\n 343\n 189\n 716\n 18629\n 978\n 5834\n 26211\n 27647\n -13\n -6\n 250\n 26\n 1\n 33000\n 37\n 3000\n KZBW\n N,F\n 3000,5000,7000,9000,11000,13000,15000,17000\n \n \n 0\n 212\n 10\n -6\n \n \n 5000\n 240\n 19\n -10\n \n \n 10000\n 250\n 25\n -11\n \n \n 14000\n 250\n 32\n -17\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 262\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n BDR\n BRIDGEPORT\n vor\n 108.80\n 41.160694\n -73.124497\n CRZ\n V44\n 0\n 5\n 144\n 157\n 148\n 161\n 11000\n 275\n 321\n 0.51\n 0.511\n 6\n 327\n 55\n 771\n 18607\n 285\n 6119\n 25926\n 27362\n -13\n -6\n 250\n 26\n 1\n 33000\n 37\n 2300\n KZBW\n N,F\n 3000,5000,7000,9000,11000,13000,15000,17000\n \n \n 0\n 212\n 10\n -6\n \n \n 5000\n 240\n 19\n -10\n \n \n 10000\n 250\n 25\n -12\n \n \n 14000\n 250\n 32\n -18\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 262\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n NESSI\n NESSI\n wpt\n \n 41.100444\n -73.039244\n CRZ\n V44\n 0\n 5\n 133\n 146\n 137\n 150\n 11000\n 275\n 321\n 0.51\n 0.51\n 11\n 332\n 54\n 826\n 18592\n 280\n 6399\n 25646\n 27082\n -13\n -6\n 250\n 26\n 1\n 33000\n 37\n 2000\n KZBW\n N,F\n 3000,5000,7000,9000,11000,13000,15000,17000\n \n \n 0\n 212\n 10\n -6\n \n \n 5000\n 240\n 19\n -10\n \n \n 10000\n 250\n 25\n -12\n \n \n 14000\n 250\n 32\n -18\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 262\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n TOD\n TOP OF DESCENT\n ltlg\n \n 41.123243\n -73.071478\n CRZ\n V44\n 0\n 2\n 313\n 327\n 309\n 322\n 11000\n 275\n 321\n 0.51\n 0.511\n -13\n 308\n 23\n 849\n 18766\n 122\n 6521\n 25524\n 26960\n -13\n -6\n 250\n 26\n 1\n 33000\n 37\n 2000\n KZBW\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 212\n 10\n -6\n \n \n 5000\n 240\n 19\n -10\n \n \n 10000\n 250\n 25\n -12\n \n \n 14000\n 250\n 32\n -18\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 262\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n BELTT\n BELTT\n wpt\n \n 41.063503\n -72.987089\n DSC\n V44\n 0\n 5\n 133\n 147\n 138\n 151\n 9000\n 250\n 283\n 0.44\n 0.44\n 10\n 293\n 76\n 925\n 10009\n 151\n 6672\n 25373\n 26809\n -10\n -7\n 250\n 25\n 0\n 33000\n 37\n 2200\n KZBW\n N,F\n 1000,3000,5000,7000,9000,11000,13000,15000,17000,19000,21000,23000,25000,27000,29000,31000,33000,35000,37000,39000,41000,45000,49000,53000,57000,61000,65000,69000\n \n \n 0\n 212\n 10\n -6\n \n \n 5000\n 240\n 19\n -10\n \n \n 10000\n 250\n 25\n -12\n \n \n 14000\n 250\n 32\n -18\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 262\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n DPK\n DEER PARK\n vor\n 117.70\n 40.791750\n -73.303658\n DSC\n V44\n 0\n 22\n 221\n 235\n 222\n 235\n 4200\n 250\n 258\n 0.4\n 0.4\n -17\n 241\n 333\n 1257\n 9707\n 664\n 7336\n 24709\n 26145\n -10\n -17\n 233\n 17\n 0\n 33000\n 37\n 2400\n KZNY\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 212\n 10\n -5\n \n \n 5000\n 241\n 19\n -10\n \n \n 10000\n 250\n 26\n -12\n \n \n 14000\n 250\n 32\n -18\n \n \n 18000\n 256\n 39\n -25\n \n \n 24000\n 261\n 37\n -38\n \n \n 30000\n 254\n 39\n -51\n \n \n 34000\n 256\n 46\n -58\n \n \n 39000\n 267\n 62\n -53\n \n \n 45000\n 267\n 60\n -53\n \n \n \n \n \n KJFK\n KENNEDY INTL\n apt\n \n 40.639928\n -73.778692\n DSC\n DCT\n 0\n 27\n 247\n 260\n 245\n 258\n 2500\n 250\n 250\n 0.39\n 0.39\n -12\n 238\n 582\n 1839\n 9594\n 1465\n 8801\n 23244\n 24680\n -10\n -20\n 212\n 15\n 1\n 32800\n 221\n 2400\n KZNY\n N,F\n 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000,22000,24000,26000,28000,30000,32000,34000,36000,38000,40000,43000,47000,51000,55000,59000,63000,67000\n \n \n 0\n 207\n 12\n -5\n \n \n 5000\n 243\n 21\n -10\n \n \n 10000\n 256\n 28\n -12\n \n \n 14000\n 252\n 34\n -18\n \n \n 18000\n 257\n 38\n -24\n \n \n 24000\n 258\n 38\n -38\n \n \n 30000\n 251\n 41\n -51\n \n \n 34000\n 256\n 48\n -57\n \n \n 39000\n 267\n 65\n -52\n \n \n 45000\n 266\n 63\n -53\n \n \n \n \n KZNY\n NEW YORK FIR/UIR\n 40.79394\n -73.29718\n \n \n \n \n \n \n (FPL-VMS100-IS\n-B744/H-SDE3FGHIM1M2RWXY/LB1\n-KHPN1855\n-N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n-KJFK0030 KBOS\n-PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS\n PER/D RMK/TCAS)\n N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n VMS100\n 0321\n N\n 110\n F\n PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS PER/D RMK/TCAS\n KZBW\n KZNY\n KZBW\n \n KZNY\n \n \n B744\n 744\n B747-400\n 001Z\n 484\n BKFS\n H-SDE3FGHIM1M2RWXY/LB1\n 400\n 1\n \n \n 1000\n 8801\n 1436\n 14180\n 9064\n 0\n 0\n 33481\n 33481\n 34481\n 24680\n 17229\n 383810\n \n \n 1839\n 13740\n 1643309700\n 1643310000\n 1643323740\n 1643324100\n 14400\n 1643309700\n 1643310000\n 1643311839\n 1643312199\n 2499\n -5\n -5\n 300\n 360\n 1800\n 6459\n 300\n 0\n 0\n \n \n 403534\n 400\n 0\n 400\n 0\n 220\n 0\n 3300\n 3300\n 91300\n 494834\n 545000\n 528315\n 638801\n 875000\n L\n 519514\n 630000\n 529315\n \n \n \n 1957\n 118\n 8262\n -539\n 33772\n 050\n 262\n 0.41\n 25\n \n \n 1896\n 57\n 8237\n -564\n 33784\n 070\n 272\n 0.43\n 25\n \n \n 1866\n 27\n 8342\n -459\n 33927\n 090\n 283\n 0.45\n 25\n \n \n 1961\n 122\n 9610\n 809\n 35324\n 130\n 332\n 0.53\n 25\n \n \n 2053\n 214\n 10342\n 1541\n 36098\n 150\n 343\n 0.55\n 25\n \n \n \n 1745\n -94\n 8923\n 122\n 34701\n 110\n 410\n 0.65\n 500\n \n \n 1857\n 18\n 8756\n -45\n 34415\n 110\n 309\n 0.49\n 0\n \n \n 1839\n -0\n 8811\n 10\n 34493\n 110\n 322\n 0.51\n 25\n \n \n 1839\n 0\n 8784\n -17\n 34461\n 110\n 321\n 0.51\n 25\n \n \n \n 120867\n NABEEL SHAHZAD\n PAMELA TRAVIS\n PATSY MOSLEY\n GLORIA TILLMAN\n AMELIA CAMERON\n MACK WEBSTER\n KATHLEEN HEWITT\n BOYD MAY\n YVONNE QUINN\n ELSA GILLESPIE\n SOPHIA KNIGHT\n SHELIA PHILLIPS\n JUANITA CRAIG\n PABLO ROTH\n VIRGIL HARRISON\n LOLA REYES\n GREGG MCLEOD\n ERICK CARTER\n \n \n \n I\n KBOS\n A1223/22\n 1\n BOS\n BOS\n 01/749\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271711\n 202201271706\n 202202242359\n 202201271712\n 202201271718\n A1223/22 NOTAMN\nQ) KZBW/QMRLC/IV/NBO/A/000/999/4222N07100W005\nA) KBOS\nB) 2201271706\nC) 2202242359\nE) RWY 15L/33R CLSD EXC TAX 30 MIN PPR 131.1\n RWY 15L/33R CLSD EXC TAX 30 MIN PPR 131.1. 27 JAN 17:06 2022 UNTIL 24 FEB 23:59 2022. CREATED: 27 JAN 17:11 2022\n NOTAMN\n QMRLC\n \n \n I\n KBOS\n A1200/22\n 1\n BOS\n BOS\n 01/736\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271253\n 202201271247\n 202201272100\n 202201271254\n 202201271258\n A1200/22 NOTAMN\nQ) KZBW/QOBCE/IV/M/AE/000/999/4222N07100W005\nA) KBOS\nB) 2201271247\nC) 2201272100\nE) CRANE (ASN 2019-ANE-1575-NRA) 422154N0710111W (0.6NM W\nBOS) 233FT (220FT AGL) FLAGGED AND LGTD\n CRANE (ASN 2019-ANE-1575-NRA) 422154N0710111W (0.6NM W BOS) 233FT (220FT AGL) FLAGGED AND LGTD. 27 JAN 12:47 2022 UNTIL 27 JAN 21:00 2022. CREATED: 27 JAN 12:53 2022\n NOTAMN\n QOBCE\n \n \n I\n KBOS\n A1198/22\n 1\n BOS\n BOS\n 01/735\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271218\n 202201271205\n 202201272100\n 202201271219\n 202201271224\n A1198/22 NOTAMN\nQ) KZBW/QOBCE/IV/M/AE/000/999/4222N07100W005\nA) KBOS\nB) 2201271205\nC) 2201272100\nE) CRANE (ASN 2021-ANE-1111-NRA) 422212N0710121W (0.8NM WNW\nBOS) 262FT (250FT AGL) FLAGGED AND LGTD\n CRANE (ASN 2021-ANE-1111-NRA) 422212N0710121W (0.8NM WNW BOS) 262FT (250FT AGL) FLAGGED AND LGTD. 27 JAN 12:05 2022 UNTIL 27 JAN 21:00 2022. CREATED: 27 JAN 12:18 2022\n NOTAMN\n QOBCE\n \n \n I\n KBOS\n A1196/22\n 1\n BOS\n BOS\n 01/734\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271138\n 202201271126\n 202201271900\n 202201271139\n 202201271144\n A1196/22 NOTAMN\nQ) KZBW/QMXXX////000/999/4222N07100W005\nA) KBOS\nB) 2201271126\nC) 2201271900\nE) TWY A, B, E, K WIP\n TWY A, B, E, K WIP. 27 JAN 11:26 2022 UNTIL 27 JAN 19:00 2022. CREATED: 27 JAN 11:38 2022\n NOTAMN\n QMXXX\n \n \n I\n KBOS\n A1178/22\n 1\n BOS\n BOS\n 01/725\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201270010\n 202201270010\n 202202222359\n 202201270011\n 202201270016\n A1178/22 NOTAMN\nQ) KZBW/QMRLC/IV/NBO/A/000/999/4222N07100W005\nA) KBOS\nB) 2201270010\nC) 2202222359\nE) RWY 14/32 CLSD EXC TAX 30MIN PPR 131.1\n RWY 14/32 CLSD EXC TAX 30MIN PPR 131.1. 27 JAN 00:10 2022 UNTIL 22 FEB 23:59 2022. CREATED: 27 JAN 00:10 2022\n NOTAMN\n QMRLC\n \n \n I\n KBOS\n A0870/22\n 1\n BOS\n FDC\n 2/6473\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0870/22 NOTAMN\nQ) KZBW/QPDCH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) \nTAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15...\nTAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. DEPARTURE PROCEDURE: RWY\n4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. RWY 9, CLIMB\nON HEADING 092 TO 600 BEFORE TURNING LEFT. RWY 14, CLIMB ON HEADING\n141 TO 700 BEFORE TURNING RIGHT. RWY 15L/R, CLIMB ON HEADING 150 TO\n600 BEFORE TURNING RIGHT. RWY 22L, CLIMB ON HEADING 215 TO 900\nBEFORE TURNING RIGHT. RWY 22R, CLIMB ON HEADING 215 TO 1000 BEFORE\nTURNING RIGHT. RWY 33L, CLIMB ON HEADING 330 TO 900 BEFORE TURNING\nLEFT. ADD TAKEOFF OBSTACLE NOTE: RWY 14, TEMPORARY CRANE 445FT\nFROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL\n(2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF RWY\n14 (2019-ANE-1262-OE). \nTEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). \nALL OTHER DATA REMAINS AS PUBLISHED.\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15... TAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. DEPARTURE PROCEDURE: RWY 4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. RWY 9, CLIMB ON HEADING 092 TO 600 BEFORE TURNING LEFT. RWY 14, CLIMB ON HEADING 141 TO 700 BEFORE TURNING RIGHT. RWY 15L/R, CLIMB ON HEADING 150 TO 600 BEFORE TURNING RIGHT. RWY 22L, CLIMB ON HEADING 215 TO 900 BEFORE TURNING RIGHT. RWY 22R, CLIMB ON HEADING 215 TO 1000 BEFORE TURNING RIGHT. RWY 33L, CLIMB ON HEADING 330 TO 900 BEFORE TURNING LEFT. ADD TAKEOFF OBSTACLE NOTE: RWY 14, TEMPORARY CRANE 445FT FROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL (2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF RWY 14 (2019-ANE-1262-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPDCH\n \n \n I\n KBOS\n A0871/22\n 1\n BOS\n FDC\n 2/6474\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0871/22 NOTAMN\nQ) KZBW/QPDCH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) \nBLZZR FIVE DEPARTURE (RNAV)...\nBRUWN SIX DEPARTURE (RNAV)...\nCELTK SIX DEPARTURE (RNAV)...\nHYLND SIX DEPARTURE (RNAV)...\nLBSTA SEVEN DEPARTURE (RNAV)...\nLOGAN THREE DEPARTURE...\nPATSS SIX DEPARTURE (RNAV)...\nREVSS FIVE DEPARTURE (RNAV)...\nSSOXS SIX DEPARTURE (RNAV)...\nWYLYY FOUR DEPARTURE (RNAV)...\nTAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. TEMPORARY CRANE 927FT MSL\n1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS\nPUBLISHED.\n BLZZR FIVE DEPARTURE (RNAV)... BRUWN SIX DEPARTURE (RNAV)... CELTK SIX DEPARTURE (RNAV)... HYLND SIX DEPARTURE (RNAV)... LBSTA SEVEN DEPARTURE (RNAV)... LOGAN THREE DEPARTURE... PATSS SIX DEPARTURE (RNAV)... REVSS FIVE DEPARTURE (RNAV)... SSOXS SIX DEPARTURE (RNAV)... WYLYY FOUR DEPARTURE (RNAV)... TAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPDCH\n \n \n I\n KBOS\n A0872/22\n 1\n BOS\n FDC\n 2/6475\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0872/22 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) ILS OR LOC RWY 27, AMDT 3...\nS-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8. \nS-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING CAT B MDA 1240/ HAA\n1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL\n1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE\n927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE).\n ILS OR LOC RWY 27, AMDT 3... S-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8. S-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPICH\n \n \n I\n KBOS\n A0873/22\n 1\n BOS\n FDC\n 2/6476\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0873/22 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) RNAV (GPS) RWY 27, AMDT 1...\nLNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL\nCATS, VISIBILITY CATS C/D 2. CIRCLING CAT B MDA 1240/ HAA 1221. \nNOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27\nNM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT\nMSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE).\n RNAV (GPS) RWY 27, AMDT 1... LNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL CATS, VISIBILITY CATS C/D 2. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPICH\n \n \n I\n KBOS\n A0874/22\n 1\n BOS\n FDC\n 2/6477\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0874/22 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) ILS OR LOC RWY 15R, AMDT 2A...\nILS OR LOC RWY 22L, AMDT 8D...\nILS OR LOC RWY 33L, AMDT 5F...\nILS OR LOC RWY 4R, AMDT 11...\nRNAV (GPS) RWY 15R, AMDT 2...\nRNAV (GPS) RWY 22L, AMDT 1D...\nRNAV (GPS) RWY 32, ORIG-G...\nRNAV (GPS) RWY 33L, AMDT 2D...\nRNAV (GPS) RWY 4R, AMDT 3...\nVOR-A, AMDT 1C...\nCIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT\nNIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9\n(2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS\nAIRPORT (2021-ANE-7562-OE).\n ILS OR LOC RWY 15R, AMDT 2A... ILS OR LOC RWY 22L, AMDT 8D... ILS OR LOC RWY 33L, AMDT 5F... ILS OR LOC RWY 4R, AMDT 11... RNAV (GPS) RWY 15R, AMDT 2... RNAV (GPS) RWY 22L, AMDT 1D... RNAV (GPS) RWY 32, ORIG-G... RNAV (GPS) RWY 33L, AMDT 2D... RNAV (GPS) RWY 4R, AMDT 3... VOR-A, AMDT 1C... CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS AIRPORT (2021-ANE-7562-OE). 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPICH\n \n \n I\n KBOS\n A0875/22\n 1\n BOS\n FDC\n 2/6478\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211230\n 202201211228\n 202201211231\n 202201250704\n A0875/22 NOTAMN\nQ) KZBW/QPDCH/I/NBO/A/000/999/\nA) KBOS\nB) 2201211228\nC) 2203161228 EST\nE) DIVERSE VECTOR AREA (RADAR VECTORS) ORIG ...\nRWY 14, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. RWY 22L,\nREQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. RWY 22R,\nDEPARTURE NA. RWY 33L, REQUIRES MINIMUM CLIMB OF 437 FT PER NM TO\n1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF RWY 9, 427FT AGL/ 440FT\nMSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS\nAIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA\nREMAINS AS PUBLISHED.\n DIVERSE VECTOR AREA (RADAR VECTORS) ORIG ... RWY 14, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. RWY 22L, REQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. RWY 22R, DEPARTURE NA. RWY 33L, REQUIRES MINIMUM CLIMB OF 437 FT PER NM TO 1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF RWY 9, 427FT AGL/ 440FT MSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS AIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:30 2022\n NOTAMN\n QPDCH\n \n \n I\n KBOS\n A0692/22\n 1\n BOS\n BOS\n 01/437\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201130920\n 202201190501\n 202401190501\n 202201130921\n 202201250704\n A0692/22 NOTAMN\nQ) KZBW/QFAXX////000/999/4222N07100W005\nA) KBOS\nB) 2201190501\nC) 2401190501\nE) AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\nENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\nALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT\nA/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING\nAPPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\nINTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13\nF) SFC\nG) UNL\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. SFC - UNL, 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 09:20 2022\n NOTAMN\n QFAXX\n \n \n I\n KBOS\n A0689/22\n 1\n BOS\n FDC\n 2/3748\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201130518\n 202201190500\n 202201130518\n 202201250704\n A0689/22 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2201190500\nC) 2401190504 EST\nE) ILS RWY 04R (SA CAT I), AMDT 11 ...\nILS RWY 33L (SA CAT I), AMDT 5F ...\nILS RWY 04R (CAT II - III), AMDT 11 ...\nILS RWY 33L (CAT II - III), AMDT 5F ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\nCOMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\nDIRECTIVES 2021-23-12, 2021-23-13\n ILS RWY 04R (SA CAT I), AMDT 11 ... ILS RWY 33L (SA CAT I), AMDT 5F ... ILS RWY 04R (CAT II - III), AMDT 11 ... ILS RWY 33L (CAT II - III), AMDT 5F ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:00 2022 UNTIL 19 JAN 05:04 2024 ESTIMATED. CREATED: 13 JAN 05:18 2022\n NOTAMN\n QPICH\n \n \n I\n KBOS\n A2594/21\n 1\n BOS\n FDC\n 1/3711\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202112011450\n 202112011446\n 202112011451\n 202201250704\n A2594/21 NOTAMN\nQ) KZBW/QPDCH/I/NBO/A/000/999/\nA) KBOS\nB) 2112011446\nC) 2207021446 EST\nE) \nLOGAN THREE DEPARTURE...\nTAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n500FT PER NM TO 1300.\nALL OTHER DATA REMAINS AS PUBLISHED.\n LOGAN THREE DEPARTURE... TAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500FT PER NM TO 1300. ALL OTHER DATA REMAINS AS PUBLISHED. 01 DEC 14:46 2021 UNTIL 02 JUL 14:46 2022 ESTIMATED. CREATED: 01 DEC 14:50 2021\n NOTAMN\n QPDCH\n \n \n I\n KBOS\n A1349/21\n 1\n BOS\n FDC\n 1/7513\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202110251713\n 202110251900\n 202203242359\n 202110251714\n 202201250704\n A1349/21 NOTAMN\nQ) KZBW/QXXXX////000/999/\nA) KBOS\nB) 2110251900\nC) 2203242359\nE) SPECIAL RNAV VISUAL RWY 04L ORIG...PROC NOT AUTH.\n SPECIAL RNAV VISUAL RWY 04L ORIG...PROC NOT AUTH. 25 OCT 19:00 2021 UNTIL 24 MAR 23:59 2022. CREATED: 25 OCT 17:13 2021\n NOTAMN\n QXXXX\n \n \n I\n KBOS\n A0637/21\n 1\n BOS\n FDC\n 1/0299\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202110071229\n 202110071229\n 202110071229\n 202201250704\n A0637/21 NOTAMN\nQ) KZBW/QPDCH/I/NBO/A/000/999/\nA) KBOS\nB) 2110071229\nC) 2207021228 EST\nE) WYLYY FOUR DEPARTURE (RNAV)...\nTAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n500 FT PER NM TO 2300.\nALL OTHER DATA REMAINS AS PUBLISHED.\n WYLYY FOUR DEPARTURE (RNAV)... TAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500 FT PER NM TO 2300. ALL OTHER DATA REMAINS AS PUBLISHED. 07 OCT 12:29 2021 UNTIL 02 JUL 12:28 2022 ESTIMATED. CREATED: 07 OCT 12:29 2021\n NOTAMN\n QPDCH\n \n \n I\n KBOS\n A9586/20\n 1\n BOS\n FDC\n 0/3388\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202011031446\n 202011031400\n 202011031446\n 202201250704\n A9586/20 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2011031400\nC) 2211031400 EST\nE) \nILS OR LOC RWY 4R, AMDT 11...\nADD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R..\nADD NOTE: CIRCLING NA TO RWY 14.\n ILS OR LOC RWY 4R, AMDT 11... ADD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R.. ADD NOTE: CIRCLING NA TO RWY 14. 03 NOV 14:00 2020 UNTIL 03 NOV 14:00 2022 ESTIMATED. CREATED: 03 NOV 14:46 2020\n NOTAMN\n QPICH\n \n \n I\n KBOS\n A9587/20\n 1\n BOS\n FDC\n 0/3391\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202011031446\n 202011031400\n 202011031446\n 202201250704\n A9587/20 NOTAMN\nQ) KZBW/QPICH/I/NBO/A/000/999/\nA) KBOS\nB) 2011031400\nC) 2211031400 EST\nE) \nILS RWY 4R (SA CAT I), AMDT 11 ...\nDISREGARD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R.\nDISREGARD NOTE: CIRCLING NA TO RWY 14.\n ILS RWY 4R (SA CAT I), AMDT 11 ... DISREGARD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R. DISREGARD NOTE: CIRCLING NA TO RWY 14. 03 NOV 14:00 2020 UNTIL 03 NOV 14:00 2022 ESTIMATED. CREATED: 03 NOV 14:46 2020\n NOTAMN\n QPICH\n \n \n F\n FDC\n 2/6473\n 1\n BOS\n KBOS\n A0870/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6473 BOS ODP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nTAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15...\nTAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. DEPARTURE PROCEDURE: RWY 4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. RWY 9, CLIMB ON HEADING 092 TO 600 BEFORE TURNING LEFT. RWY 14, CLIMB ON HEADING 141 TO 700 BEFORE TURNING RIGHT. RWY 15L/R, CLIMB ON HEADING 150 TO 600 BEFORE TURNING RIGHT. RWY 22L, CLIMB ON HEADING 215 TO 900 BEFORE TURNING RIGHT. RWY 22R, CLIMB ON HEADING 215 TO 1000 BEFORE TURNING RIGHT. RWY 33L, CLIMB ON HEADING 330 TO 900 BEFORE TURNING LEFT. ADD TAKEOFF OBSTACLE NOTE: RWY 14, TEMPORARY CRANE 445FT FROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL (2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF RWY 14 (2019-ANE-1262-OE). \n TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST\n ODP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15... TAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. DEPARTURE PROCEDURE: RWY 4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. RWY 9, CLIMB ON HEADING 092 TO 600 BEFORE TURNING LEFT. RWY 14, CLIMB ON HEADING 141 TO 700 BEFORE TURNING RIGHT. RWY 15L/R, CLIMB ON HEADING 150 TO 600 BEFORE TURNING RIGHT. RWY 22L, CLIMB ON HEADING 215 TO 900 BEFORE TURNING RIGHT. RWY 22R, CLIMB ON HEADING 215 TO 1000 BEFORE TURNING RIGHT. RWY 33L, CLIMB ON HEADING 330 TO 900 BEFORE TURNING LEFT. ADD TAKEOFF OBSTACLE NOTE: RWY 14, TEMPORARY CRANE 445FT FROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL (2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF RWY 14 (2019-ANE-1262-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n \n \n F\n FDC\n 2/6474\n 1\n BOS\n KBOS\n A0871/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6474 BOS SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nBLZZR FIVE DEPARTURE (RNAV)...\nBRUWN SIX DEPARTURE (RNAV)...\nCELTK SIX DEPARTURE (RNAV)...\nHYLND SIX DEPARTURE (RNAV)...\nLBSTA SEVEN DEPARTURE (RNAV)...\nLOGAN THREE DEPARTURE...\nPATSS SIX DEPARTURE (RNAV)...\nREVSS FIVE DEPARTURE (RNAV)...\nSSOXS SIX DEPARTURE (RNAV)...\nWYLYY FOUR DEPARTURE (RNAV)...\nTAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST\n SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. BLZZR FIVE DEPARTURE (RNAV)... BRUWN SIX DEPARTURE (RNAV)... CELTK SIX DEPARTURE (RNAV)... HYLND SIX DEPARTURE (RNAV)... LBSTA SEVEN DEPARTURE (RNAV)... LOGAN THREE DEPARTURE... PATSS SIX DEPARTURE (RNAV)... REVSS FIVE DEPARTURE (RNAV)... SSOXS SIX DEPARTURE (RNAV)... WYLYY FOUR DEPARTURE (RNAV)... TAKE-OFF MINIMUMS: RWY 27, 1000-2-1/2. TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n \n \n F\n FDC\n 2/6475\n 1\n BOS\n KBOS\n A0872/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6475 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nILS OR LOC RWY 27, AMDT 3...\nS-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8. S-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE).\n2201211228-2203161228EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. ILS OR LOC RWY 27, AMDT 3... S-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8. S-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 2/6476\n 1\n BOS\n KBOS\n A0873/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6476 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nRNAV (GPS) RWY 27, AMDT 1...\nLNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL CATS, VISIBILITY CATS C/D 2. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE).\n2201211228-2203161228EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. RNAV (GPS) RWY 27, AMDT 1... LNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL CATS, VISIBILITY CATS C/D 2. CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 1.98NM WEST OF RWY 9 (2021-ANE-7562-OE). 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 2/6477\n 1\n BOS\n KBOS\n A0874/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6477 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nILS OR LOC RWY 15R, AMDT 2A...\nILS OR LOC RWY 22L, AMDT 8D...\nILS OR LOC RWY 33L, AMDT 5F...\nILS OR LOC RWY 4R, AMDT 11...\nRNAV (GPS) RWY 15R, AMDT 2...\nRNAV (GPS) RWY 22L, AMDT 1D...\nRNAV (GPS) RWY 32, ORIG-G...\nRNAV (GPS) RWY 33L, AMDT 2D...\nRNAV (GPS) RWY 4R, AMDT 3...\nVOR-A, AMDT 1C...\nCIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS AIRPORT (2021-ANE-7562-OE).\n2201211228-2203161228EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. ILS OR LOC RWY 15R, AMDT 2A... ILS OR LOC RWY 22L, AMDT 8D... ILS OR LOC RWY 33L, AMDT 5F... ILS OR LOC RWY 4R, AMDT 11... RNAV (GPS) RWY 15R, AMDT 2... RNAV (GPS) RWY 22L, AMDT 1D... RNAV (GPS) RWY 32, ORIG-G... RNAV (GPS) RWY 33L, AMDT 2D... RNAV (GPS) RWY 4R, AMDT 3... VOR-A, AMDT 1C... CIRCLING CAT B MDA 1240/ HAA 1221. NOTE: CIRCLING RWY 9 NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF RWY 9 (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS AIRPORT (2021-ANE-7562-OE). 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 2/6478\n 1\n BOS\n KBOS\n A0875/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201211229\n 202201211228\n 202203161228\n 202201211231\n 202201250704\n !FDC 2/6478 BOS ODP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nDIVERSE VECTOR AREA (RADAR VECTORS) ORIG ...\nRWY 14, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. RWY 22L, REQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. RWY 22R, DEPARTURE NA. RWY 33L, REQUIRES MINIMUM CLIMB OF 437 FT PER NM TO 1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF RWY 9, 427FT AGL/ 440FT MSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS AIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST\n ODP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. DIVERSE VECTOR AREA (RADAR VECTORS) ORIG ... RWY 14, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. RWY 22L, REQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. RWY 22R, DEPARTURE NA. RWY 33L, REQUIRES MINIMUM CLIMB OF 437 FT PER NM TO 1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF RWY 9, 427FT AGL/ 440FT MSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS AIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA REMAINS AS PUBLISHED. 2201211228-2203161228EST. 21 JAN 12:28 2022 UNTIL 16 MAR 12:28 2022 ESTIMATED. CREATED: 21 JAN 12:29 2022\n NOTAMN\n QXXXX\n \n \n F\n FDC\n 2/3748\n 1\n BOS\n KBOS\n A0689/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201130505\n 202201190500\n 202401190504\n 202201130518\n 202201250704\n !FDC 2/3748 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nILS RWY 04R (SA CAT I), AMDT 11 ...\nILS RWY 33L (SA CAT I), AMDT 5F ...\nILS RWY 04R (CAT II - III), AMDT 11 ...\nILS RWY 33L (CAT II - III), AMDT 5F ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190504EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. ILS RWY 04R (SA CAT I), AMDT 11 ... ILS RWY 33L (SA CAT I), AMDT 5F ... ILS RWY 04R (CAT II - III), AMDT 11 ... ILS RWY 33L (CAT II - III), AMDT 5F ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190504EST. 19 JAN 05:00 2022 UNTIL 19 JAN 05:04 2024 ESTIMATED. CREATED: 13 JAN 05:05 2022\n NOTAMN\n QXXXX\n \n \n F\n FDC\n 1/3711\n 1\n BOS\n KBOS\n A2594/21\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202112011447\n 202112011446\n 202207021446\n 202112011451\n 202201250704\n !FDC 1/3711 BOS SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nLOGAN THREE DEPARTURE...\nTAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500FT PER NM TO 1300.\nALL OTHER DATA REMAINS AS PUBLISHED. 2112011446-2207021446EST\n SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. LOGAN THREE DEPARTURE... TAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500FT PER NM TO 1300. ALL OTHER DATA REMAINS AS PUBLISHED. 2112011446-2207021446EST. 01 DEC 14:46 2021 UNTIL 02 JUL 14:46 2022 ESTIMATED. CREATED: 01 DEC 14:47 2021\n NOTAMN\n \n \n F\n FDC\n 1/7513\n 1\n BOS\n KBOS\n A1349/21\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202110251712\n 202110251900\n 202203242359\n 202110251714\n 202201250704\n !FDC 1/7513 BOS SPECIAL EDWARD LAWERENCE LOGAN INTL. BOSTON, MA..\nSPECIAL RNAV VISUAL RWY 04L ORIG...PROC NOT AUTH.\n\n2110251900-2203242359\n SPECIAL EDWARD LAWERENCE LOGAN INTL. BOSTON, MA.. SPECIAL RNAV VISUAL RWY 04L ORIG...PROC NOT AUTH. 25 OCT 19:00 2021 UNTIL 24 MAR 23:59 2022. CREATED: 25 OCT 17:12 2021\n QXXXX\n \n \n F\n FDC\n 1/0299\n 1\n BOS\n KBOS\n A0637/21\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202110071229\n 202110071229\n 202207021228\n 202110071229\n 202201250704\n !FDC 1/0299 BOS SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nWYLYY FOUR DEPARTURE (RNAV)...\nTAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500 FT PER NM TO 2300.\nALL OTHER DATA REMAINS AS PUBLISHED. 2110071229-2207021228EST\n SID GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. WYLYY FOUR DEPARTURE (RNAV)... TAKEOFF MINIMUMS: RWY 27, STANDARD WITH MINIMUM CLIMB GRADIENT OF 500 FT PER NM TO 2300. ALL OTHER DATA REMAINS AS PUBLISHED. 2110071229-2207021228EST. 07 OCT 12:29 2021 UNTIL 02 JUL 12:28 2022 ESTIMATED. CREATED: 07 OCT 12:29 2021\n NOTAMN\n \n \n F\n FDC\n 0/3388\n 1\n BOS\n KBOS\n A9586/20\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202011031401\n 202011031400\n 202211031400\n 202011031446\n 202201250704\n !FDC 0/3388 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nILS OR LOC RWY 4R, AMDT 11...\nADD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R..\nADD NOTE: CIRCLING NA TO RWY 14.\n2011031400-2211031400EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. ILS OR LOC RWY 4R, AMDT 11... ADD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R.. ADD NOTE: CIRCLING NA TO RWY 14. 2011031400-2211031400EST. 03 NOV 14:00 2020 UNTIL 03 NOV 14:00 2022 ESTIMATED. CREATED: 03 NOV 14:01 2020\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 0/3391\n 1\n BOS\n KBOS\n A9587/20\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202011031401\n 202011031400\n 202211031400\n 202011031446\n 202201250704\n !FDC 0/3391 BOS IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA.\nILS RWY 4R (SA CAT I), AMDT 11 ...\nDISREGARD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R.\nDISREGARD NOTE: CIRCLING NA TO RWY 14. 2011031400-2211031400EST\n IAP GENERAL EDWARD LAWRENCE LOGAN INTL, BOSTON, MA. ILS RWY 4R (SA CAT I), AMDT 11 ... DISREGARD NOTE: CIRCLING NA FOR CAT C/D WEST OF RWYS 4L AND 15R. DISREGARD NOTE: CIRCLING NA TO RWY 14. 2011031400-2211031400EST. 03 NOV 14:00 2020 UNTIL 03 NOV 14:00 2022 ESTIMATED. CREATED: 03 NOV 14:01 2020\n NOTAMN\n QXXXX\n \n \n D\n BOS\n 01/736\n 1\n BOS\n KBOS\n A1200/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271247\n 202201271247\n 202201272100\n 202201271254\n 202201271258\n !BOS 01/736 BOS OBST CRANE (ASN 2019-ANE-1575-NRA) 422154N0710111W (0.6NM W BOS) 233FT (220FT AGL) FLAGGED AND LGTD 2201271247-2201272100\n OBST CRANE (ASN 2019-ANE-1575-NRA) 422154N0710111W (0.6NM W BOS) 233FT (220FT AGL) FLAGGED AND LGTD. 27 JAN 12:47 2022 UNTIL 27 JAN 21:00 2022. CREATED: 27 JAN 12:47 2022\n NOTAMN\n QOLAS\n \n \n D\n BOS\n 01/735\n 1\n BOS\n KBOS\n A1198/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201271205\n 202201271205\n 202201272100\n 202201271219\n 202201271224\n !BOS 01/735 BOS OBST CRANE (ASN 2021-ANE-1111-NRA) 422212N0710121W (0.8NM WNW BOS) 262FT (250FT AGL) FLAGGED AND LGTD 2201271205-2201272100\n OBST CRANE (ASN 2021-ANE-1111-NRA) 422212N0710121W (0.8NM WNW BOS) 262FT (250FT AGL) FLAGGED AND LGTD. 27 JAN 12:05 2022 UNTIL 27 JAN 21:00 2022. CREATED: 27 JAN 12:05 2022\n NOTAMN\n QOLAS\n \n \n D\n BOS\n 01/725\n 1\n BOS\n KBOS\n A1178/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201270010\n 202201270010\n 202202222359\n 202201270011\n 202201270016\n !BOS 01/725 BOS RWY 14/32 CLSD EXC TAX 30 MIN PPR 131.1 2201270010-2202222359\n RWY 14/32 CLSD EXC TAX 30 MIN PPR 131.1. 27 JAN 00:10 2022 UNTIL 22 FEB 23:59 2022. CREATED: 27 JAN 00:10 2022\n NOTAMN\n QMRLC\n \n \n D\n BOS\n 01/716\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201260528\n 202201260528\n 202202082359\n 202201260528\n 202201260532\n !BOS 01/716 BOS TWY A1 TWY DIRECTION SIGN EAST SIDE FOR TWY A MISSING 2201260528-2202082359\n TWY A1 TWY DIRECTION SIGN EAST SIDE FOR TWY A MISSING. 26 JAN 05:28 2022 UNTIL 08 FEB 23:59 2022. CREATED: 26 JAN 05:28 2022\n NOTAMN\n \n \n D\n BOS\n 01/715\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201260527\n 202201260527\n 202202082359\n 202201260527\n 202201260532\n !BOS 01/715 BOS TWY Q HLDG PSN SIGN FOR RWY 15R/33L LGT U/S 2201260527-2202082359\n TWY Q HLDG PSN SIGN FOR RWY 15R/33L LGT U/S. 26 JAN 05:27 2022 UNTIL 08 FEB 23:59 2022. CREATED: 26 JAN 05:27 2022\n NOTAMN\n QMMXX\n \n \n D\n BOS\n 01/714\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201260527\n 202201260527\n 202202082359\n 202201260527\n 202201260532\n !BOS 01/714 BOS RWY 22R 6000FT DIST REMAINING SIGN LEFT SIDE LGT U/S 2201260527-2202082359\n RWY 22R 6000FT DIST REMAINING SIGN LEFT SIDE LGT U/S. 26 JAN 05:27 2022 UNTIL 08 FEB 23:59 2022. CREATED: 26 JAN 05:27 2022\n NOTAMN\n \n \n D\n BOS\n 01/713\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201260526\n 202201260526\n 202202082359\n 202201260526\n 202201260530\n !BOS 01/713 BOS RWY 04L 2000FT DIST REMAINING SIGN RIGHT SIDE LGT U/S 2201260526-2202082359\n RWY 04L 2000FT DIST REMAINING SIGN RIGHT SIDE LGT U/S. 26 JAN 05:26 2022 UNTIL 08 FEB 23:59 2022. CREATED: 26 JAN 05:26 2022\n NOTAMN\n \n \n D\n BOS\n 01/519\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201190443\n 202201190442\n 202202030442\n 202201190443\n 202201250704\n !BOS 01/519 BOS OBST TOWER LGT (ASR UNKNOWN) 421735.59N0713401.40W (3.2NM E BOS) 202FT (202FT AGL) U/S 2201190442-2202030442\n OBST TOWER LGT (ASR UNKNOWN) 421735.59N0713401.40W (3.2NM E BOS) 202FT (202FT AGL) U/S. 19 JAN 04:42 2022 UNTIL 03 FEB 04:42 2022. CREATED: 19 JAN 04:43 2022\n NOTAMN\n \n \n D\n BOS\n 01/437\n 1\n BOS\n KBOS\n A0692/22\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202201130907\n 202201190501\n 202401190501\n 202201130921\n 202201250704\n !BOS 01/437 BOS AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190501-2401190501\n AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 09:07 2022\n NOTAMN\n \n \n D\n BOS\n 03/082\n 1\n BOS\n KBOS\n GENERAL EDWARD LAWRENCE LOGAN INTL\n 1\n 202003051645\n 202003051645\n 202204012359\n 202003051645\n 202201250704\n !BOS 03/082 BOS OBST STRUCTURE (ASN UNKNOWN) 422209N0710446W (2.6NM W BOS) UNKNOWN (302FT AGL) NOT LGTD 2003051645-2204012359\n OBST STRUCTURE (ASN UNKNOWN) 422209N0710446W (2.6NM W BOS) UNKNOWN (302FT AGL) NOT LGTD. 05 MAR 16:45 2020 UNTIL 01 APR 23:59 2022. CREATED: 05 MAR 16:45 2020\n NOTAMN\n \n \n I\n KHPN\n A0334/22\n 1\n HPN\n HPN\n 01/189\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201271407\n 202201271400\n 202201272030\n 202201271407\n 202201271412\n A0334/22 NOTAMN\nQ) KZNY/QFWAU////000/999/4104N07342W005\nA) KHPN\nB) 2201271400\nC) 2201272030\nE) MBST/WS DETECTION SYSTEM NOT AVBL\n MBST/WS DETECTION SYSTEM NOT AVBL. 27 JAN 14:00 2022 UNTIL 27 JAN 20:30 2022. CREATED: 27 JAN 14:07 2022\n NOTAMN\n QFWAU\n \n \n I\n KHPN\n A0333/22\n 1\n HPN\n HPN\n 01/188\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201271405\n 202201271400\n 202201272030\n 202201271405\n 202201271412\n A0333/22 NOTAMN\nQ) KZNY/QCTAS////000/999/4104N07342W005\nA) KHPN\nB) 2201271400\nC) 2201272030\nE) TAR/SSR U/S\n TAR/SSR U/S. 27 JAN 14:00 2022 UNTIL 27 JAN 20:30 2022. CREATED: 27 JAN 14:05 2022\n NOTAMN\n QCTAS\n \n \n I\n KHPN\n A0200/22\n 1\n HPN\n HPN\n 01/111\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201131258\n 202201190501\n 202401190501\n 202201131259\n 202201250704\n A0200/22 NOTAMN\nQ) KZNY/QFAXX////000/999/4104N07342W005\nA) KHPN\nB) 2201190501\nC) 2401190501\nE) AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\nENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\nALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT\nA/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING\nAPPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\nINTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13\nF) SFC\nG) UNL\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. SFC - UNL, 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 12:58 2022\n NOTAMN\n QFAXX\n \n \n I\n KHPN\n A0198/22\n 1\n HPN\n FDC\n 2/3761\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201130520\n 202201190500\n 202201130520\n 202201250704\n A0198/22 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KHPN\nB) 2201190500\nC) 2401190504 EST\nE) ILS RWY 16 (SA CAT I - II), AMDT 25C ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\nCOMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\nDIRECTIVES 2021-23-12, 2021-23-13\n ILS RWY 16 (SA CAT I - II), AMDT 25C ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:00 2022 UNTIL 19 JAN 05:04 2024 ESTIMATED. CREATED: 13 JAN 05:20 2022\n NOTAMN\n QPICH\n \n \n I\n KHPN\n A0004/22\n 1\n HPN\n HPN\n 01/003\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201011146\n 202201020000\n 202202021500\n 202201011147\n 202201250704\n A0004/22 NOTAMN\nQ) KZNY/QMXLC/IV/BO/A/000/999/4104N07342W005\nA) KHPN\nB) 2201020000\nC) 2202021500\nD) DLY 0000-1500\nE) TWY K BTN APCH END RWY 29 AND TWY A CLSD\n TWY K BTN APCH END RWY 29 AND TWY A CLSD. DLY 0000-1500, 02 JAN 00:00 2022 UNTIL 02 FEB 15:00 2022. CREATED: 01 JAN 11:46 2022\n NOTAMN\n QMXLC\n \n \n I\n KHPN\n A1507/21\n 1\n HPN\n HPN\n 11/013\n KHPN\n WESTCHESTER COUNTY\n 1\n 202111071345\n 202111080400\n 202203131100\n 202111071345\n 202201250704\n A1507/21 NOTAMN\nQ) KZNY/QITAU////000/999/4104N07342W005\nA) KHPN\nB) 2111080400\nC) 2203131100\nD) DLY 0400-1100\nE) ILS RWY 16 SPECIAL AUTH CAT II NA\n ILS RWY 16 SPECIAL AUTH CAT II NA. DLY 0400-1100, 08 NOV 04:00 2021 UNTIL 13 MAR 11:00 2022. CREATED: 07 NOV 13:45 2021\n NOTAMN\n QITAU\n \n \n I\n KHPN\n A1341/21\n 1\n HPN\n FDC\n 1/1869\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109221455\n 202109221454\n 202109221456\n 202201250704\n A1341/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KHPN\nB) 2109221454\nC) 2205041454 EST\nE) WESTCHESTER SEVEN DEPARTURE...\nCOATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\nEQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\nSAX VOR OUT OF SERVICE.\n WESTCHESTER SEVEN DEPARTURE... COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, SAX VOR OUT OF SERVICE. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:55 2021\n NOTAMN\n QPDCH\n \n \n I\n KHPN\n A1342/21\n 1\n HPN\n FDC\n 1/1872\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109221455\n 202109221454\n 202109221456\n 202201250704\n A1342/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KHPN\nB) 2109221454\nC) 2205041454 EST\nE) \nPROP ONE DEPARTURE...\nCOATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\nEQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,,\nSAX VOR OUT OF SERVICE.\n PROP ONE DEPARTURE... COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,, SAX VOR OUT OF SERVICE. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:55 2021\n NOTAMN\n QPDCH\n \n \n I\n KHPN\n A1334/21\n 1\n HPN\n FDC\n 1/8956\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109151919\n 202109151918\n 202109151919\n 202201250704\n A1334/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KHPN\nB) 2109151918\nC) 2309151918 EST\nE) WESTCHESTER SEVEN DEPARTURE...\nDISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057.\nCMK VOR/DME R-057 UNUSABLE.\n WESTCHESTER SEVEN DEPARTURE... DISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057. CMK VOR/DME R-057 UNUSABLE. 15 SEP 19:18 2021 UNTIL 15 SEP 19:18 2023 ESTIMATED. CREATED: 15 SEP 19:19 2021\n NOTAMN\n QPDCH\n \n \n I\n KHPN\n A1139/21\n 1\n HPN\n FDC\n 1/8255\n KHPN\n WESTCHESTER COUNTY\n 1\n 202107131225\n 202107131200\n 202307131200\n 202107131226\n 202201250704\n A1139/21 NOTAMN\nQ) KZNY/QPACH/I/NBO/A/000/999/\nA) KHPN\nB) 2107131200\nC) 2307131200\nE) STAR NOBBI FIVE ARRIVAL ALB R-238 UNUSABLE. SUITABLE RNAV/GPS REQUIRED\n STAR NOBBI FIVE ARRIVAL ALB R-238 UNUSABLE. SUITABLE RNAV/GPS REQUIRED. 13 JUL 12:00 2021 UNTIL 13 JUL 12:00 2023. CREATED: 13 JUL 12:25 2021\n NOTAMN\n QPACH\n \n \n I\n KHPN\n A0559/21\n 1\n HPN\n FDC\n 1/7388\n KHPN\n WESTCHESTER COUNTY\n 1\n 202102241741\n 202102241736\n 202102241741\n 202201250704\n A0559/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KHPN\nB) 2102241736\nC) 2302251736 EST\nE) WESTCHESTER SEVEN DEPARTURE...\nDIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\nSUITABLE RNAV SYSTEM WITH GPS,\nCOL VOR OUT OF SERVICE.\n WESTCHESTER SEVEN DEPARTURE... DIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, COL VOR OUT OF SERVICE. 24 FEB 17:36 2021 UNTIL 25 FEB 17:36 2023 ESTIMATED. CREATED: 24 FEB 17:41 2021\n NOTAMN\n QPDCH\n \n \n I\n KHPN\n A1085/20\n 1\n HPN\n FDC\n 0/1750\n KHPN\n WESTCHESTER COUNTY\n 1\n 202009011545\n 202009011544\n 202009011549\n 202201250704\n A1085/20 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KHPN\nB) 2009011544\nC) 2209011544 EST\nE) RNAV (RNP) Z RWY 16, ORIG-C...\nRNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513.\n RNAV (RNP) Z RWY 16, ORIG-C... RNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513. 01 SEP 15:44 2020 UNTIL 01 SEP 15:44 2022 ESTIMATED. CREATED: 01 SEP 15:45 2020\n NOTAMN\n QPICH\n \n \n F\n FDC\n 2/3761\n 1\n HPN\n KHPN\n A0198/22\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201130505\n 202201190500\n 202401190504\n 202201130520\n 202201250704\n !FDC 2/3761 HPN IAP WESTCHESTER COUNTY, WHITE PLAINS, NY.\nILS RWY 16 (SA CAT I - II), AMDT 25C ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190504EST\n IAP WESTCHESTER COUNTY, WHITE PLAINS, NY. ILS RWY 16 (SA CAT I - II), AMDT 25C ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190504EST. 19 JAN 05:00 2022 UNTIL 19 JAN 05:04 2024 ESTIMATED. CREATED: 13 JAN 05:05 2022\n NOTAMN\n QXXXX\n \n \n F\n FDC\n 1/1869\n 1\n HPN\n KHPN\n A1341/21\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109221454\n 202109221454\n 202205041454\n 202109221456\n 202201250704\n !FDC 1/1869 HPN SID WESTCHESTER COUNTY, WHITE PLAINS, NY.\nWESTCHESTER SEVEN DEPARTURE...\nCOATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\nSAX VOR OUT OF SERVICE. 2109221454-2205041454EST\n SID WESTCHESTER COUNTY, WHITE PLAINS, NY. WESTCHESTER SEVEN DEPARTURE... COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, SAX VOR OUT OF SERVICE. 2109221454-2205041454EST. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:54 2021\n NOTAMN\n QPDCH\n \n \n F\n FDC\n 1/1872\n 1\n HPN\n KHPN\n A1342/21\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109221454\n 202109221454\n 202205041454\n 202109221456\n 202201250704\n !FDC 1/1872 HPN SID WESTCHESTER COUNTY, WHITE PLAINS, NY.\nPROP ONE DEPARTURE...\nCOATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,,\nSAX VOR OUT OF SERVICE. 2109221454-2205041454EST\n SID WESTCHESTER COUNTY, WHITE PLAINS, NY. PROP ONE DEPARTURE... COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,, SAX VOR OUT OF SERVICE. 2109221454-2205041454EST. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:54 2021\n NOTAMN\n QPDCH\n \n \n F\n FDC\n 1/8956\n 1\n HPN\n KHPN\n A1334/21\n KHPN\n WESTCHESTER COUNTY\n 1\n 202109151918\n 202109151918\n 202309151918\n 202109151919\n 202201250704\n !FDC 1/8956 HPN SID WESTCHESTER COUNTY, WHITE PLAINS, NY.\nWESTCHESTER SEVEN DEPARTURE...\nDISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057.\nCMK VOR/DME R-057 UNUSABLE. 2109151918-2309151918EST\n SID WESTCHESTER COUNTY, WHITE PLAINS, NY. WESTCHESTER SEVEN DEPARTURE... DISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057. CMK VOR/DME R-057 UNUSABLE. 2109151918-2309151918EST. 15 SEP 19:18 2021 UNTIL 15 SEP 19:18 2023 ESTIMATED. CREATED: 15 SEP 19:18 2021\n NOTAMN\n QPDAO\n \n \n F\n FDC\n 1/7388\n 1\n HPN\n KHPN\n A0559/21\n KHPN\n WESTCHESTER COUNTY\n 1\n 202102241736\n 202102241736\n 202302251736\n 202102241741\n 202201250704\n !FDC 1/7388 HPN SID WESTCHESTER COUNTY, White Plains, NY.\nWESTCHESTER SEVEN DEPARTURE...\nDIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\nCOL VOR OUT OF SERVICE. 2102241736-2302251736EST\n SID WESTCHESTER COUNTY, WHITE PLAINS, NY. WESTCHESTER SEVEN DEPARTURE... DIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, COL VOR OUT OF SERVICE. 2102241736-2302251736EST. 24 FEB 17:36 2021 UNTIL 25 FEB 17:36 2023 ESTIMATED. CREATED: 24 FEB 17:36 2021\n NOTAMN\n \n \n F\n FDC\n 0/1750\n 1\n HPN\n KHPN\n A1085/20\n KHPN\n WESTCHESTER COUNTY\n 1\n 202009011545\n 202009011544\n 202209011544\n 202009011549\n 202201250704\n !FDC 0/1750 HPN IAP WESTCHESTER COUNTY, WHITE PLAINS, NY.\nRNAV (RNP) Z RWY 16, ORIG-C...\nRNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513.\n2009011544-2209011544EST\n IAP WESTCHESTER COUNTY, WHITE PLAINS, NY. RNAV (RNP) Z RWY 16, ORIG-C... RNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513. 2009011544-2209011544EST. 01 SEP 15:44 2020 UNTIL 01 SEP 15:44 2022 ESTIMATED. CREATED: 01 SEP 15:45 2020\n NOTAMN\n QPIXX\n \n \n D\n HPN\n 01/189\n 1\n HPN\n KHPN\n A0334/22\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201271352\n 202201271400\n 202201272030\n 202201271407\n 202201271412\n !HPN 01/189 HPN SVC MBST/WS DETECTION SYSTEM NOT AVBL 2201271400-2201272030\n SVC MBST/WS DETECTION SYSTEM NOT AVBL. 27 JAN 14:00 2022 UNTIL 27 JAN 20:30 2022. CREATED: 27 JAN 13:52 2022\n NOTAMN\n QFMXX\n \n \n D\n HPN\n 01/188\n 1\n HPN\n KHPN\n A0333/22\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201271350\n 202201271400\n 202201272030\n 202201271405\n 202201271412\n !HPN 01/188 HPN SVC TAR/SSR U/S 2201271400-2201272030\n SVC TAR/SSR U/S. 27 JAN 14:00 2022 UNTIL 27 JAN 20:30 2022. CREATED: 27 JAN 13:50 2022\n NOTAMN\n QCTAS\n \n \n D\n HPN\n 01/187\n 1\n HPN\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201271052\n 202201271052\n 202202111051\n 202201271052\n 202201271056\n !HPN 01/187 HPN OBST TOWER LGT (ASR 1002472) 410449.00N0734824.00W (4.5NM W HPN) 870.1FT (490.2FT AGL) U/S 2201271052-2202111051\n OBST TOWER LGT (ASR 1002472) 410449.00N0734824.00W (4.5NM W HPN) 870.1FT (490.2FT AGL) U/S. 27 JAN 10:52 2022 UNTIL 11 FEB 10:51 2022. CREATED: 27 JAN 10:52 2022\n NOTAMN\n QOLAS\n \n \n D\n HPN\n 01/113\n 1\n HPN\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201150050\n 202201150050\n 202201300050\n 202201150050\n 202201250704\n !HPN 01/113 HPN OBST TOWER LGT (ASR 1046319) 410312.40N0733208.30W (7.7NM E HPN) 263.1FT (251.0FT AGL) U/S 2201150050-2201300050\n OBST TOWER LGT (ASR 1046319) 410312.40N0733208.30W (7.7NM E HPN) 263.1FT (251.0FT AGL) U/S. 15 JAN 00:50 2022 UNTIL 30 JAN 00:50 2022. CREATED: 15 JAN 00:50 2022\n NOTAMN\n QOLAS\n \n \n D\n HPN\n 01/111\n 1\n HPN\n KHPN\n A0200/22\n KHPN\n WESTCHESTER COUNTY\n 1\n 202201131252\n 202201190501\n 202401190501\n 202201131259\n 202201250704\n !HPN 01/111 HPN AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190501-2401190501\n AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 12:52 2022\n NOTAMN\n \n \n D\n HPN\n 11/013\n 1\n HPN\n KHPN\n A1507/21\n KHPN\n WESTCHESTER COUNTY\n 1\n 202111071338\n 202111080400\n 202203131100\n 202111071345\n 202201250704\n !HPN 11/013 HPN NAV ILS RWY 16 SPECIAL AUTH CAT II NA DLY 0400-1100 2111080400-2203131100\n NAV ILS RWY 16 SPECIAL AUTH CAT II NA DLY 0400-1100. 08 NOV 04:00 2021 UNTIL 13 MAR 11:00 2022. CREATED: 07 NOV 13:38 2021\n NOTAMN\n \n \n D\n HPN\n 11/012\n 1\n HPN\n KHPN\n WESTCHESTER COUNTY\n 1\n 202111071336\n 202111080400\n 202203131100\n 202111071336\n 202201250704\n !HPN 11/012 HPN NAV ILS RWY 16 NOT MNT DLY 0400-1100 2111080400-2203131100\n NAV ILS RWY 16 NOT MNT DLY 0400-1100. 08 NOV 04:00 2021 UNTIL 13 MAR 11:00 2022. CREATED: 07 NOV 13:36 2021\n NOTAMN\n \n \n D\n HPN\n 11/011\n 1\n HPN\n KHPN\n WESTCHESTER COUNTY\n 1\n 202111071334\n 202111080400\n 202203131100\n 202111071334\n 202201250704\n !HPN 11/011 HPN NAV ILS RWY 34 NOT MNT DLY 0400-1100 2111080400-2203131100\n NAV ILS RWY 34 NOT MNT DLY 0400-1100. 08 NOV 04:00 2021 UNTIL 13 MAR 11:00 2022. CREATED: 07 NOV 13:34 2021\n NOTAMN\n \n \n I\n KJFK\n A0918/22\n 1\n JFK\n JFK\n 01/535\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271735\n 202201271729\n 202201271930\n 202201271735\n 202201271740\n A0918/22 NOTAMN\nQ) KZNY/QIGAS////000/999/4038N07347W005\nA) KJFK\nB) 2201271729\nC) 2201271930\nE) ILS RWY 31L GP U/S\n ILS RWY 31L GP U/S. 27 JAN 17:29 2022 UNTIL 27 JAN 19:30 2022. CREATED: 27 JAN 17:35 2022\n NOTAMN\n QIGAS\n \n \n I\n KJFK\n A0916/22\n 1\n JFK\n JFK\n 01/534\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271645\n 202201271636\n 202201272300\n 202201271646\n 202201271652\n A0916/22 NOTAMN\nQ) KZNY/QMXXX////000/999/4038N07347W005\nA) KJFK\nB) 2201271636\nC) 2201272300\nE) TWY B BTN TWY NA AND TWY NB CLSD TO ACFT WINGSPAN MORE THAN\n214FT\n TWY B BTN TWY NA AND TWY NB CLSD TO ACFT WINGSPAN MORE THAN 214FT. 27 JAN 16:36 2022 UNTIL 27 JAN 23:00 2022. CREATED: 27 JAN 16:45 2022\n NOTAMN\n QMXXX\n \n \n I\n KJFK\n A0915/22\n 1\n JFK\n JFK\n 01/533\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271643\n 202201271635\n 202201272300\n 202201271643\n 202201271648\n A0915/22 NOTAMN\nQ) KZNY/QMXLC////000/999/4038N07347W005\nA) KJFK\nB) 2201271635\nC) 2201272300\nE) TWY A BTN TWY NA AND TWY NB CLSD\n TWY A BTN TWY NA AND TWY NB CLSD. 27 JAN 16:35 2022 UNTIL 27 JAN 23:00 2022. CREATED: 27 JAN 16:43 2022\n NOTAMN\n QMXLC\n \n \n I\n KJFK\n A0912/22\n 1\n JFK\n JFK\n 01/532\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271629\n 202201271611\n 202201280400\n 202201271629\n 202201271636\n A0912/22 NOTAMN\nQ) KZNY/QMNLC////000/999/4038N07347W005\nA) KJFK\nB) 2201271611\nC) 2201280400\nE) GA TERMINAL RAMP HELIPAD CLSD\n GA TERMINAL RAMP HELIPAD CLSD. 27 JAN 16:11 2022 UNTIL 28 JAN 04:00 2022. CREATED: 27 JAN 16:29 2022\n NOTAMN\n QMNLC\n \n \n I\n KJFK\n A0894/22\n 1\n JFK\n JFK\n 01/518\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201262056\n 202201262050\n 202202141200\n 202201262057\n 202201262100\n A0894/22 NOTAMN\nQ) KZNY/QLBXX////000/999/4038N07347W005\nA) KJFK\nB) 2201262050\nC) 2202141200\nE) ABN ON CONS\n ABN ON CONS. 26 JAN 20:50 2022 UNTIL 14 FEB 12:00 2022. CREATED: 26 JAN 20:56 2022\n NOTAMN\n QLBXX\n \n \n I\n KJFK\n A0534/22\n 1\n JFK\n FDC\n 2/3766\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201130521\n 202201190500\n 202201131936\n 202201250704\n A0534/22 NOTAMN\nQ) KZNY/QPICH////000/999/\nA) KJFK\nB) 2201190500\nC) 2401190506 EST\nE) RNAV (RNP) RWY 13L, AMDT 3A...\nRNAV (RNP) RWY 13R, AMDT 3A...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\nCOMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\nDIRECTIVES 2021-23-12, 2021-23-13.\n RNAV (RNP) RWY 13L, AMDT 3A... RNAV (RNP) RWY 13R, AMDT 3A... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:00 2022 UNTIL 19 JAN 05:06 2024 ESTIMATED. CREATED: 13 JAN 05:21 2022\n NOTAMN\n QXXXX\n \n \n I\n KJFK\n A0555/22\n 1\n JFK\n FDC\n 2/4065\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201131922\n 202201181400\n 202204012200\n 202201131922\n 202201250704\n A0555/22 NOTAMN\nQ) KZNY/QPACH/I/NBO/A/000/999/\nA) KJFK\nB) 2201181400\nC) 2204012200\nE) STAR ROBER TWO ARRIVAL DME REQUIRED EXC FOR\nACFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, PVD VOR/DME\nOUT OF SERVICE.\n STAR ROBER TWO ARRIVAL DME REQUIRED EXC FOR ACFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, PVD VOR/DME OUT OF SERVICE. 18 JAN 14:00 2022 UNTIL 01 APR 22:00 2022. CREATED: 13 JAN 19:22 2022\n NOTAMN\n QPACH\n \n \n I\n KJFK\n A0550/22\n 1\n JFK\n JFK\n 01/330\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201131312\n 202201190501\n 202401190501\n 202201131312\n 202201250704\n A0550/22 NOTAMN\nQ) KZNY/QFAXX////000/999/4038N07347W005\nA) KJFK\nB) 2201190501\nC) 2401190501\nE) AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\nENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\nALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT\nA/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING\nAPPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\nINTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13\nF) SFC\nG) UNL\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. SFC - UNL, 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 13:12 2022\n NOTAMN\n QFAXX\n \n \n I\n KJFK\n A0533/22\n 1\n JFK\n FDC\n 2/3730\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201130512\n 202201190500\n 202201130513\n 202201250704\n A0533/22 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2201190500\nC) 2401190503 EST\nE) ILS RWY 13L (CAT II), AMDT 18C ...\nILS RWY 04R (CAT II - III), AMDT 30B ...\nILS RWY 22L (CAT II - III), AMDT 26 ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\nCOMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\nDIRECTIVES 2021-23-12, 2021-23-13\n ILS RWY 13L (CAT II), AMDT 18C ... ILS RWY 04R (CAT II - III), AMDT 30B ... ILS RWY 22L (CAT II - III), AMDT 26 ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:00 2022 UNTIL 19 JAN 05:03 2024 ESTIMATED. CREATED: 13 JAN 05:12 2022\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A0132/22\n 1\n JFK\n FDC\n 2/1216\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201051518\n 202201060000\n 202301052359\n 202201051519\n 202201250704\n A0132/22 NOTAMN\nQ) KZNY/QPACH/I/NBO/A/000/999/\nA) KJFK\nB) 2201060000\nC) 2301052359\nE) \nLENDY ARRIVAL...\nUNUSABLE BLW 4000FT\n LENDY ARRIVAL... UNUSABLE BLW 4000FT. 06 JAN 00:00 2022 UNTIL 05 JAN 23:59 2023. CREATED: 05 JAN 15:18 2022\n NOTAMN\n QPACH\n \n \n I\n KJFK\n A0131/22\n 1\n JFK\n JFK\n 01/077\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201051457\n 202201051446\n 202212312300\n 202201051458\n 202201250704\n A0131/22 NOTAMN\nQ) KZNY/QXXXX////000/999/4038N07347W005\nA) KJFK\nB) 2201051446\nC) 2212312300\nE) TWY C7 CLR BAR LGT AT TWY C U/S\n TWY C7 CLR BAR LGT AT TWY C U/S. 05 JAN 14:46 2022 UNTIL 31 DEC 23:00 2022. CREATED: 05 JAN 14:57 2022\n NOTAMN\n QXXXX\n \n \n I\n KJFK\n A0073/22\n 1\n JFK\n JFK\n 01/048\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201040411\n 202201040359\n 202301012300\n 202201040412\n 202201250704\n A0073/22 NOTAMN\nQ) KZNY/QMNLC////000/999/4038N07347W005\nA) KJFK\nB) 2201040359\nC) 2301012300\nE) BLDG 73 RAMP CLSD TO ACFT WINGSPAN MORE THAN 171FT EXC\nUNDER TOW\n BLDG 73 RAMP CLSD TO ACFT WINGSPAN MORE THAN 171FT EXC UNDER TOW. 04 JAN 03:59 2022 UNTIL 01 JAN 23:00 2023. CREATED: 04 JAN 04:11 2022\n NOTAMN\n QMNLC\n \n \n I\n KJFK\n A0048/22\n 1\n JFK\n FDC\n 2/0382\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201031729\n 202201031729\n 202201031730\n 202201250704\n A0048/22 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2201031729\nC) 2206151729 EST\nE) ILS OR LOC RWY 22R, AMDT 4...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C\n2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS\nDOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n(2021-AEA-9599-OE).\n ILS OR LOC RWY 22R, AMDT 4... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE). 03 JAN 17:29 2022 UNTIL 15 JUN 17:29 2022 ESTIMATED. CREATED: 03 JAN 17:29 2022\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A9279/21\n 1\n JFK\n JFK\n 12/289\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112292127\n 202112292126\n 202209010400\n 202112292127\n 202201250704\n A9279/21 NOTAMN\nQ) KZNY/QMXLC/IV/BO/A/000/999/4038N07347W005\nA) KJFK\nB) 2112292126\nC) 2209010400\nE) TWY Z BTN RWY 04L/22R AND TWY Y CLSD\n TWY Z BTN RWY 04L/22R AND TWY Y CLSD. 29 DEC 21:26 2021 UNTIL 01 SEP 04:00 2022. CREATED: 29 DEC 21:27 2021\n NOTAMN\n QMXLC\n \n \n I\n KJFK\n A9271/21\n 1\n JFK\n JFK\n 12/284\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112291724\n 202112291714\n 202204012000\n 202112291724\n 202201250704\n A9271/21 NOTAMN\nQ) KZNY/QOBCE/IV/M/AE/000/999/4038N07347W005\nA) KJFK\nB) 2112291714\nC) 2204012000\nE) CRANE (ASN 2021-AEA-959-NRA) 403857N0734722W (0.7NM NW\nJFK) 115FT (102FT AGL) FLAGGED\n CRANE (ASN 2021-AEA-959-NRA) 403857N0734722W (0.7NM NW JFK) 115FT (102FT AGL) FLAGGED. 29 DEC 17:14 2021 UNTIL 01 APR 20:00 2022. CREATED: 29 DEC 17:24 2021\n NOTAMN\n QOBCE\n \n \n I\n KJFK\n A9135/21\n 1\n JFK\n JFK\n 12/200\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112161343\n 202112181100\n 202112161343\n 202201250704\n A9135/21 NOTAMN\nQ) KZNY/QOBCE/IV/M/AE/000/999/4038N07347W005\nA) KJFK\nB) 2112181100\nC) 2205022300 EST\nE) CRANE (ASN 2021-AEA-9599-OE) 404214N0734745W (3.9NM NNW\nJFK) 508FT (450FT AGL) FLAGGED AND LGTD\n CRANE (ASN 2021-AEA-9599-OE) 404214N0734745W (3.9NM NNW JFK) 508FT (450FT AGL) FLAGGED AND LGTD. 18 DEC 11:00 2021 UNTIL 02 MAY 23:00 2022 ESTIMATED. CREATED: 16 DEC 13:43 2021\n NOTAMN\n QOBCE\n \n \n I\n KJFK\n A9122/21\n 1\n JFK\n FDC\n 1/2046\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112151759\n 202112151739\n 202112151800\n 202201250704\n A9122/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2112151739\nC) 2207271739 EST\nE) \nILS OR LOC RWY 4L, AMDT 11D...\nVOR RWY 4L, AMDT 1B...\nDME REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM\nWITH GPS,\nCMK VOR OUT OF SERVICE.\n ILS OR LOC RWY 4L, AMDT 11D... VOR RWY 4L, AMDT 1B... DME REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, CMK VOR OUT OF SERVICE. 15 DEC 17:39 2021 UNTIL 27 JUL 17:39 2022 ESTIMATED. CREATED: 15 DEC 17:59 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A8942/21\n 1\n JFK\n JFK\n 12/087\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112081312\n 202112081303\n 202112081313\n 202201250704\n A8942/21 NOTAMN\nQ) KZNY/QLIAS////000/999/4038N07347W005\nA) KJFK\nB) 2112081303\nC) 2211082111 EST\nE) RWY 04L RWY END ID LGT U/S\n RWY 04L RWY END ID LGT U/S. 08 DEC 13:03 2021 UNTIL 08 NOV 21:11 2022 ESTIMATED. CREATED: 08 DEC 13:12 2021\n NOTAMN\n QLIAS\n \n \n I\n KJFK\n A8813/21\n 1\n JFK\n HTO\n 12/002\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112011258\n 202112011255\n 202112011259\n 202201250704\n A8813/21 NOTAMN\nQ) KZNY/QNTXX////000/999/4055N07219W005\nA) KJFK\nB) 2112011255\nC) 2206012000 EST\nE) /HTO/ VORTAC 010-240 UNUSABLE\n /HTO/ VORTAC 010-240 UNUSABLE. 01 DEC 12:55 2021 UNTIL 01 JUN 20:00 2022 ESTIMATED. CREATED: 01 DEC 12:58 2021\n NOTAMN\n QNTXX\n \n \n I\n KJFK\n A8812/21\n 1\n JFK\n HTO\n 12/001\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112011256\n 202112011253\n 202112011256\n 202201250704\n A8812/21 NOTAMN\nQ) KZNY/QNTXX////000/999/4055N07219W005\nA) KJFK\nB) 2112011253\nC) 2206012000 EST\nE) /HTO/ VORTAC 270-332 UNUSABLE\n /HTO/ VORTAC 270-332 UNUSABLE. 01 DEC 12:53 2021 UNTIL 01 JUN 20:00 2022 ESTIMATED. CREATED: 01 DEC 12:56 2021\n NOTAMN\n QNTXX\n \n \n I\n KJFK\n A8604/21\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202111151809\n 202111151803\n 202111151809\n 202201250704\n A8604/21 NOTAMN\nQ) KZNY/QSVAS//////\nA) KJFK\nB) 2111151803\nC) PERM\nE) VOLMET 10.051/6.604/3.485/13.270 U/S\n VOLMET 10.051/6.604/3.485/13.270 U/S. 15 NOV 18:03 2021 UNTIL UFN. CREATED: 15 NOV 18:09 2021\n NOTAMN\n QSVAS\n \n \n I\n KJFK\n A8152/21\n 1\n JFK\n JFK\n 10/246\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110220158\n 202110220151\n 202212312359\n 202110220158\n 202201250704\n A8152/21 NOTAMN\nQ) KZNY/QMXHW////000/999/4038N07347W005\nA) KJFK\nB) 2110220151\nC) 2212312359\nE) TWY TA BTN TWY A AND TERMINAL 8 RAMP WIP CONST EAST SHOULDER\nLGTD AND BARRICADED\n TWY TA BTN TWY A AND TERMINAL 8 RAMP WIP CONST EAST SHOULDER LGTD AND BARRICADED. 22 OCT 01:51 2021 UNTIL 31 DEC 23:59 2022. CREATED: 22 OCT 01:58 2021\n NOTAMN\n QMXHW\n \n \n I\n KJFK\n A8012/21\n 1\n JFK\n FDC\n 1/3673\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110141904\n 202110141902\n 202110141905\n 202201250704\n A8012/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK PART 1 OF 2\nB) 2110141902\nC) 2206151902 EST\nE) ILS OR LOC RWY 22L, AMDT 26...\nILS OR LOC RWY 31L, AMDT 11B...\nILS OR LOC RWY 31R, AMDT 16B...\nILS OR LOC RWY 4L, AMDT 11D...\nILS OR LOC RWY 4R, AMDT 30B...\nRNAV (GPS) RWY 22R, AMDT 1G...\nRNAV (GPS) X RWY 22L, ORIG-A...\nRNAV (GPS) Y RWY 22L, AMDT 1F...\nRNAV (GPS) Y RWY 31L, AMDT 2B...\nRNAV (GPS) Y RWY 31R, AMDT 2C...\nRNAV (GPS) Y RWY 4L, AMDT 3B...\nRNAV (GPS) Y RWY 4R, AMDT 2B...\nVOR RWY 22L, AMDT 4F...\nVOR RWY 31L, ORIG-B...\nVOR RWY 4L, AMDT 1B...\nVOR RWY 4R, ORIG-B...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C\n2, CAT D 2 3/4. \nEXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. \nTEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\nEND PART 1 OF 2\nA8012/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK PART 2 OF 2\nB) 2110141902\nC) 2206151902 EST\nE) JOHN F KENNEDY INTL, NEW YORK, NY.\n(2021-AEA-9599-OE).\nEND PART 2 OF 2\n ILS OR LOC RWY 22L, AMDT 26... ILS OR LOC RWY 31L, AMDT 11B... ILS OR LOC RWY 31R, AMDT 16B... ILS OR LOC RWY 4L, AMDT 11D... ILS OR LOC RWY 4R, AMDT 30B... RNAV (GPS) RWY 22R, AMDT 1G... RNAV (GPS) X RWY 22L, ORIG-A... RNAV (GPS) Y RWY 22L, AMDT 1F... RNAV (GPS) Y RWY 31L, AMDT 2B... RNAV (GPS) Y RWY 31R, AMDT 2C... RNAV (GPS) Y RWY 4L, AMDT 3B... RNAV (GPS) Y RWY 4R, AMDT 2B... VOR RWY 22L, AMDT 4F... VOR RWY 31L, ORIG-B... VOR RWY 4L, AMDT 1B... VOR RWY 4R, ORIG-B... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT END PART 1 OF 2 JOHN F KENNEDY INTL, NEW YORK, NY. (2021-AEA-9599-OE). END PART 2 OF 2. 14 OCT 19:02 2021 UNTIL 15 JUN 19:02 2022 ESTIMATED. CREATED: 14 OCT 19:04 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A8013/21\n 1\n JFK\n FDC\n 1/3674\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110141904\n 202110141902\n 202110141904\n 202201250704\n A8013/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2110141902\nC) 2206151902 EST\nE) \nILS OR LOC RWY 13L, AMDT 18C...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C\n2, CAT D 2 3/4. \nUXHUB FIX MINIMUMS: CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA\n847, VISIBILITY CAT C 2, CAT D 2 3/4. \nEXCEPT WHEN ADVISED BY ATC CRANE IS DOWN.\nTEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n(2021-AEA-9599-OE).\n ILS OR LOC RWY 13L, AMDT 18C... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. UXHUB FIX MINIMUMS: CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE). 14 OCT 19:02 2021 UNTIL 15 JUN 19:02 2022 ESTIMATED. CREATED: 14 OCT 19:04 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A7693/21\n 1\n JFK\n JFK\n 09/414\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202109300858\n 202109300852\n 202209302300\n 202109300859\n 202201250704\n A7693/21 NOTAMN\nQ) KZNY/QMXXX////000/999/4038N07347W005\nA) KJFK\nB) 2109300852\nC) 2209302300\nE) TWY A CLR BAR LGT NOT STD\n TWY A CLR BAR LGT NOT STD. 30 SEP 08:52 2021 UNTIL 30 SEP 23:00 2022. CREATED: 30 SEP 08:58 2021\n NOTAMN\n QMXXX\n \n \n I\n KJFK\n A7525/21\n 1\n JFK\n FDC\n 1/1875\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202109221455\n 202109221454\n 202109221456\n 202201250704\n A7525/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KJFK\nB) 2109221454\nC) 2205041454 EST\nE) KENNEDY FIVE DEPARTURE...\nNOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\nSUITABLE RNAV SYSTEM WITH GPS,\nSAX VOR OUT OF SERVICE.\n KENNEDY FIVE DEPARTURE... NOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, SAX VOR OUT OF SERVICE. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:55 2021\n NOTAMN\n QPDCH\n \n \n I\n KJFK\n A7049/21\n 1\n JFK\n FDC\n 1/0611\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202109021414\n 202109021413\n 202109021414\n 202201250704\n A7049/21 NOTAMN\nQ) KZNY/QPDCH/I/NBO/A/000/999/\nA) KJFK\nB) 2109021413\nC) 2612311413 EST\nE) TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9...\nADD TAKEOFF OBSTACLE NOTE: RWY 31R, TEMPORARY ACFT TAILS 1878FT\nFROM DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL\n(2020-AEA-1302-NRA, LONG TERM CONDITION).\nALL OTHER DATA REMAINS AS PUBLISHED.\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9... ADD TAKEOFF OBSTACLE NOTE: RWY 31R, TEMPORARY ACFT TAILS 1878FT FROM DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL (2020-AEA-1302-NRA, LONG TERM CONDITION). ALL OTHER DATA REMAINS AS PUBLISHED. 02 SEP 14:13 2021 UNTIL 31 DEC 14:13 2026 ESTIMATED. CREATED: 02 SEP 14:14 2021\n NOTAMN\n QPDCH\n \n \n I\n KJFK\n A5965/21\n 1\n JFK\n FDC\n 1/9904\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202107151100\n 202107151059\n 202107151100\n 202201250704\n A5965/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2107151059\nC) 2303301059 EST\nE) ILS OR LOC RWY 22L, AMDT 26...\nILS OR LOC RWY 22R, AMDT 4...\nILS OR LOC RWY 31L, AMDT 11B...\nILS OR LOC RWY 31R, AMDT 16B...\nILS OR LOC RWY 4L, AMDT 11D...\nILS OR LOC RWY 4R, AMDT 30B...\nRNAV (GPS) RWY 22R, AMDT 1G...\nRNAV (GPS) X RWY 22L, ORIG- A...\nRNAV (GPS) Y RWY 22L, AMDT 1F...\nRNAV (GPS) Y RWY 31L, AMDT 2B...\nRNAV (GPS) Y RWY 31R, AMDT 2C...\nRNAV (GPS) Y RWY 4L, AMDT 3B...\nRNAV (GPS) Y RWY 4R, AMDT 2B...\nVOR RWY 22L, AMDT 4F...\nVOR RWY 31L, ORIG-B...\nVOR RWY 4L, AMDT 1B...\nVOR RWY 4R, ORIG-B...\nCIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4.\n ILS OR LOC RWY 22L, AMDT 26... ILS OR LOC RWY 22R, AMDT 4... ILS OR LOC RWY 31L, AMDT 11B... ILS OR LOC RWY 31R, AMDT 16B... ILS OR LOC RWY 4L, AMDT 11D... ILS OR LOC RWY 4R, AMDT 30B... RNAV (GPS) RWY 22R, AMDT 1G... RNAV (GPS) X RWY 22L, ORIG- A... RNAV (GPS) Y RWY 22L, AMDT 1F... RNAV (GPS) Y RWY 31L, AMDT 2B... RNAV (GPS) Y RWY 31R, AMDT 2C... RNAV (GPS) Y RWY 4L, AMDT 3B... RNAV (GPS) Y RWY 4R, AMDT 2B... VOR RWY 22L, AMDT 4F... VOR RWY 31L, ORIG-B... VOR RWY 4L, AMDT 1B... VOR RWY 4R, ORIG-B... CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. 15 JUL 10:59 2021 UNTIL 30 MAR 10:59 2023 ESTIMATED. CREATED: 15 JUL 11:00 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A3497/21\n 1\n JFK\n FDC\n 1/2206\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202103301407\n 202103301358\n 202103301407\n 202201250704\n A3497/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2103301358\nC) 2303301358 EST\nE) \nILS OR LOC RWY 13L, AMDT 18C...\nCIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4.\nUXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY\nCAT C 2, CAT D 2 1/4.\n ILS OR LOC RWY 13L, AMDT 18C... CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. UXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. 30 MAR 13:58 2021 UNTIL 30 MAR 13:58 2023 ESTIMATED. CREATED: 30 MAR 14:07 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A3344/21\n 1\n JFK\n FDC\n 1/9068\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202103241346\n 202103241340\n 202103241346\n 202201250704\n A3344/21 NOTAMN\nQ) KZNY/QPICH/I/NBO/A/000/999/\nA) KJFK\nB) 2103241340\nC) 2303241340 EST\nE) ILS OR LOC RWY 4L, AMDT 11D...\nAUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL.\n ILS OR LOC RWY 4L, AMDT 11D... AUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL. 24 MAR 13:40 2021 UNTIL 24 MAR 13:40 2023 ESTIMATED. CREATED: 24 MAR 13:46 2021\n NOTAMN\n QPICH\n \n \n I\n KJFK\n A0184/21\n 1\n JFK\n FDC\n 1/2497\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202101090404\n 202101090401\n 202101090405\n 202201250704\n A0184/21 NOTAMN\nQ) KZNY/QPKCH/V/NBO/A/000/999/\nA) KJFK\nB) 2101090401\nC) 2301090400 EST\nE) BELMONT VISUAL RWY 22L, ORIG...\nPROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM\nWITH GPS, CRI R-068 UNUSABLE.\n BELMONT VISUAL RWY 22L, ORIG... PROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, CRI R-068 UNUSABLE. 09 JAN 04:01 2021 UNTIL 09 JAN 04:00 2023 ESTIMATED. CREATED: 09 JAN 04:04 2021\n NOTAMN\n QPKCH\n \n \n I\n KJFK\n A0163/21\n 1\n JFK\n JFK\n 01/113\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202101081339\n 202101081328\n 202209301100\n 202101081339\n 202201250704\n A0163/21 NOTAMN\nQ) KZNY/QMXLC////000/999/4038N07347W005\nA) KJFK\nB) 2101081328\nC) 2209301100\nE) TWY TB BTN TERMINAL 8 RAMP AND TWY A CLSD\n TWY TB BTN TERMINAL 8 RAMP AND TWY A CLSD. 08 JAN 13:28 2021 UNTIL 30 SEP 11:00 2022. CREATED: 08 JAN 13:39 2021\n NOTAMN\n QMXLC\n \n \n F\n FDC\n 2/3766\n 1\n JFK\n KJFK\n A0534/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201130506\n 202201190500\n 202401190506\n 202201130522\n 202201250704\n !FDC 2/3766 JFK SPECIAL JOHN F KENNEDY INTL, NEW YORK, NY.\nRNAV (RNP) RWY 13L, AMDT 3A...\nRNAV (RNP) RWY 13R, AMDT 3A...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13.\n2201190500-2401190506EST\n SPECIAL JOHN F KENNEDY INTL, NEW YORK, NY. RNAV (RNP) RWY 13L, AMDT 3A... RNAV (RNP) RWY 13R, AMDT 3A... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 2201190500-2401190506EST. 19 JAN 05:00 2022 UNTIL 19 JAN 05:06 2024 ESTIMATED. CREATED: 13 JAN 05:06 2022\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 2/3730\n 1\n JFK\n KJFK\n A0533/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201130503\n 202201190500\n 202401190503\n 202201130513\n 202201250704\n !FDC 2/3730 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS RWY 13L (CAT II), AMDT 18C ...\nILS RWY 04R (CAT II - III), AMDT 30B ...\nILS RWY 22L (CAT II - III), AMDT 26 ...\nPROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190503EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS RWY 13L (CAT II), AMDT 18C ... ILS RWY 04R (CAT II - III), AMDT 30B ... ILS RWY 22L (CAT II - III), AMDT 26 ... PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190500-2401190503EST. 19 JAN 05:00 2022 UNTIL 19 JAN 05:03 2024 ESTIMATED. CREATED: 13 JAN 05:03 2022\n NOTAMN\n QXXXX\n \n \n F\n FDC\n 2/1216\n 1\n JFK\n KJFK\n A0132/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201051518\n 202201060000\n 202301052359\n 202201051519\n 202201250704\n !FDC 2/1216 JFK STAR KENNEDY INTERNATIONAL, JAMAICA, NY\nLENDY ARRIVAL...\nUNUSABLE BLW 4000FT \n\n2201060000-2301052359\n STAR KENNEDY INTERNATIONAL, JAMAICA, NY LENDY ARRIVAL... UNUSABLE BLW 4000FT. 06 JAN 00:00 2022 UNTIL 05 JAN 23:59 2023. CREATED: 05 JAN 15:18 2022\n QPACH\n \n \n F\n FDC\n 2/0382\n 1\n JFK\n KJFK\n A0048/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201031729\n 202201031729\n 202206151729\n 202201031730\n 202201250704\n !FDC 2/0382 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 22R, AMDT 4...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE).\n2201031729-2206151729EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 22R, AMDT 4... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE). 2201031729-2206151729EST. 03 JAN 17:29 2022 UNTIL 15 JUN 17:29 2022 ESTIMATED. CREATED: 03 JAN 17:29 2022\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/2046\n 1\n JFK\n KJFK\n A9122/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112151739\n 202112151739\n 202207271739\n 202112151800\n 202201250704\n !FDC 1/2046 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 4L, AMDT 11D...\nVOR RWY 4L, AMDT 1B...\nDME REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\nCMK VOR OUT OF SERVICE. 2112151739-2207271739EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 4L, AMDT 11D... VOR RWY 4L, AMDT 1B... DME REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, CMK VOR OUT OF SERVICE. 2112151739-2207271739EST. 15 DEC 17:39 2021 UNTIL 27 JUL 17:39 2022. CREATED: 15 DEC 17:39 2021\n NOTAMN\n \n \n F\n FDC\n 1/3673\n 1\n JFK\n KJFK\n A8012/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110141903\n 202110141902\n 202206151902\n 202110141904\n 202201250704\n !FDC 1/3673 JFK PART 1 OF 2 IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 22L, AMDT 26...\nILS OR LOC RWY 31L, AMDT 11B...\nILS OR LOC RWY 31R, AMDT 16B...\nILS OR LOC RWY 4L, AMDT 11D...\nILS OR LOC RWY 4R, AMDT 30B...\nRNAV (GPS) RWY 22R, AMDT 1G...\nRNAV (GPS) X RWY 22L, ORIG-A...\nRNAV (GPS) Y RWY 22L, AMDT 1F...\nRNAV (GPS) Y RWY 31L, AMDT 2B...\nRNAV (GPS) Y RWY 31R, AMDT 2C...\nRNAV (GPS) Y RWY 4L, AMDT 3B...\nRNAV (GPS) Y RWY 4R, AMDT 2B...\nVOR RWY 22L, AMDT 4F...\nVOR RWY 31L, ORIG-B...\nVOR RWY 4L, AMDT 1B...\nVOR RWY 4R, ORIG-B...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C\n2, CAT D 2 3/4. \nEXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. \nTEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n2110141902-2206151902EST\nEND PART 1 OF 2\n!FDC 1/3673 JFK PART 2 OF 2 IAP JOHN F KENNEDY INTL, NEW YORK, NY.\n(2021-AEA-9599-OE).\n2110141902-2206151902EST\nEND PART 2 OF 2\n\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 22L, AMDT 26... ILS OR LOC RWY 31L, AMDT 11B... ILS OR LOC RWY 31R, AMDT 16B... ILS OR LOC RWY 4L, AMDT 11D... ILS OR LOC RWY 4R, AMDT 30B... RNAV (GPS) RWY 22R, AMDT 1G... RNAV (GPS) X RWY 22L, ORIG-A... RNAV (GPS) Y RWY 22L, AMDT 1F... RNAV (GPS) Y RWY 31L, AMDT 2B... RNAV (GPS) Y RWY 31R, AMDT 2C... RNAV (GPS) Y RWY 4L, AMDT 3B... RNAV (GPS) Y RWY 4R, AMDT 2B... VOR RWY 22L, AMDT 4F... VOR RWY 31L, ORIG-B... VOR RWY 4L, AMDT 1B... VOR RWY 4R, ORIG-B... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT END PART 1 OF 2 IAP JOHN F KENNEDY INTL, NEW YORK, NY. (2021-AEA-9599-OE). END PART 2 OF 2 . 14 OCT 19:02 2021 UNTIL 15 JUN 19:02 2022. CREATED: 14 OCT 19:03 2021\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/3674\n 1\n JFK\n KJFK\n A8013/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110141903\n 202110141902\n 202206151902\n 202110141904\n 202201250704\n !FDC 1/3674 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 13L, AMDT 18C...\nCIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. \nUXHUB FIX MINIMUMS: CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. \nEXCEPT WHEN ADVISED BY ATC CRANE IS DOWN.\nTEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE).\n2110141902-2206151902EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 13L, AMDT 18C... CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. UXHUB FIX MINIMUMS: CIRCLING MDA CAT C 700/HAA 687, CAT D 860/HAA 847, VISIBILITY CAT C 2, CAT D 2 3/4. EXCEPT WHEN ADVISED BY ATC CRANE IS DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT (2021-AEA-9599-OE). 2110141902-2206151902EST. 14 OCT 19:02 2021 UNTIL 15 JUN 19:02 2022 ESTIMATED. CREATED: 14 OCT 19:03 2021\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/1875\n 1\n JFK\n KJFK\n A7525/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202109221454\n 202109221454\n 202205041454\n 202109221456\n 202201250704\n !FDC 1/1875 JFK SID JOHN F KENNEDY INTL, New York, NY.\nKENNEDY FIVE DEPARTURE...\nNOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\nSAX VOR OUT OF SERVICE. 2109221454-2205041454EST\n SID JOHN F KENNEDY INTL, NEW YORK, NY. KENNEDY FIVE DEPARTURE... NOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, SAX VOR OUT OF SERVICE. 2109221454-2205041454EST. 22 SEP 14:54 2021 UNTIL 04 MAY 14:54 2022 ESTIMATED. CREATED: 22 SEP 14:54 2021\n NOTAMN\n QPDCH\n \n \n F\n FDC\n 1/0611\n 1\n JFK\n KJFK\n A7049/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202109021413\n 202109021413\n 202612311413\n 202109021414\n 202201250704\n !FDC 1/0611 JFK ODP JOHN F KENNEDY INTL, NEW YORK, NY.\nTAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9...\nADD TAKEOFF OBSTACLE NOTE: RWY 31R, TEMPORARY ACFT TAILS 1878FT FROM DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL (2020-AEA-1302-NRA, LONG TERM CONDITION).\nALL OTHER DATA REMAINS AS PUBLISHED. 2109021413-2612311413EST\n ODP JOHN F KENNEDY INTL, NEW YORK, NY. TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9... ADD TAKEOFF OBSTACLE NOTE: RWY 31R, TEMPORARY ACFT TAILS 1878FT FROM DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL (2020-AEA-1302-NRA, LONG TERM CONDITION). ALL OTHER DATA REMAINS AS PUBLISHED. 2109021413-2612311413EST. 02 SEP 14:13 2021 UNTIL 31 DEC 14:13 2026 ESTIMATED. CREATED: 02 SEP 14:13 2021\n NOTAMN\n \n \n F\n FDC\n 1/9904\n 1\n JFK\n KJFK\n A5965/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202107151059\n 202107151059\n 202303301059\n 202107151100\n 202201250704\n !FDC 1/9904 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 22L, AMDT 26...\nILS OR LOC RWY 22R, AMDT 4...\nILS OR LOC RWY 31L, AMDT 11B...\nILS OR LOC RWY 31R, AMDT 16B...\nILS OR LOC RWY 4L, AMDT 11D...\nILS OR LOC RWY 4R, AMDT 30B...\nRNAV (GPS) RWY 22R, AMDT 1G...\nRNAV (GPS) X RWY 22L, ORIG- A...\nRNAV (GPS) Y RWY 22L, AMDT 1F...\nRNAV (GPS) Y RWY 31L, AMDT 2B...\nRNAV (GPS) Y RWY 31R, AMDT 2C...\nRNAV (GPS) Y RWY 4L, AMDT 3B...\nRNAV (GPS) Y RWY 4R, AMDT 2B...\nVOR RWY 22L, AMDT 4F...\nVOR RWY 31L, ORIG-B...\nVOR RWY 4L, AMDT 1B...\nVOR RWY 4R, ORIG-B...\nCIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4.\n2107151059-2303301059EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 22L, AMDT 26... ILS OR LOC RWY 22R, AMDT 4... ILS OR LOC RWY 31L, AMDT 11B... ILS OR LOC RWY 31R, AMDT 16B... ILS OR LOC RWY 4L, AMDT 11D... ILS OR LOC RWY 4R, AMDT 30B... RNAV (GPS) RWY 22R, AMDT 1G... RNAV (GPS) X RWY 22L, ORIG- A... RNAV (GPS) Y RWY 22L, AMDT 1F... RNAV (GPS) Y RWY 31L, AMDT 2B... RNAV (GPS) Y RWY 31R, AMDT 2C... RNAV (GPS) Y RWY 4L, AMDT 3B... RNAV (GPS) Y RWY 4R, AMDT 2B... VOR RWY 22L, AMDT 4F... VOR RWY 31L, ORIG-B... VOR RWY 4L, AMDT 1B... VOR RWY 4R, ORIG-B... CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. 2107151059-2303301059EST. 15 JUL 10:59 2021 UNTIL 30 MAR 10:59 2023 ESTIMATED. CREATED: 15 JUL 10:59 2021\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/2206\n 1\n JFK\n KJFK\n A3497/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202103301359\n 202103301358\n 202303301358\n 202103301407\n 202201250704\n !FDC 1/2206 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 13L, AMDT 18C...\nCIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4.\nUXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4.\n2103301358-2303301358EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 13L, AMDT 18C... CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. UXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY CAT C 2, CAT D 2 1/4. 2103301358-2303301358EST. 30 MAR 13:58 2021 UNTIL 30 MAR 13:58 2023 ESTIMATED. CREATED: 30 MAR 13:59 2021\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/9068\n 1\n JFK\n KJFK\n A3344/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202103241341\n 202103241340\n 202303241340\n 202103241346\n 202201250704\n !FDC 1/9068 JFK IAP JOHN F KENNEDY INTL, NEW YORK, NY.\nILS OR LOC RWY 4L, AMDT 11D...\nAUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL.\n2103241340-2303241340EST\n IAP JOHN F KENNEDY INTL, NEW YORK, NY. ILS OR LOC RWY 4L, AMDT 11D... AUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL. 2103241340-2303241340EST. 24 MAR 13:40 2021 UNTIL 24 MAR 13:40 2023 ESTIMATED. CREATED: 24 MAR 13:41 2021\n NOTAMN\n QPIXX\n \n \n F\n FDC\n 1/2497\n 1\n JFK\n KJFK\n A0184/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202101090401\n 202101090401\n 202301090400\n 202101090405\n 202201250704\n !FDC 1/2497 JFK VFP JOHN F KENNEDY INTL, NEW YORK, NY.\nBELMONT VISUAL RWY 22L, ORIG...\nPROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, CRI R-068 UNUSABLE.\n2101090401-2301090400EST\n VFP JOHN F KENNEDY INTL, NEW YORK, NY. BELMONT VISUAL RWY 22L, ORIG... PROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, CRI R-068 UNUSABLE. 2101090401-2301090400EST. 09 JAN 04:01 2021 UNTIL 09 JAN 04:00 2023 ESTIMATED. CREATED: 09 JAN 04:01 2021\n NOTAMN\n QPKXX\n \n \n D\n JFK\n 01/535\n 1\n JFK\n KJFK\n A0918/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271729\n 202201271729\n 202201271930\n 202201271735\n 202201271740\n !JFK 01/535 JFK NAV ILS RWY 31L GP U/S 2201271729-2201271930\n NAV ILS RWY 31L GP U/S. 27 JAN 17:29 2022 UNTIL 27 JAN 19:30 2022. CREATED: 27 JAN 17:29 2022\n NOTAMN\n \n \n D\n JFK\n 01/532\n 1\n JFK\n KJFK\n A0912/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271613\n 202201271611\n 202201280400\n 202201271629\n 202201271636\n !JFK 01/532 JFK APRON GA TERMINAL RAMP HELIPAD CLSD 2201271611-2201280400\n APRON GA TERMINAL RAMP HELIPAD CLSD. 27 JAN 16:11 2022 UNTIL 28 JAN 04:00 2022. CREATED: 27 JAN 16:13 2022\n NOTAMN\n \n \n D\n JFK\n 01/529\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201271016\n 202201271016\n 202202141100\n 202201271016\n 202201271020\n !JFK 01/529 JFK TWY H HLDG PSN SIGN NORTHEAST SIDE FOR RWY 04L/22R LGT U/S 2201271016-2202141100\n TWY H HLDG PSN SIGN NORTHEAST SIDE FOR RWY 04L/22R LGT U/S. 27 JAN 10:16 2022 UNTIL 14 FEB 11:00 2022. CREATED: 27 JAN 10:16 2022\n NOTAMN\n QMMXX\n \n \n D\n JFK\n 01/518\n 1\n JFK\n KJFK\n A0894/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201262050\n 202201262050\n 202202141200\n 202201262057\n 202201262100\n !JFK 01/518 JFK AD AP ABN ON CONS 2201262050-2202141200\n AD AP ABN ON CONS. 26 JAN 20:50 2022 UNTIL 14 FEB 12:00 2022. CREATED: 26 JAN 20:50 2022\n NOTAMN\n QLBXX\n \n \n D\n JFK\n 01/330\n 1\n JFK\n KJFK\n A0550/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201131303\n 202201190501\n 202401190501\n 202201131312\n 202201250704\n !JFK 01/330 JFK AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13 2201190501-2401190501\n AD AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN, ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND CAT A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12, 2021-23-13. 19 JAN 05:01 2022 UNTIL 19 JAN 05:01 2024. CREATED: 13 JAN 13:03 2022\n NOTAMN\n \n \n D\n JFK\n 01/179\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201071714\n 202201071714\n 202212312300\n 202201071714\n 202201250704\n !JFK 01/179 JFK TWY MC HLDG PSN SIGN EAST SIDE FOR RWY 13R/31L MISSING 2201071714-2212312300\n TWY MC HLDG PSN SIGN EAST SIDE FOR RWY 13R/31L MISSING. 07 JAN 17:14 2022 UNTIL 31 DEC 23:00 2022. CREATED: 07 JAN 17:14 2022\n NOTAMN\n \n \n D\n JFK\n 01/048\n 1\n JFK\n KJFK\n A0073/22\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201040359\n 202201040359\n 202301012300\n 202201040412\n 202201250704\n !JFK 01/048 JFK APRON BLDG 73 RAMP CLSD TO ACFT WINGSPAN MORE THAN 171FT EXC UNDER TOW 2201040359-2301012300\n APRON BLDG 73 RAMP CLSD TO ACFT WINGSPAN MORE THAN 171FT EXC UNDER TOW. 04 JAN 03:59 2022 UNTIL 01 JAN 23:00 2023. CREATED: 04 JAN 03:59 2022\n NOTAMN\n QMNLC\n \n \n D\n JFK\n 01/031\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201031616\n 202201031616\n 202212302300\n 202201031620\n 202201250704\n !JFK 01/031 JFK TWY Y HLDG PSN SIGN FOR ILS RWY\n13L/31R NORTHEAST SIDE LGT U/S 2201031616-2212302300\n TWY Y HLDG PSN SIGN FOR ILS RWY 13L/31R NORTHEAST SIDE LGT U/S. 03 JAN 16:16 2022 UNTIL 30 DEC 23:00 2022. CREATED: 03 JAN 16:16 2022\n NOTAMN\n QMMXX\n \n \n D\n JFK\n 01/033\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201031619\n 202201031619\n 202212302300\n 202201031619\n 202201250704\n !JFK 01/033 JFK TWY HB TWY DIRECTION SIGN FOR TWY A MISSING 2201031619-2212302300\n TWY HB TWY DIRECTION SIGN FOR TWY A MISSING. 03 JAN 16:19 2022 UNTIL 30 DEC 23:00 2022. CREATED: 03 JAN 16:19 2022\n NOTAMN\n \n \n D\n JFK\n 01/032\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202201031618\n 202201031618\n 202212302300\n 202201031618\n 202201250704\n !JFK 01/032 JFK TWY HB LOCATION SIGN BTN TERMINAL 4 RAMP AND TWY A MISSING 2201031618-2212302300\n TWY HB LOCATION SIGN BTN TERMINAL 4 RAMP AND TWY A MISSING. 03 JAN 16:18 2022 UNTIL 30 DEC 23:00 2022. CREATED: 03 JAN 16:18 2022\n NOTAMN\n \n \n D\n JFK\n 12/284\n 1\n JFK\n KJFK\n A9271/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112291714\n 202112291714\n 202204012000\n 202112291724\n 202201250704\n !JFK 12/284 JFK OBST CRANE (ASN 2021-AEA-959-NRA) 403857N0734722W (0.7NM NW JFK) 115FT (102FT AGL) FLAGGED 2112291714-2204012000\n OBST CRANE (ASN 2021-AEA-959-NRA) 403857N0734722W (0.7NM NW JFK) 115FT (102FT AGL) FLAGGED. 29 DEC 17:14 2021 UNTIL 01 APR 20:00 2022. CREATED: 29 DEC 17:14 2021\n NOTAMN\n QOLAS\n \n \n D\n JFK\n 12/200\n 1\n JFK\n KJFK\n A9135/21\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112161315\n 202112181100\n 202205022300\n 202112161343\n 202201250704\n !JFK 12/200 JFK OBST CRANE (ASN 2021-AEA-9599-OE) 404214N0734745W (3.9NM NNW JFK) 508FT (450FT AGL) FLAGGED AND LGTD 2112181100-2205022300EST\n OBST CRANE (ASN 2021-AEA-9599-OE) 404214N0734745W (3.9NM NNW JFK) 508FT (450FT AGL) FLAGGED AND LGTD. 18 DEC 11:00 2021 UNTIL 02 MAY 23:00 2022 ESTIMATED. CREATED: 16 DEC 13:15 2021\n NOTAMN\n QOLAS\n \n \n D\n JFK\n 12/070\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202112062234\n 202112062234\n 202203310500\n 202112062234\n 202201250704\n !JFK 12/070 JFK TWY F TWY DIRECTION SIGN FOR RWY 04L/22R MISSING 2112062234-2203310500\n TWY F TWY DIRECTION SIGN FOR RWY 04L/22R MISSING. 06 DEC 22:34 2021 UNTIL 31 MAR 05:00 2022. CREATED: 06 DEC 22:34 2021\n NOTAMN\n \n \n D\n JFK\n 10/325\n 1\n JFK\n KJFK\n JOHN F KENNEDY INTL\n 1\n 202110310824\n 202110310824\n 202207302300\n 202110310824\n 202201250704\n !JFK 10/325 JFK TWY KE SFC PAINTED HLDG PSN SIGNS FOR RWY 13R/31L NORTH SIDE FADED 2110310824-2207302300\n TWY KE SFC PAINTED HLDG PSN SIGNS FOR RWY 13R/31L NORTH SIDE FADED. 31 OCT 08:24 2021 UNTIL 30 JUL 23:00 2022. CREATED: 31 OCT 08:24 2021\n NOTAMN\n QMMXX\n \n \n D\n JFK\n 09/309\n 1\n JFK\n KJFK\n JFK-VOR/DME\n 1\n 202109212119\n 202109212119\n 202201282111\n 202109212119\n 202201250704\n !JFK 09/309 JFK COM VOR VOICE U/S 2109212119-2201282111EST\n COM VOR VOICE U/S. 21 SEP 21:19 2021 UNTIL 28 JAN 21:11 2022 ESTIMATED. CREATED: 21 SEP 21:19 2021\n NOTAMN\n QSAAS\n \n 126\n \n \n KHPN 271756Z 17008KT 150V210 10SM SCT050 M03/M14 A3036 RMK AO2\nSLP294 T10281139 11028 21139 58025\n KHPN 271737Z 2718/2818 18008KT P6SM SCT035\nFM280300 23004KT P6SM BKN100\nFM281200 27004KT P6SM BKN040\nFM281700 31005KT P6SM BKN025 NOT SKED\n KJFK 271751Z 18010KT 10SM BKN037 BKN250 M02/M11 A3043 RMK AO2 SLP302\nT10171111 11017 21100 58022\n KJFK 271737Z 2718/2824 19009KT P6SM SCT035\nFM280300 22010KT P6SM BKN100\nFM280900 25005KT P6SM SCT050 OVC070\nFM281500 27007KT P6SM BKN040\nFM281800 27007KT P6SM BKN025\nFM282100 35008KT P6SM BKN020\nPROB30 2821/2824 5SM -SN OVC015\n KBOS 271754Z 19006KT 10SM BKN250 M04/M21 A3038 RMK AO2 SLP286\nT10441206 11044 21128 58038\n KBOS 271738Z 2718/2824 20008KT P6SM BKN250\nFM280200 21010KT P6SM BKN150\nFM280800 23008KT P6SM OVC050\n \n \n \n \n \n \n \n \n \n \n <div style=\"line-height:14px;font-size:13px\"><pre><!--BKMK///OFP///0--><!--BKMK///Summary and Fuel///1--><b>[ OFP ]\n--------------------------------------------------------------------</b>\nVMS0100 27JAN2022 KHPN-KJFK B744 001Z RELEASE 1808 27JAN22\nOFP 1 WESTCHESTER CO-KENNEDY INTL\n WX PROG 2718 2721 OBS 2712 2712\n\t\n ATC C/S VMS100 KHPN/HPN KJFK/JFK CRZ SYS CI 25\n27JAN2022 001Z 1855/1900 1930/1936 GND DIST 117\nB747-400 / RB211-524G/H STA 2255 AIR DIST 113\n CTOT:.... G/C DIST 26\n AVG WIND 248/025\nMAXIMUM TOW 875000 LAW 630000 ZFW 545000 AVG W/C P008\nESTIMATED TOW 528315 LAW 519514 ZFW 494834 AVG ISA M009\n AVG FF LB/HR 17229\n FUEL BIAS P00.0\nALTN KBOS TKOF ALTN .......\nFL STEPS KHPN/0110/\n--------------------------------------------------------------------\nDISP RMKS LOAD DISTRIBUTION Y 400 B 9 F 4\n\n--------------------------------------------------------------------\n PLANNED FUEL\n---------------------------------\nFUEL ARPT FUEL TIME\n---------------------------------\nTRIP JFK 8801 0030\nCONT 5 MIN 1436 0005\nALTN BOS 14180 0042\nFINRES 9064 0030\n---------------------------------\nMINIMUM T/OFF FUEL 33481 0147\n---------------------------------\nEXTRA 0 0000\n---------------------------------\nT/OFF FUEL 33481 0147\nTAXI HPN 1000 0005\n---------------------------------\nBLOCK FUEL HPN 34481\nPIC EXTRA .....\nTOTAL FUEL .....\nREASON FOR PIC EXTRA ............\n--------------------------------------------------------------------\nFMC INFO:\nFINRES+ALTN 23244\nTRIP+TAXI 9801\n--------------------------------------------------------------------\nNO TANKERING RECOMMENDED (P)\n--------------------------------------------------------------------\nI HEREWITH CONFIRM THAT I HAVE PERFORMED A THOROUGH SELF BRIEFING\nABOUT THE DESTINATION AND ALTERNATE AIRPORTS OF THIS FLIGHT \nINCLUDING THE APPLICABLE INSTRUMENT APPROACH PROCEDURES, AIRPORT \nFACILITIES, NOTAMS AND ALL OTHER RELEVANT PARTICULAR INFORMATION.\n\nDISPATCHER: PATSY MOSLEY PIC NAME: SHAHZAD, NABEEL\n\nTEL: +1 800 555 0199 PIC SIGNATURE: ...............<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Routing and Impacts///1-->\nALTERNATE ROUTE TO: FINRES 9064\nAPT TRK DST VIA FL WC TIME FUEL\n--------------------------------------------------------------------\nKBOS/22L 049 254 DCT MERIT ROBUC3 350 P034 0042 14180\n--------------------------------------------------------------------\n\nMEL/CDL ITEMS DESCRIPTION\n------------- -----------\n\n--------------------------------------------------------------------\n\nROUTING:\n\nROUTE ID: DEFRTE\nKHPN/16 DCT CMK V374 DENNA V44 DPK DCT KJFK/22R\n\n--------------------------------------------------------------------\nDEPARTURE ATC CLEARANCE:\n.\n.\n.\n--------------------------------------------------------------------\n OPERATIONAL IMPACTS\n -------------------\nWEIGHT CHANGE UP 1.0 TRIP P 0010 LBS TIME M 0000\nWEIGHT CHANGE DN 1.0 TRIP M 0017 LBS TIME P 0000\nFL CHANGE UP FL1 TRIP P 0809 LBS TIME P 0002\nFL CHANGE DN FL1 TRIP M 0459 LBS TIME P 0000\nFL CHANGE DN FL2 TRIP M 0564 LBS TIME P 0000\nSPD CHANGE CI 0 TRIP M 0045 LBS TIME P 0000\nSPD CHANGE CI 500 TRIP P 0122 LBS TIME M 0001\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Times and Weights///1-->--------------------------------------------------------------------\nATIS:\n.\n.\n--------- --------- --------- --------- --------- --------- --------\nRVSM: ALT SYS LEFT: STBY: RIGHT:\n\n--------- --------- --------- --------- --------- --------- --------\n--------------------------------------------------------------------\n TIMES\n -----\n\t\t\t\t \n ESTIMATED SKED ACTUAL\n\nOUT 1855Z/1355L 1855Z/1355L ......Z\n\nOFF 1900Z/1400L 1900Z/1400L ......Z\n\nON 1930Z/1430L 2249Z/1749L ......Z\n\nIN 1936Z/1436L 2255Z/1755L ......Z\n\nBLOCK TIME 0041 0400 ......\n\n--------------------------------------------------------------------\n WEIGHTS\n -------\n\n EST MAX ACTUAL\n\nPAX 400 ......\n\nCARGO 3.3 ......\n\nPAYLOAD 91.3 ......\n\nZFW 494.8 545.0 ......\n\nFUEL 34.5 145.0 ...... POSS EXTRA 110.5\n\nTOW 528.3 638.8 LDG......\n\nSTAB TRIM ......\n\nLAW 519.5 630.0 ......\n\n--------------------------------------------------------------------\n TERRAIN CLEARANCE CHECK\n -----------------------\nDD CHECK - TERRAIN CLEARANCE CHECK DISABLED\n\nDP CHECK - TERRAIN CLEARANCE CHECK DISABLED\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Flight Log///1--> FLIGHT LOG \n ---------- \n\nMOST CRITICAL MORA 03000 FEET AT TOC///MXSHR 01 AT TOC\n--------------------------------------------------------------------\nAWY FL IMT MN WIND OAT EFOB PBRN\nPOSITION LAT EET ETO MORA ITT TAS COMP TDV\nIDENT LONG TTLT ATO DIS RDIS GS SHR TRP AFOB ABRN\nFREQ\n--------------------------------------------------------------------\n 037 33.5 1.0\nWESTCHESTER N4104.0 ... 26 023 P018 \nKHPN W07342.5 0000 ... 117 415 .... ....\n\nDCT 110 037 .63 252/029 M13 29.3 5.2\nT O C N4105.8 0006 ... 30 023 397 P018 M06\n W07341.4 0006 ... 21 96 415 1 328 .... ....\n\nDCT 110 112 .51 252/029 M13 28.6 5.9\nCARMEL N4116.8 0002 ... 30 099 321 P018 M06\nCMK W07334.9 0008 ... 12 84 339 1 328 .... ....\n116.60\n\nV374 110 157 .51 250/026 M13 27.6 6.8\nDENNA N4114.0 0003 ... 23 144 321 P022 M06\nDENNA W07311.6 0011 ... 18 66 343 1 330 .... ....\n\nV44 110 146 .51 250/026 M13 27.4 7.1\nBRIDGEPORT N4109.6 0001 ... 20 133 321 P006 M06\nBDR W07307.5 0012 ... 5 61 327 1 330 .... ....\n108.80\n\nV44 110 327 .51 250/026 M13 27.1 7.4\nNESSI N4106.0 0001 ... 20 313 321 P011 M06\nNESSI W07302.4 0013 ... 5 56 332 1 330 .... ....\n\nV44 110 147 .51 250/026 M13 27.0 7.5\nT O D N4107.4 0001 ... 22 133 321 M013 M06\n W07304.3 0014 ... 2 54 308 1 330 .... ....\n\nV44 090 235 .44 250/025 M10 26.8 7.7\nBELTT N4103.8 0001 ... 24 221 P010 M07\nBELTT W07259.2 0015 ... 5 49 293 330 .... ....\n\nV44 042 260 .40 233/017 M10 26.1 8.3\nDEER PARK N4047.5 0005 ... 24 247 M017 M17\nDPK W07318.2 0020 ... 22 27 241 330 .... ....\n117.70\n\nNEW YORK FIR/UIR \n-KZNY N4047.6 0000 ...\n W07317.8 0020 ... 0 27\n\nDCT 24.7 9.8\nKENNEDY INT N4038.4 0010 ... \nKJFK W07346.7 0030 ... 27 .... ....\n\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Wind Information///1-->--------------------------------------------------------------------\n WIND INFORMATION \n ---------------- \n\nCLIMB T O C CMK DENNA\n350 258/050 -56 150 253/034 -19 150 253/034 -19 150 251/034 -19\n310 252/042 -53 130 251/032 -16 130 251/032 -16 130 250/030 -16\n200 256/040 -29 110 252/029 -13 110 253/029 -13 110 250/026 -13\n150 253/034 -19 090 257/027 -10 090 257/027 -10 090 250/025 -10\n100 255/028 -12 070 256/024 -09 070 256/024 -09 070 249/023 -09\n\nBDR NESSI T O D DESCENT\n150 251/034 -19 150 251/034 -19 150 251/034 -19 350 259/050 -57\n130 250/030 -16 130 250/030 -16 130 250/030 -16 310 254/041 -52\n110 250/026 -13 110 250/026 -13 110 250/026 -13 200 255/041 -29\n090 250/025 -10 090 250/025 -10 090 250/025 -10 150 251/034 -19\n070 249/023 -09 070 249/023 -09 070 249/023 -09 100 250/026 -12\n\n--------------------------------------------------------------------<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///ATC Flight Plan///0--><b>[ ATC Flight Plan ]\n--------------------------------------------------------------------</b>\n ICAO FLIGHT PLAN \n ---------------- \n\nFF KZBWZQZX KZNYZQZX\n271808 CYULSBFP\n(FPL-VMS100-IS\n-B744/H-SDE3FGHIM1M2RWXY/LB1\n-KHPN1855\n-N0321F110 DCT CMK V374 DENNA V44 DPK DCT\n-KJFK0020 KBOS\n-PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS\n PER/D RMK/TCAS)<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Additional Info///0--><b>[ Additional Info ]\n--------------------------------------------------------------------</b>\nD I S P A T C H B R I E F I N G I N F O VMS0100 KHPN/KJFK\n\n\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Airport WX List///0--><b>[ Airport WX List ]\n--------------------------------------------------------------------</b>\nKHPN --> KJFK VMS 100 / 27JAN2022\nLIDO/WEATHER SERVICE DATE : 27Jan2022 TIME : 18:08 UTC\n\nAIRMETs:\n No Wx data available\n\nSIGMETs:\n No Wx data available\n\nTropical Cyclone SIGMETs:\n No Wx data available\n\nVolcanic Ash SIGMETs:\n No Wx data available\n\nDeparture:\nKHPN/HPN WESTCHESTER CO\n SA 271756 17008KT 150V210 10SM SCT050 M03/M14 A3036 RMK AO2\n SLP294 T10281139 11028 21139 58025\n FT 271737 2718/2818 18008KT P6SM SCT035\n FM280300 23004KT P6SM BKN100\n FM281200 27004KT P6SM BKN040\n FM281700 31005KT P6SM BKN025 NOT SKED\n\nDestination:\nKJFK/JFK KENNEDY INTL\n SA 271751 18010KT 10SM BKN037 BKN250 M02/M11 A3043 RMK AO2\n SLP302 T10171111 11017 21100 58022\n FT 271737 2718/2824 19009KT P6SM SCT035\n FM280300 22010KT P6SM BKN100\n FM280900 25005KT P6SM SCT050 OVC070\n FM281500 27007KT P6SM BKN040\n FM281800 27007KT P6SM BKN025\n FM282100 35008KT P6SM BKN020\n PROB30 2821/2824 5SM -SN OVC015\n\nDestination Alternates:\nKBOS/BOS LOGAN INTL\n SA 271754 19006KT 10SM BKN250 M04/M21 A3038 RMK AO2 SLP286\n T10441206 11044 21128 58038\n FT 271738 2718/2824 20008KT P6SM BKN250\n FM280200 21010KT P6SM BKN150\n FM280800 23008KT P6SM OVC050\n\n\n AIRPORTLIST ENDED<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///NOTAM///0--><b>[ NOTAM ]\n--------------------------------------------------------------------</b>\nLIDO-NOTAM-BULLETIN INCLUDES NOTAM, COMP NOTAM AND AIP-REGULATION\n<b>VALID: 2201271855 - 2201272318</b> STD(EOBT)+TRIP+ALTN+3HRS\nVMS 100 /27JAN OFP-NR: 1\nROUTE: KHPN - KJFK ALTN: KBOS\nN0321F110 DCT CMK V374 DENNA V44 DPK DCT\n\n\n<b>=================================\nDEPARTURE AIRPORT - DETAILED INFO\n=================================</b>\n\n<b>KHPN/HPN WESTCHESTER CO\n---------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0333/22 VALID: 27-JAN-22 1400 - 27-JAN-22 2030</b>\n TAR/SSR <b>U/S</b>\n<b>A0334/22 VALID: 27-JAN-22 1400 - 27-JAN-22 2030</b>\n MBST/WS DETECTION SYSTEM <b>NOT AVBL</b>\n<b>A0200/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A0004/22 </b>\n DLY 0000-1500\n <b>TWY K</b> BTN APCH END <b>RWY 29</b> AND <b>TWY A</b> <b>CLSD</b>\n<b>11/011 </b>\n NAV <b>ILS</b> <b>RWY 34</b> NOT MNT DLY 0400-1100\n<b>11/012 </b>\n NAV <b>ILS</b> <b>RWY 16</b> NOT MNT DLY 0400-1100\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A1342/21 </b>\n PROP ONE DEPARTURE...\n COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\n EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A1341/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n COATE, ELIOT, NEWEL, ZIMMZ DEPARTURES: NA EXCEPT FOR AIRCRAFT\n EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A1334/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n DISREGARD NOTE: GREKI DEPARTURES EXPECT VECTORS TO CMK R-057.\n CMK <b>VOR/DME</b> R-057 <b>UNUSABLE</b>.\n<b>A0559/21 </b>\n WESTCHESTER SEVEN DEPARTURE...\n DIXIE AND WHITE DEPARTURES: NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\n SUITABLE RNAV SYSTEM WITH GPS,\n COL <b>VOR</b> <b>OUT OF SERVICE</b>.<h2 style=\"page-break-after: always;\"> </h2>+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0198/22 </b>\n <b>ILS</b> <b>RWY 16</b> (SA <b>CAT</b> I - II), AMDT 25C ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A1507/21 </b>\n DLY 0400-1100\n <b>ILS</b> <b>RWY 16</b> SPECIAL AUTH <b>CAT</b> II NA\n<b>A1085/20 </b>\n RNAV (RNP) Z <b>RWY 16</b>, ORIG-C...\n RNP 0.15 DA 829/HAT 390; RNP 0.30 DA 952/HAT 513.\n\n+++++++++++++++++++++++++++++++ STAR +++++++++++++++++++++++++++++++\n\n<b>A1139/21 </b>\n STAR NOBBI FIVE ARRIVAL ALB R-238 <b>UNUSABLE</b>. SUITABLE RNAV/GPS\n REQUIRED\n\n<b>===================================\nDESTINATION AIRPORT - DETAILED INFO\n===================================</b>\n\n<b>KJFK/JFK KENNEDY INTL\n-------------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A0916/22 VALID: 27-JAN-22 1636 - 27-JAN-22 2300</b>\n <b>TWY B</b> BTN <b>TWY NA</b> AND <b>TWY NB</b> <b>CLSD</b> TO ACFT WINGSPAN MORE THAN\n 214FT\n<b>A0915/22 VALID: 27-JAN-22 1635 - 27-JAN-22 2300</b>\n <b>TWY A</b> BTN <b>TWY NA</b> AND <b>TWY NB</b> <b>CLSD</b>\n<b>A0912/22 </b>\n GA TERMINAL RAMP HELIPAD <b>CLSD</b>\n<b>01/529 </b>\n <b>TWY H</b> HLDG PSN SIGN NORTHEAST SIDE FOR <b>RWY 04L/22R</b>\n LGT <b>U/S</b>\n<b>A0894/22 </b>\n ABN ON CONS\n<b>A0550/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A0534/22 </b>\n RNAV (RNP) <b>RWY 13L</b>, AMDT 3A...\n RNAV (RNP) <b>RWY 13R</b>, AMDT 3A...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13.\n<b>01/179 </b>\n <b>TWY MC</b> HLDG PSN SIGN EAST SIDE FOR <b>RWY 13R/31L</b>\n MISSING\n<b>A0131/22 </b>\n <b>TWY C7</b> CLR BAR LGT AT <b>TWY C</b> <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0073/22 </b>\n BLDG 73 RAMP <b>CLSD</b> TO ACFT WINGSPAN MORE THAN 171FT EXC\n UNDER TOW\n<b>01/033 </b>\n <b>TWY HB</b> <b>TWY</b> <b>DIRECTION</b> SIGN FOR <b>TWY A</b> MISSING\n<b>01/032 </b>\n <b>TWY HB</b> LOCATION SIGN BTN TERMINAL 4 RAMP AND <b>TWY A</b>\n MISSING\n<b>01/031 </b>\n <b>TWY Y</b> HLDG PSN SIGN FOR <b>ILS</b> <b>RWY</b>\n 13L/31R NORTHEAST SIDE LGT <b>U/S</b>\n<b>A9279/21 </b>\n <b>TWY Z</b> BTN <b>RWY 04L/22R</b> AND <b>TWY Y</b> <b>CLSD</b>\n<b>12/070 </b>\n <b>TWY F</b> <b>TWY</b> <b>DIRECTION</b> SIGN FOR <b>RWY 04L/22R</b> MISSING\n<b>A8604/21 </b>\n VOLMET 10.051/6.604/3.485/13.270 <b>U/S</b>\n<b>10/325 </b>\n <b>TWY KE</b> SFC PAINTED HLDG PSN SIGNS FOR <b>RWY 13R/31L</b>\n NORTH SIDE FADED\n<b>A8152/21 </b>\n <b>TWY TA</b> BTN <b>TWY A</b> AND TERMINAL 8 RAMP <b>WIP</b> CONST EAST SHOULDER\n LGTD AND BARRICADED\n<b>A7693/21 </b>\n <b>TWY A</b> CLR BAR LGT NOT STD\n<b>09/309 </b>\n COM <b>VOR</b> VOICE <b>U/S</b>\n<b>A0184/21 </b>\n BELMONT VISUAL <b>RWY 22L</b>, ORIG...\n PROCEDURE NA EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV\n SYSTEM WITH GPS, CRI R-068 <b>UNUSABLE</b>.\n<b>A0163/21 </b>\n <b>TWY TB</b> BTN TERMINAL 8 RAMP AND <b>TWY A</b> <b>CLSD</b>\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A8942/21 </b>\n <b>RWY 04L</b> <b>RWY</b> END ID LGT <b>U/S</b>\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A7525/21 </b>\n KENNEDY FIVE DEPARTURE...\n NOTE: COATE DEPARTURES NA EXCEPT FOR AIRCRAFT EQUIPPED WITH\n SUITABLE RNAV SYSTEM WITH GPS,\n SAX <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A7049/21 </b>\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 9... ADD\n TAKEOFF OBSTACLE NOTE: <b>RWY 31R</b>, TEMPORARY ACFT TAILS 1878FT FROM\n DER, 476FT LEFT OF CENTERLINE, 64FT AGL/ 74FT MSL\n (2020-AEA-1302-NRA, LONG TERM CONDITION).\n ALL OTHER DATA REMAINS AS PUBLISHED.\n\n+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0918/22 VALID: 27-JAN-22 1729 - 27-JAN-22 1930</b>\n <b>ILS</b> <b>RWY 31L</b> <b>GP</b> <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0533/22 </b>\n <b>ILS</b> <b>RWY 13L</b> (CAT II), AMDT 18C ...\n <b>ILS</b> <b>RWY 04R</b> (CAT II - III), AMDT 30B ...\n <b>ILS</b> <b>RWY 22L</b> (CAT II - III), AMDT 26 ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A0048/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22R</b>, AMDT 4...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4. EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS\n DOWN. TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n (2021-AEA-9599-OE).\n<b>A9122/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>DME</b> REQUIRED EXCEPT FOR AIRCRAFT EQUIPPED WITH SUITABLE RNAV\n SYSTEM WITH GPS,\n CMK <b>VOR</b> <b>OUT OF SERVICE</b>.\n<b>A8813/21 </b>\n /HTO/ <b>VORTAC</b> 010-240 <b>UNUSABLE</b>\n<b>A8812/21 </b>\n /HTO/ <b>VORTAC</b> 270-332 <b>UNUSABLE</b>\n<b>A8013/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 13L</b>, AMDT 18C...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4.\n UXHUB FIX MINIMUMS: CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA\n 847, VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2 3/4.\n EXCEPT WHEN ADVISED BY ATC CRANE IS DOWN.\n TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n (2021-AEA-9599-OE).\n<b>A8012/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 26...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31L</b>, AMDT 11B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31R</b>, AMDT 16B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 30B...\n RNAV (GPS) <b>RWY 22R</b>, AMDT 1G...\n RNAV (GPS) X <b>RWY 22L</b>, ORIG-A...\n RNAV (GPS) Y <b>RWY 22L</b>, AMDT 1F...\n RNAV (GPS) Y <b>RWY 31L</b>, AMDT 2B...\n RNAV (GPS) Y <b>RWY 31R</b>, AMDT 2C...\n RNAV (GPS) Y <b>RWY 4L</b>, AMDT 3B...\n RNAV (GPS) Y <b>RWY 4R</b>, AMDT 2B...\n <b>VOR</b> <b>RWY 22L</b>, AMDT 4F...\n <b>VOR</b> <b>RWY 31L</b>, ORIG-B...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>VOR</b> <b>RWY 4R</b>, ORIG-B...\n CIRCLING MDA <b>CAT</b> C 700/HAA 687, <b>CAT</b> D 860/HAA 847, VISIBILITY <b>CAT</b>\n C 2, <b>CAT</b> D 2 3/4.\n EXCEPT WHEN ADVISED BY ATC THAT THIS CRANE IS DOWN.\n TEMPORARY CRANE 508FT MSL 3.92 NM NORTHWEST OF JFK AIRPORT\n END PART 1 OF 2\n \n JOHN F KENNEDY INTL, NEW YORK, NY.\n (2021-AEA-9599-OE).\n END PART 2 OF 2<h2 style=\"page-break-after: always;\"> </h2><b>A5965/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 26...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22R</b>, AMDT 4...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31L</b>, AMDT 11B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 31R</b>, AMDT 16B...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 30B...\n RNAV (GPS) <b>RWY 22R</b>, AMDT 1G...\n RNAV (GPS) X <b>RWY 22L</b>, ORIG- A...\n RNAV (GPS) Y <b>RWY 22L</b>, AMDT 1F...\n RNAV (GPS) Y <b>RWY 31L</b>, AMDT 2B...\n RNAV (GPS) Y <b>RWY 31R</b>, AMDT 2C...\n RNAV (GPS) Y <b>RWY 4L</b>, AMDT 3B...\n RNAV (GPS) Y <b>RWY 4R</b>, AMDT 2B...\n <b>VOR</b> <b>RWY 22L</b>, AMDT 4F...\n <b>VOR</b> <b>RWY 31L</b>, ORIG-B...\n <b>VOR</b> <b>RWY 4L</b>, AMDT 1B...\n <b>VOR</b> <b>RWY 4R</b>, ORIG-B...\n CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2\n 1/4.\n<b>A3497/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 13L</b>, AMDT 18C...\n CIRCLING MDA CATS C/D 700/HAA 687. VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2\n 1/4. UXHUB FIX MINIMUMS: CIRCLING MDA CATS C/D 700/HAA 687.\n VISIBILITY <b>CAT</b> C 2, <b>CAT</b> D 2 1/4.\n<b>A3344/21 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4L</b>, AMDT 11D...\n AUTOPILOT COUPLED APPROACHES NA BELOW 200FT MSL.\n\n+++++++++++++++++++++++++++++++ STAR +++++++++++++++++++++++++++++++\n\n<b>A0555/22 </b>\n STAR ROBER TWO ARRIVAL <b>DME</b> REQUIRED EXC FOR\n ACFT EQUIPPED WITH SUITABLE RNAV SYSTEM WITH GPS, PVD <b>VOR/DME</b>\n <b>OUT OF SERVICE</b>.\n<b>A0132/22 </b>\n LENDY ARRIVAL...\n <b>UNUSABLE</b> BLW 4000FT\n\n<b>================================\nDESTINATION ALTERNATE AIRPORT(S)\n================================</b>\n\n<b>KBOS/BOS LOGAN INTL\n-----------------------</b>\n\n+++++++++++++++++++++++++++++ AIRPORT ++++++++++++++++++++++++++++++\n\n<b>A1196/22 VALID: 27-JAN-22 1126 - 27-JAN-22 1900</b>\n <b>TWY A</b>, B, E, K <b>WIP</b>\n<b>01/716 </b>\n <b>TWY A1</b> <b>TWY</b> <b>DIRECTION</b> SIGN EAST SIDE FOR <b>TWY A</b>\n MISSING\n<b>01/714 </b>\n <b>RWY 22R</b> 6000FT DIST REMAINING SIGN LEFT SIDE LGT\n <b>U/S</b>\n<b>01/715 </b>\n <b>TWY Q</b> HLDG PSN SIGN FOR <b>RWY 15R/33L</b> LGT <b>U/S</b>\n<b>01/713 </b>\n <b>RWY 04L</b> 2000FT DIST REMAINING SIGN RIGHT SIDE LGT\n <b>U/S</b><h2 style=\"page-break-after: always;\"> </h2><b>A0692/22 </b>\n AP RDO ALTIMETER UNREL. AUTOLAND, HUD TO TOUCHDOWN,\n ENHANCED FLT VISION SYSTEMS TO TOUCHDOWN, HEL OPS REQUIRING RDO\n ALTIMETER DATA TO INCLUDE HOVER AUTOPILOT MODES AND <b>CAT</b>\n A/B/PERFORMANCE CLASS TKOF AND LDG NOT AUTHORIZED EXC FOR ACFT\n USING APPROVED ALTERNATIVE METHODS OF COMPLIANCE DUE TO 5G C-BAND\n INTERFERENCE PLUS SEE AIRWORTHINESS DIRECTIVES 2021-23-12,\n 2021-23-13 F) SFC G) UNL\n<b>A1349/21 </b>\n SPECIAL RNAV VISUAL <b>RWY 04L</b> ORIG...PROC NOT AUTH.\n<b>03/082 </b>\n OBST STRUCTURE (ASN UNKNOWN) 422209N0710446W\n (2.6NM W BOS) UNKNOWN (302FT AGL) NOT LGTD\n\n++++++++++++++++++++++++++++++ RUNWAY ++++++++++++++++++++++++++++++\n\n<b>A1223/22 </b>\n <b>RWY 15L/33R</b> <b>CLSD</b> EXC TAX 30 MIN PPR 131.1\n<b>A1178/22 </b>\n <b>RWY 14/32</b> <b>CLSD</b> EXC TAX 30MIN PPR 131.1\n\n+++++++++++++++++++++++++++++++ SID ++++++++++++++++++++++++++++++++\n\n<b>A0871/22 </b>\n BLZZR FIVE DEPARTURE (RNAV)...\n BRUWN SIX DEPARTURE (RNAV)...\n CELTK SIX DEPARTURE (RNAV)...\n HYLND SIX DEPARTURE (RNAV)...\n LBSTA SEVEN DEPARTURE (RNAV)...\n LOGAN THREE DEPARTURE...\n PATSS SIX DEPARTURE (RNAV)...\n REVSS FIVE DEPARTURE (RNAV)...\n SSOXS SIX DEPARTURE (RNAV)...\n WYLYY FOUR DEPARTURE (RNAV)...\n TAKE-OFF MINIMUMS: <b>RWY 27</b>, 1000-2-1/2. TEMPORARY CRANE 927FT MSL\n 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE). ALL OTHER DATA REMAINS\n AS PUBLISHED.\n<b>A0870/22 </b>\n TAKEOFF MINIMUMS AND (OBSTACLE) DEPARTURE PROCEDURES AMDT 15...\n TAKE-OFF MINIMUMS: <b>RWY 27</b>, 1000-2-1/2. DEPARTURE PROCEDURE: <b>RWY</b>\n 4L/R, CLIMB ON HEADING 035 TO 700 BEFORE TURNING LEFT. <b>RWY 9</b>,\n CLIMB ON HEADING 092 TO 600 BEFORE TURNING LEFT. <b>RWY 14</b>, CLIMB ON\n HEADING 141 TO 700 BEFORE TURNING RIGHT. <b>RWY</b> 15L/R, CLIMB ON\n HEADING 150 TO 600 BEFORE TURNING RIGHT. <b>RWY 22L</b>, CLIMB ON HEADING\n 215 TO 900 BEFORE TURNING RIGHT. <b>RWY 22R</b>, CLIMB ON HEADING 215 TO\n 1000 BEFORE TURNING RIGHT. <b>RWY 33L</b>, CLIMB ON HEADING 330 TO 900\n BEFORE TURNING LEFT. ADD TAKEOFF OBSTACLE NOTE: <b>RWY 14</b>, TEMPORARY\n CRANE 445FT FROM DER, 321FT LEFT OF CENTERLINE, 30FT AGL/ 45FT MSL\n (2019-ANE-1618-NRA). TEMPORARY CRANE 697FT MSL 1.41 NM WEST OF <b>RWY</b>\n 14 (2019-ANE-1262-OE).\n TEMPORARY CRANE 927FT MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n ALL OTHER DATA REMAINS AS PUBLISHED.\n<b>A0875/22 </b>\n DIVERSE VECTOR AREA (RADAR VECTORS) ORIG ...\n <b>RWY 14</b>, REQUIRES MINIMUM CLIMB OF 374 FT PER NM TO 1100. <b>RWY 22L</b>,\n REQUIRES MINIMUM CLIMB OF 467 FT PER NM TO 1300. <b>RWY 22R</b>,\n DEPARTURE NA. <b>RWY 33L</b>, REQUIRES MINIMUM CLIMB OF 437 FT PER NM\n TO 1300. TEMPORARY CRANE 1.27 NM SOUTHWEST OF <b>RWY 9</b>, 427FT AGL/\n 440FT MSL (2021-ANE-2398-OE). TEMPORARY CRANE 2.33NM WEST OF BOS\n AIRPORT, 893FT AGL/ 927FT MSL (2021-ANE-7562-OE). ALL OTHER DATA\n REMAINS AS PUBLISHED.<h2 style=\"page-break-after: always;\"> </h2><b>A2594/21 </b>\n LOGAN THREE DEPARTURE...\n TAKEOFF MINIMUMS: <b>RWY 27</b>, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n 500FT PER NM TO 1300.\n ALL OTHER DATA REMAINS AS PUBLISHED.\n<b>A0637/21 </b>\n WYLYY FOUR DEPARTURE (RNAV)...\n TAKEOFF MINIMUMS: <b>RWY 27</b>, STANDARD WITH MINIMUM CLIMB GRADIENT OF\n 500 FT PER NM TO 2300.\n ALL OTHER DATA REMAINS AS PUBLISHED.\n\n+++++++++++++++++++++++ APPROACH PROCEDURES ++++++++++++++++++++++++\n\n<b>A0874/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 15R</b>, AMDT 2A...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 22L</b>, AMDT 8D...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 33L</b>, AMDT 5F...\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 11...\n RNAV (GPS) <b>RWY 15R</b>, AMDT 2...\n RNAV (GPS) <b>RWY 22L</b>, AMDT 1D...\n RNAV (GPS) <b>RWY 32</b>, ORIG-G...\n RNAV (GPS) <b>RWY 33L</b>, AMDT 2D...\n RNAV (GPS) <b>RWY 4R</b>, AMDT 3...\n VOR-A, AMDT 1C...\n CIRCLING <b>CAT</b> B MDA 1240/ HAA 1221. NOTE: CIRCLING <b>RWY 9</b> NA AT\n NIGHT. TEMPORARY CRANE 440FT MSL 1.27 NM SOUTHWEST OF <b>RWY 9</b>\n (2021-ANE-2398-OE). TEMPORARY CRANE 927FT MSL 2.33 NM WEST OF BOS\n AIRPORT (2021-ANE-7562-OE).\n<b>A0873/22 </b>\n RNAV (GPS) <b>RWY 27</b>, AMDT 1...\n LNAV/VNAV DA 519/ HAT 502 ALL CATS. LNAV MDA 700/ HAT 683 ALL\n CATS, VISIBILITY CATS C/D 2. CIRCLING <b>CAT</b> B MDA 1240/ HAA 1221.\n NOTE: CIRCLING <b>RWY 9</b> NA AT NIGHT. TEMPORARY CRANE 440FT MSL 1.27\n NM SOUTHWEST OF <b>RWY 9</b> (2021-ANE-2398-OE). TEMPORARY CRANE 927FT\n MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n<b>A0872/22 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 27</b>, AMDT 3...\n S-ILS 27 DA 503/ HAT 486 ALL CATS, VISIBILITY ALL CATS 1-3/8.\n S-LOC 27 MDA 540/ HAT 523 ALL CATS. CIRCLING <b>CAT</b> B MDA 1240/ HAA\n 1221. NOTE: CIRCLING <b>RWY 9</b> NA AT NIGHT. TEMPORARY CRANE 440FT\n MSL 1.27 NM SOUTHWEST OF <b>RWY 9</b> (2021-ANE-2398-OE). TEMPORARY\n CRANE 927FT MSL 1.98NM WEST OF <b>RWY 9</b> (2021-ANE-7562-OE).\n<b>A0689/22 </b>\n <b>ILS</b> <b>RWY 04R</b> (SA <b>CAT</b> I), AMDT 11 ...\n <b>ILS</b> <b>RWY 33L</b> (SA <b>CAT</b> I), AMDT 5F ...\n <b>ILS</b> <b>RWY 04R</b> (CAT II - III), AMDT 11 ...\n <b>ILS</b> <b>RWY 33L</b> (CAT II - III), AMDT 5F ...\n PROCEDURE NA EXC FOR ACFT USING APPROVED ALTERNATIVE METHODS OF\n COMPLIANCE DUE TO 5G C-BAND INTERFERENCE PLUS SEE AIRWORTHINESS\n DIRECTIVES 2021-23-12, 2021-23-13\n<b>A9587/20 </b>\n <b>ILS</b> <b>RWY 4R</b> (SA <b>CAT</b> I), AMDT 11 ...\n DISREGARD NOTE: CIRCLING NA FOR <b>CAT</b> C/D WEST OF <b>RWYS</b> 4L AND 15R.\n DISREGARD NOTE: CIRCLING NA TO <b>RWY 14</b>.\n<b>A9586/20 </b>\n <b>ILS</b> OR <b>LOC</b> <b>RWY 4R</b>, AMDT 11...\n ADD NOTE: CIRCLING NA FOR <b>CAT</b> C/D WEST OF <b>RWYS</b> 4L AND 15R..\n ADD NOTE: CIRCLING NA TO <b>RWY 14</b>.\n<h2 style=\"page-break-after: always;\"> </h2><!--BKMK///Company NOTAM///0--><b>[ Company NOTAM ]\n--------------------------------------------------------------------</b>\n<b>==========\nCREW ALERT\n==========</b>\n\n<b>SB007/14 </b>\n SUBJECT: AUTO COST INDEXES\n WHEN PLANNING A COST INDEX, 2 OPTIONS ARE AVAILABLE. PILOTS MAY\n EITHER SELECT A SPECIFIC COST INDEX NUMBER FROM THE LIST, OR THEY\n MAY SELECT \"AUTO\". WHEN PLANNING AN \"AUTO\" COST INDEX, THE SYSTEM\n WILL REFERENCE THE SCHEDULED \"TIME ENROUTE\" OPTION AND ATTEMPT TO\n CHOOSE A COST INDEX WHICH CLOSELY MATCHES THIS VALUE. NOTE THAT\n THE \"TIME ENROUTE\" OPTION IS MEANT AS A GATE TO GATE TIME (AS\n INDICATED ON AN AIRLINE'S FLIGHT SCHEDULE, FOR EXAMPLE). IF A\n \"TIME ENROUTE\" OF 2:30 IS SELECTED, THE SYSTEM WILL SUBTRACT THE\n TAXI TIMES FROM THIS VALUE TO DETERMINE THE SCHEDULED AIR TIME. IT\n WILL THEN DETERMINE AND USE THE COST INDEX WHICH MATCHES THIS AIR\n TIME.\n\n<b>SB003/13 </b>\n SUBJECT: FLIGHT RELEASE UNITS\n ALL FLIGHT CREW: PLEASE PAY SPECIAL ATTENTION TO THE UNITS\n SELECTION WHEN GENERATING A FLIGHT PLAN. FAILURE TO IDENTIFY THE\n CORRECT UNITS WHEN REFUELING PRIOR TO FLIGHT CAN RESULT IN\n DEPARTING WITH INSUFFICIENT FUEL AND/OR AN ERRONEOUS PAYLOAD.\n\n<b>=============\nCREW BULLETIN\n=============</b>\n\nNIL\n\n\n==================== END OF LIDO-NOTAM-BULLETIN ====================<h2 style=\"page-break-after: always;\"> </h2>Route\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_ROUTE.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_ROUTE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 1 of 2\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>SigWx 2 of 2\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18_B.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_SIGWX18_B.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 1 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS5000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS5000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 2 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS10000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS10000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>UAD 3 of 3\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS14000.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_WINDS14000.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a><h2 style=\"page-break-after: always;\"> </h2>Vertical profile\n<a class=\"ofpmaplink\" href=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_PROFILE.gif\" target=\"_blank\"><img src=\"https://www.simbrief.com/ofp/uads/KHPNKJFK_1643306919_PROFILE.gif\" alt=\"Image no longer available, please regenerate the flightplan.\" width=\"600px\"></a></pre></div>\n \n \n \n 1643306731\n 1643284800\n 1643290322\n 1643306824\n 1643306820\n 1643292180\n \n \n https://www.simbrief.com/ofp/flightplans/\n \n PDF Document\n KHPNKJFK_PDF_1643306919.pdf\n \n \n Aerosoft Airbus\n KHPNKJFK_ABX_1643306919.flp\n \n \n Aerosoft Airbus EFB\n KHPNKJFK_PDF_1643306919.pdf--A3E\n \n \n Aerosoft CRJ\n KHPNKJFK_CRX_1643306919.flp\n \n \n Aerosoft CRJ (Airways)\n KHPNKJFK_CRA_1643306919.flp\n \n \n Aerowinx PSX 747\n KHPNKJFK_PSX_1643306919.route\n \n \n AivlaSoft EFB\n KHPNKJFK_EFB_1643306919.efbr\n \n \n AivlaSoft EFB v2\n KHPNKJFK_EF2_1643306919.efbr\n \n \n Black Box Airbus\n KHPNKJFK_BBS_1643306919.pln\n \n \n Captain Sim (PLN)\n KHPNKJFK_CSF_1643306919.pln\n \n \n FeelThere\n KHPNKJFK_FTR_1643306919.fpl\n \n \n Flight1 GTN\n KHPNKJFK_GTN_1643306919.gfp\n \n \n FlightFactor 757 V2\n KHPNKJFK_VMX_1643306919.flp--VM5\n \n \n FlightFactor 767-777\n KHPNKJFK_VMX_1643306919.flp\n \n \n FlightFactor A320\n KHPNKJFK_FFA_1643306919.in\n \n \n FS Commander\n KHPNKJFK_FSC_1643306919.pln\n \n \n FS2004\n KHPNKJFK_FS9_1643306919.pln\n \n \n FS2020\n KHPNKJFK_MFS_1643306919.pln\n \n \n FSLabs A320\n KHPNKJFK_FSL_1643306919.txt\n \n \n FSX/P3D\n KHPNKJFK_FSX_1643306919.pln\n \n \n FSX/P3D (No SID/STAR)\n KHPNKJFK_FSN_1643306919.pln\n \n \n Google Earth KML\n KHPNKJFK_KML_1643306919.kml\n \n \n iFly 737NG\n KHPNKJFK_IFY_1643306919.FLTPLAN\n \n \n iFly 747 V2\n KHPNKJFK_I74_1643306919.route\n \n \n iFly Jets Advanced Series\n KHPNKJFK_IFA_1643306919.route\n \n \n IVAO/IVAP\n KHPNKJFK_IVO_1643306919.fpl\n \n \n IVAO/IVAP (Default.fpl)\n KHPNKJFK_XVD_1643306919.fpl\n \n \n IVAO/XIVAP\n KHPNKJFK_XVP_1643306919.fpl\n \n \n IXEG 737 Classic\n KHPNKJFK_IXG_1643306919.fpl\n \n \n JARDesign Airbus\n KHPNKJFK_JAR_1643306919.txt\n \n \n Leonardo MD80\n KHPNKJFK_MDR_1643306919.mdr\n \n \n Leonardo MD80 (ACARS)\n KHPNKJFK_MDA_1643306919.txt\n \n \n Level-D 767\n KHPNKJFK_LVD_1643306919.rte\n \n \n Majestic Q400\n KHPNKJFK_MJC_1643306919.fpr\n \n \n Milviz\n KHPNKJFK_MVZ_1643306919.xml\n \n \n phpVMS ACARS\n KHPNKJFK_VMS_1643306919.xml\n \n \n PMDG Flightplan\n KHPNKJFK_PMR_1643306919.rte\n \n \n PMDG Wind Uplink\n KHPNKJFK_PMW_1643306919.wx\n \n \n Project Magenta\n KHPNKJFK_MGA_1643306919.sbp\n \n \n ProSim 737\n KHPNKJFK_PSM_1643306919.xml\n \n \n QualityWings\n KHPNKJFK_QTY_1643306919.RTE\n \n \n Sim-Avionics\n xml/KHPNKJFK_XML_1643306919.xml--sbr\n \n \n Squawkbox\n KHPNKJFK_SFP_1643306919.sfp\n \n \n TFDi Design 717\n KHPNKJFK_TFD_1643306919.xml\n \n \n UFMC - Universal FMC\n KHPNKJFK_UFC_1643306919.ufmc\n \n \n vasFMC\n KHPNKJFK_VAS_1643306919.fmc\n \n \n vPilot\n KHPNKJFK_VFP_1643306919.vfp\n \n \n Wilco Airbus Evo\n KHPNKJFK_WAE_1643306919.rte\n \n \n X-FMC\n KHPNKJFK_XFM_1643306919.FPL\n \n \n X-Plane 11\n KHPNKJFK_XPE_1643306919.fms\n \n \n X-Plane 9/10\n KHPNKJFK_XP9_1643306919.fms\n \n \n \n https://www.simbrief.com/ofp/flightplans/\n \n PDF Document\n KHPNKJFK_PDF_1643306919.pdf\n \n \n Aerosoft Airbus\n KHPNKJFK_ABX_1643306919.flp\n \n \n Aerosoft Airbus EFB\n KHPNKJFK_PDF_1643306919.pdf--A3E\n \n \n Aerosoft CRJ\n KHPNKJFK_CRX_1643306919.flp\n \n \n Aerosoft CRJ (Airways)\n KHPNKJFK_CRA_1643306919.flp\n \n \n Aerowinx PSX 747\n KHPNKJFK_PSX_1643306919.route\n \n \n AivlaSoft EFB\n KHPNKJFK_EFB_1643306919.efbr\n \n \n AivlaSoft EFB v2\n KHPNKJFK_EF2_1643306919.efbr\n \n \n Black Box Airbus\n KHPNKJFK_BBS_1643306919.pln\n \n \n Captain Sim (PLN)\n KHPNKJFK_CSF_1643306919.pln\n \n \n FeelThere\n KHPNKJFK_FTR_1643306919.fpl\n \n \n Flight1 GTN\n KHPNKJFK_GTN_1643306919.gfp\n \n \n FlightFactor 757 V2\n KHPNKJFK_VMX_1643306919.flp--VM5\n \n \n FlightFactor 767-777\n KHPNKJFK_VMX_1643306919.flp\n \n \n FlightFactor A320\n KHPNKJFK_FFA_1643306919.in\n \n \n FS Commander\n KHPNKJFK_FSC_1643306919.pln\n \n \n FS2004\n KHPNKJFK_FS9_1643306919.pln\n \n \n FS2020\n KHPNKJFK_MFS_1643306919.pln\n \n \n FSLabs A320\n KHPNKJFK_FSL_1643306919.txt\n \n \n FSX/P3D\n KHPNKJFK_FSX_1643306919.pln\n \n \n FSX/P3D (No SID/STAR)\n KHPNKJFK_FSN_1643306919.pln\n \n \n Google Earth KML\n KHPNKJFK_KML_1643306919.kml\n \n \n iFly 737NG\n KHPNKJFK_IFY_1643306919.FLTPLAN\n \n \n iFly 747 V2\n KHPNKJFK_I74_1643306919.route\n \n \n iFly Jets Advanced Series\n KHPNKJFK_IFA_1643306919.route\n \n \n IVAO/IVAP\n KHPNKJFK_IVO_1643306919.fpl\n \n \n IVAO/IVAP (Default.fpl)\n KHPNKJFK_XVD_1643306919.fpl\n \n \n IVAO/XIVAP\n KHPNKJFK_XVP_1643306919.fpl\n \n \n IXEG 737 Classic\n KHPNKJFK_IXG_1643306919.fpl\n \n \n JARDesign Airbus\n KHPNKJFK_JAR_1643306919.txt\n \n \n Leonardo MD80\n KHPNKJFK_MDR_1643306919.mdr\n \n \n Leonardo MD80 (ACARS)\n KHPNKJFK_MDA_1643306919.txt\n \n \n Level-D 767\n KHPNKJFK_LVD_1643306919.rte\n \n \n Majestic Q400\n KHPNKJFK_MJC_1643306919.fpr\n \n \n Milviz\n KHPNKJFK_MVZ_1643306919.xml\n \n \n phpVMS ACARS\n KHPNKJFK_VMS_1643306919.xml\n \n \n PMDG Flightplan\n KHPNKJFK_PMR_1643306919.rte\n \n \n PMDG Wind Uplink\n KHPNKJFK_PMW_1643306919.wx\n \n \n Project Magenta\n KHPNKJFK_MGA_1643306919.sbp\n \n \n ProSim 737\n KHPNKJFK_PSM_1643306919.xml\n \n \n QualityWings\n KHPNKJFK_QTY_1643306919.RTE\n \n \n Sim-Avionics\n xml/KHPNKJFK_XML_1643306919.xml--sbr\n \n \n Squawkbox\n KHPNKJFK_SFP_1643306919.sfp\n \n \n TFDi Design 717\n KHPNKJFK_TFD_1643306919.xml\n \n \n UFMC - Universal FMC\n KHPNKJFK_UFC_1643306919.ufmc\n \n \n vasFMC\n KHPNKJFK_VAS_1643306919.fmc\n \n \n vPilot\n KHPNKJFK_VFP_1643306919.vfp\n \n \n Wilco Airbus Evo\n KHPNKJFK_WAE_1643306919.rte\n \n \n X-FMC\n KHPNKJFK_XFM_1643306919.FPL\n \n \n X-Plane 11\n KHPNKJFK_XPE_1643306919.fms\n \n \n X-Plane 9/10\n KHPNKJFK_XP9_1643306919.fms\n \n \n \n https://www.simbrief.com/ofp/uads/\n \n Route\n KHPNKJFK_1643306919_ROUTE.gif\n \n \n SigWx 1 of 2\n KHPNKJFK_1643306919_SIGWX18.gif\n \n \n SigWx 2 of 2\n KHPNKJFK_1643306919_SIGWX18_B.gif\n \n \n UAD 1 of 3\n KHPNKJFK_1643306919_WINDS5000.gif\n \n \n UAD 2 of 3\n KHPNKJFK_1643306919_WINDS10000.gif\n \n \n UAD 3 of 3\n KHPNKJFK_1643306919_WINDS14000.gif\n \n \n Vertical profile\n KHPNKJFK_1643306919_PROFILE.gif\n \n \n \n http://skyvector.com/?ll=40.853519,-73.744019&chart=304&zoom=2&fpl= KHPN CMK V374 DENNA V44 DPK KJFK\n \n <form method=\"GET\" action=\"https://my.vatsim.net/pilots/flightplan\" target=\"_blank\"> <button type=\"submit\">Pre-file on VATSIM</button> <input type=\"hidden\" name=\"raw\" value=\"(FPL-VMS100-IS -B744/H-SDE3FGHIM1M2RWXY/LB1 -KHPN1855 -CMK V374 DENNA V44 DPK -KJFK0030 KBOS -PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS PER/D RMK/TCAS SIMBRIEF)\"> <input type=\"hidden\" name=\"fuel_time\" value=\"0147\"> <input type=\"hidden\" name=\"speed\" value=\"321\"> <input type=\"hidden\" name=\"altitude\" value=\"11000\"> </form>\n <form action=\"https://fpl.ivao.aero/api/fp/load\" method=\"POST\" target=\"_blank\">\n<button type=\"submit\">Pre-file on IVAO</button>\n<input type=\"hidden\" name=\"CALLSIGN\" value=\"VMS100\">\n<input type=\"hidden\" name=\"RULES\" value=\"I\">\n<input type=\"hidden\" name=\"FLIGHTTYPE\" value=\"S\">\n<input type=\"hidden\" name=\"NUMBER\" value=\"1\">\n<input type=\"hidden\" name=\"ACTYPE\" value=\"B744\">\n<input type=\"hidden\" name=\"WAKECAT\" value=\"H\">\n<input type=\"hidden\" name=\"EQUIPMENT\" value=\"SDE3FGHIM1M2RWXY\">\n<input type=\"hidden\" name=\"TRANSPONDER\" value=\"LB1\">\n<input type=\"hidden\" name=\"DEPICAO\" value=\"KHPN\">\n<input type=\"hidden\" name=\"DEPTIME\" value=\"1855\">\n<input type=\"hidden\" name=\"SPEEDTYPE\" value=\"N\">\n<input type=\"hidden\" name=\"SPEED\" value=\"0321\">\n<input type=\"hidden\" name=\"LEVELTYPE\" value=\"F\">\n<input type=\"hidden\" name=\"LEVEL\" value=\"110\">\n<input type=\"hidden\" name=\"ROUTE\" value=\"DCT CMK V374 DENNA V44 DPK DCT\">\n<input type=\"hidden\" name=\"DESTICAO\" value=\"KJFK\">\n<input type=\"hidden\" name=\"EET\" value=\"0030\">\n<input type=\"hidden\" name=\"ALTICAO\" value=\"KBOS\">\n<input type=\"hidden\" name=\"ALTICAO2\" value=\"\">\n<input type=\"hidden\" name=\"OTHER\" value=\"PBN/A1B1D1O1S2 DOF/220127 REG/001Z EET/KZNY0020 SEL/BKFS OPR/VMS PER/D RMK/TCAS SIMBRIEF\">\n<input type=\"hidden\" name=\"ENDURANCE\" value=\"0147\">\n<input type=\"hidden\" name=\"POB\" value=\"417\">\n</form>\n https://www.pilotedge.net/pilot_tools/file?flightplan[type]=IFR&flightplan[aircraft_identification]=VMS100&flightplan[aircraft_type]=B744&flightplan[aircraft_equipment]=L&flightplan[heavy]=1&flightplan[airspeed]=321&flightplan[departing_airport]=KHPN&flightplan[arriving_airport]=KJFK&flightplan[altitude]=11000&flightplan[alternate_airport]=KBOS&flightplan[route]=CMK V374 DENNA V44 DPK&flightplan[remarks]=RMK/SIMBRIEF\n https://hq.poscon.net/flightplan/create?flightRules=I&callsign=VMS100&isRegistration=N&flightType=S&numOfAircraft=1&aircraftType=B744&wakeTurbulence=H&equipmentCode=S%2CD%2CE3%2CF%2CG%2CH%2CI%2CM1%2CM2%2CR%2CW%2CX%2CY&ssr=L%2CB1&departureApt=KHPN&dateOfFlight=220127&depTime=1855&speed=N0321&cruiseAlt=F110&route=DCT+CMK+V374+DENNA+V44+DPK+DCT&destinationApt=KJFK&ete=0030&firstAlt=KBOS&secondAlt=&status=&pbn=A1%2CB1%2CD1%2CO1%2CS2&performanceCat=D&otherInformation=PBN%2FA1B1D1O1S2+DOF%2F220127+REG%2F001Z+EET%2FKZNY0020+SEL%2FBKFS+OPR%2FVMS+PER%2FD+RMK%2FTCAS+SIMBRIEF&endurance=0147&numOnBoard=417&emergencyRadio=&waterEquipment=&remarks=TCAS+SIMBRIEF\n https://www.simbrief.com/ofp/flightplans/KHPNKJFK_MJS_1643306919.js\n \n VMS\n 100\n B744\n KHPN\n KJFK\n 1643241600\n 64800\n 3300\n DCT CMK V374 DENNA V44 BELTT/N0346F140 V44 DPK DCT\n 14400\n 0\n 001Z\n \n BKFS\n 413\n KBOS\n 110\n NABEEL SHAHZAD\n 120867\n 1\n auto\n 0\n 0.05/5\n 30\n auto\n auto\n auto\n 16\n 22R\n auto\n auto\n CI\n AUTO\n lido\n 1\n 1\n 0\n 0\n 1\n 1\n 0\n 1\n \n \n \n \n \n \n \n \n VMS0001_flightid_1\n {'paxwgt':220}\n {\"paxwgt\":220}\n \n\n" fare_data: '[{"id":1,"code":"Y","name":"Economy","type":0,"capacity":400,"count":400},{"id":2,"code":"B","name":"Business","type":0,"capacity":10,"count":9},{"id":3,"code":"F","name":"First-Class","type":0,"capacity":5,"count":4}]' - created_at: '2022-01-27 18:08:44' - updated_at: '2022-01-27 18:08:44' + created_at: now + updated_at: now diff --git a/app/Database/seeds/dev/users.yml b/app/Database/seeds/dev/users.yml index 092074d3..d8b002d2 100644 --- a/app/Database/seeds/dev/users.yml +++ b/app/Database/seeds/dev/users.yml @@ -56,6 +56,12 @@ users: opt_in: 0 toc_accepted: 1 +roles: + - id: 2 + name: pilot + display_name: Pilot + description: A regular pilot + role_user: - user_id: 1 role_id: 1 diff --git a/app/Database/seeds/settings.yml b/app/Database/seeds/settings.yml index cd8807da..d096184c 100644 --- a/app/Database/seeds/settings.yml +++ b/app/Database/seeds/settings.yml @@ -61,6 +61,27 @@ options: '' type: boolean description: Record the user's IP address on register/login +- key: captcha.enabled + name: 'hCaptcha Enabled' + group: captcha + value: false + options: '' + type: boolean + description: Is hCaptcha enabled +- key: captcha.site_key + name: 'hCaptcha Site Key' + group: captcha + value: '' + options: '' + type: text + description: Your hCaptcha Site Key +- key: captcha.secret_key + name: 'hCaptcha Secret Key' + group: captcha + value: '' + options: '' + type: text + description: Your hCaptcha Secret Key - key: units.currency name: 'Currency' group: units diff --git a/app/Events/AcarsUpdate.php b/app/Events/AcarsUpdate.php index f0b1445d..26da889e 100644 --- a/app/Events/AcarsUpdate.php +++ b/app/Events/AcarsUpdate.php @@ -9,10 +9,10 @@ use App\Models\Pirep; class AcarsUpdate extends Event { /** @var Pirep */ - public $pirep; + public Pirep $pirep; /** @var Acars */ - public $acars; + public Acars $acars; public function __construct(Pirep $pirep, Acars $acars) { diff --git a/app/Events/Expenses.php b/app/Events/Expenses.php index 6b70d891..4378b391 100644 --- a/app/Events/Expenses.php +++ b/app/Events/Expenses.php @@ -28,7 +28,7 @@ use App\Models\Pirep; */ class Expenses extends Event { - public $pirep; + public ?Pirep $pirep; /** * @param Pirep|null $pirep diff --git a/app/Events/Fares.php b/app/Events/Fares.php index 25546241..a8211a5e 100644 --- a/app/Events/Fares.php +++ b/app/Events/Fares.php @@ -27,7 +27,7 @@ use App\Models\Pirep; */ class Fares extends Event { - public $pirep; + public ?Pirep $pirep; /** * @param Pirep|null $pirep diff --git a/app/Events/NewsAdded.php b/app/Events/NewsAdded.php index 8bb8d1f9..593f1e56 100644 --- a/app/Events/NewsAdded.php +++ b/app/Events/NewsAdded.php @@ -7,7 +7,7 @@ use App\Models\News; class NewsAdded extends Event { - public $news; + public News $news; public function __construct(News $news) { diff --git a/app/Events/PirepAccepted.php b/app/Events/PirepAccepted.php index 05b95b7c..dfb2f3f6 100644 --- a/app/Events/PirepAccepted.php +++ b/app/Events/PirepAccepted.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepAccepted extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepCancelled.php b/app/Events/PirepCancelled.php index 74c30faf..2b9e8218 100644 --- a/app/Events/PirepCancelled.php +++ b/app/Events/PirepCancelled.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepCancelled extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepFiled.php b/app/Events/PirepFiled.php index e4a21bd4..05696c37 100644 --- a/app/Events/PirepFiled.php +++ b/app/Events/PirepFiled.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepFiled extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepPrefiled.php b/app/Events/PirepPrefiled.php index 786204a8..b256aae2 100644 --- a/app/Events/PirepPrefiled.php +++ b/app/Events/PirepPrefiled.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepPrefiled extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepRejected.php b/app/Events/PirepRejected.php index a9bfde59..ee7b2c86 100644 --- a/app/Events/PirepRejected.php +++ b/app/Events/PirepRejected.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepRejected extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepStateChange.php b/app/Events/PirepStateChange.php index a718bd02..a336a044 100644 --- a/app/Events/PirepStateChange.php +++ b/app/Events/PirepStateChange.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepStateChange extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepStatusChange.php b/app/Events/PirepStatusChange.php index 8fa54c33..d151c870 100644 --- a/app/Events/PirepStatusChange.php +++ b/app/Events/PirepStatusChange.php @@ -10,7 +10,7 @@ use App\Models\Pirep; */ class PirepStatusChange extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/PirepUpdated.php b/app/Events/PirepUpdated.php index 032cf8ff..1478cbfc 100644 --- a/app/Events/PirepUpdated.php +++ b/app/Events/PirepUpdated.php @@ -7,7 +7,7 @@ use App\Models\Pirep; class PirepUpdated extends Event { - public $pirep; + public Pirep $pirep; public function __construct(Pirep $pirep) { diff --git a/app/Events/TestEvent.php b/app/Events/TestEvent.php index 6b8bdd95..c4d6c0c3 100644 --- a/app/Events/TestEvent.php +++ b/app/Events/TestEvent.php @@ -7,7 +7,7 @@ use App\Models\User; class TestEvent extends Event { - public $user; + public User $user; public function __construct(User $user) { diff --git a/app/Events/UserAccepted.php b/app/Events/UserAccepted.php index 85f149de..a2475d9c 100644 --- a/app/Events/UserAccepted.php +++ b/app/Events/UserAccepted.php @@ -7,7 +7,7 @@ use App\Models\User; class UserAccepted extends Event { - public $user; + public User $user; public function __construct(User $user) { diff --git a/app/Events/UserRegistered.php b/app/Events/UserRegistered.php index 3493cad2..1bd6ce32 100644 --- a/app/Events/UserRegistered.php +++ b/app/Events/UserRegistered.php @@ -7,7 +7,7 @@ use App\Models\User; class UserRegistered extends Event { - public $user; + public User $user; public function __construct(User $user) { diff --git a/app/Events/UserStateChanged.php b/app/Events/UserStateChanged.php index 5dfec530..d345f8b4 100644 --- a/app/Events/UserStateChanged.php +++ b/app/Events/UserStateChanged.php @@ -10,12 +10,12 @@ use App\Models\User; */ class UserStateChanged extends Event { + public User $user; public $old_state; - public $user; public function __construct(User $user, $old_state) { - $this->old_state = $old_state; $this->user = $user; + $this->old_state = $old_state; } } diff --git a/app/Events/UserStatsChanged.php b/app/Events/UserStatsChanged.php index 8e6ca973..73eafcfb 100644 --- a/app/Events/UserStatsChanged.php +++ b/app/Events/UserStatsChanged.php @@ -7,9 +7,9 @@ use App\Models\User; class UserStatsChanged extends Event { + public User $user; public $stat_name; public $old_value; - public $user; /* * When a user's stats change. Stats changed match the field name: diff --git a/app/Exceptions/PirepNotFound.php b/app/Exceptions/PirepNotFound.php new file mode 100644 index 00000000..d065a6b3 --- /dev/null +++ b/app/Exceptions/PirepNotFound.php @@ -0,0 +1,43 @@ +pirep_id = $pirep_id; + parent::__construct( + 404, + 'PIREP '.$pirep_id.' not found' + ); + } + + /** + * Return the RFC 7807 error type (without the URL root) + */ + public function getErrorType(): string + { + return 'pirep-not-found'; + } + + /** + * Get the detailed error string + */ + public function getErrorDetails(): string + { + return $this->getMessage(); + } + + /** + * Return an array with the error details, merged with the RFC7807 response + */ + public function getErrorMetadata(): array + { + return [ + 'pirep_id' => $this->pirep_id, + ]; + } +} diff --git a/app/Http/Composers/PageLinksComposer.php b/app/Http/Composers/PageLinksComposer.php index 0276bd0f..a2416881 100644 --- a/app/Http/Composers/PageLinksComposer.php +++ b/app/Http/Composers/PageLinksComposer.php @@ -13,7 +13,7 @@ class PageLinksComposer extends Composer private static $fields = ['id', 'name', 'slug', 'icon', 'type', 'link', 'new_window']; /** @var \App\Repositories\PageRepository */ - private $pageRepo; + private PageRepository $pageRepo; /** * PageLinksComposer constructor. diff --git a/app/Http/Composers/VersionComposer.php b/app/Http/Composers/VersionComposer.php index 2f9d984b..fdb84bec 100644 --- a/app/Http/Composers/VersionComposer.php +++ b/app/Http/Composers/VersionComposer.php @@ -8,7 +8,7 @@ use Illuminate\View\View; class VersionComposer extends Composer { - protected $versionSvc; + protected VersionService $versionSvc; public function __construct(VersionService $versionSvc) { diff --git a/app/Http/Controllers/Admin/AircraftController.php b/app/Http/Controllers/Admin/AircraftController.php index 842d7bb3..8c2129c1 100644 --- a/app/Http/Controllers/Admin/AircraftController.php +++ b/app/Http/Controllers/Admin/AircraftController.php @@ -22,9 +22,9 @@ class AircraftController extends Controller { use Importable; - private $aircraftRepo; - private $airportRepo; - private $importSvc; + private AircraftRepository $aircraftRepo; + private AirportRepository $airportRepo; + private ImportService $importSvc; /** * AircraftController constructor. diff --git a/app/Http/Controllers/Admin/AirlinesController.php b/app/Http/Controllers/Admin/AirlinesController.php index 774420c1..9f38928c 100644 --- a/app/Http/Controllers/Admin/AirlinesController.php +++ b/app/Http/Controllers/Admin/AirlinesController.php @@ -15,8 +15,8 @@ use Prettus\Repository\Criteria\RequestCriteria; class AirlinesController extends Controller { - private $airlineRepo; - private $airlineSvc; + private AirlineRepository $airlineRepo; + private AirlineService $airlineSvc; /** * AirlinesController constructor. diff --git a/app/Http/Controllers/Admin/AirportController.php b/app/Http/Controllers/Admin/AirportController.php index ca611667..1c72946f 100644 --- a/app/Http/Controllers/Admin/AirportController.php +++ b/app/Http/Controllers/Admin/AirportController.php @@ -21,8 +21,8 @@ class AirportController extends Controller { use Importable; - private $airportRepo; - private $importSvc; + private AirportRepository $airportRepo; + private ImportService $importSvc; /** * @param AirportRepository $airportRepo diff --git a/app/Http/Controllers/Admin/AwardController.php b/app/Http/Controllers/Admin/AwardController.php index 6f1085ed..093774ea 100755 --- a/app/Http/Controllers/Admin/AwardController.php +++ b/app/Http/Controllers/Admin/AwardController.php @@ -14,8 +14,8 @@ use Prettus\Repository\Criteria\RequestCriteria; class AwardController extends Controller { /** @var AwardRepository */ - private $awardRepository; - private $awardSvc; + private AwardRepository $awardRepository; + private AwardService $awardSvc; /** * AwardController constructor. diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index 510e443b..e87f8f2c 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -16,12 +16,12 @@ use Laracasts\Flash\Flash; class DashboardController extends Controller { - private $cronSvc; - private $kvpRepo; - private $newsRepo; - private $newsSvc; - private $pirepRepo; - private $userRepo; + private CronService $cronSvc; + private KvpRepository $kvpRepo; + private NewsRepository $newsRepo; + private NewsService $newsSvc; + private PirepRepository $pirepRepo; + private UserRepository $userRepo; /** * DashboardController constructor. diff --git a/app/Http/Controllers/Admin/ExpenseController.php b/app/Http/Controllers/Admin/ExpenseController.php index a331dd58..b30b43b7 100644 --- a/app/Http/Controllers/Admin/ExpenseController.php +++ b/app/Http/Controllers/Admin/ExpenseController.php @@ -20,9 +20,9 @@ class ExpenseController extends Controller { use Importable; - private $airlineRepo; - private $expenseRepo; - private $importSvc; + private AirlineRepository $airlineRepo; + private ExpenseRepository $expenseRepo; + private ImportService $importSvc; /** * expensesController constructor. diff --git a/app/Http/Controllers/Admin/FareController.php b/app/Http/Controllers/Admin/FareController.php index 8eaa6fad..0dc0eae6 100644 --- a/app/Http/Controllers/Admin/FareController.php +++ b/app/Http/Controllers/Admin/FareController.php @@ -20,8 +20,8 @@ class FareController extends Controller { use Importable; - private $fareRepo; - private $importSvc; + private FareRepository $fareRepo; + private ImportService $importSvc; /** * FareController constructor. diff --git a/app/Http/Controllers/Admin/FileController.php b/app/Http/Controllers/Admin/FileController.php index ad767a1e..dbc79ca9 100644 --- a/app/Http/Controllers/Admin/FileController.php +++ b/app/Http/Controllers/Admin/FileController.php @@ -12,7 +12,7 @@ use Laracasts\Flash\Flash; class FileController extends Controller { - private $fileSvc; + private FileService $fileSvc; public function __construct(FileService $fileSvc) { diff --git a/app/Http/Controllers/Admin/FinanceController.php b/app/Http/Controllers/Admin/FinanceController.php index 04c5798b..3775841b 100644 --- a/app/Http/Controllers/Admin/FinanceController.php +++ b/app/Http/Controllers/Admin/FinanceController.php @@ -12,8 +12,8 @@ use Illuminate\Http\Request; class FinanceController extends Controller { - private $airlineRepo; - private $financeSvc; + private AirlineRepository $airlineRepo; + private FinanceService $financeSvc; /** * @param AirlineRepository $airlineRepo diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php index 5e984b82..2a479dd6 100644 --- a/app/Http/Controllers/Admin/FlightController.php +++ b/app/Http/Controllers/Admin/FlightController.php @@ -31,15 +31,15 @@ class FlightController extends Controller { use Importable; - private $airlineRepo; - private $airportRepo; - private $fareRepo; - private $flightRepo; - private $flightFieldRepo; - private $fareSvc; - private $flightSvc; - private $importSvc; - private $subfleetRepo; + private AirlineRepository $airlineRepo; + private AirportRepository $airportRepo; + private FareRepository $fareRepo; + private FlightRepository $flightRepo; + private FlightFieldRepository $flightFieldRepo; + private FareService $fareSvc; + private FlightService $flightSvc; + private ImportService $importSvc; + private SubfleetRepository $subfleetRepo; /** * FlightController constructor. diff --git a/app/Http/Controllers/Admin/FlightFieldController.php b/app/Http/Controllers/Admin/FlightFieldController.php index 1dbba942..0920bdd7 100644 --- a/app/Http/Controllers/Admin/FlightFieldController.php +++ b/app/Http/Controllers/Admin/FlightFieldController.php @@ -10,7 +10,7 @@ use Prettus\Repository\Criteria\RequestCriteria; class FlightFieldController extends Controller { - private $flightFieldRepo; + private FlightFieldRepository $flightFieldRepo; /** * FlightFieldController constructor. diff --git a/app/Http/Controllers/Admin/MaintenanceController.php b/app/Http/Controllers/Admin/MaintenanceController.php index e4d3343b..612302b2 100644 --- a/app/Http/Controllers/Admin/MaintenanceController.php +++ b/app/Http/Controllers/Admin/MaintenanceController.php @@ -14,9 +14,9 @@ use Laracasts\Flash\Flash; class MaintenanceController extends Controller { - private $cronSvc; - private $kvpRepo; - private $versionSvc; + private CronService $cronSvc; + private KvpRepository $kvpRepo; + private VersionService $versionSvc; public function __construct( CronService $cronSvc, diff --git a/app/Http/Controllers/Admin/ModulesController.php b/app/Http/Controllers/Admin/ModulesController.php index 3b0bd555..cabff5c6 100644 --- a/app/Http/Controllers/Admin/ModulesController.php +++ b/app/Http/Controllers/Admin/ModulesController.php @@ -14,7 +14,7 @@ use Illuminate\View\View; class ModulesController extends Controller { - private $moduleSvc; + private ModuleService $moduleSvc; public function __construct(ModuleService $moduleSvc) { diff --git a/app/Http/Controllers/Admin/PagesController.php b/app/Http/Controllers/Admin/PagesController.php index ef438bb6..27fe3a17 100644 --- a/app/Http/Controllers/Admin/PagesController.php +++ b/app/Http/Controllers/Admin/PagesController.php @@ -11,7 +11,7 @@ use Laracasts\Flash\Flash; class PagesController extends Controller { - private $pageRepo; + private PageRepository $pageRepo; /** * @param PageRepository $pageRepo diff --git a/app/Http/Controllers/Admin/PirepController.php b/app/Http/Controllers/Admin/PirepController.php index ccb15c70..5a218b10 100644 --- a/app/Http/Controllers/Admin/PirepController.php +++ b/app/Http/Controllers/Admin/PirepController.php @@ -29,16 +29,16 @@ use Prettus\Repository\Criteria\RequestCriteria; class PirepController extends Controller { - private $airportRepo; - private $airlineRepo; - private $aircraftRepo; - private $fareSvc; - private $journalRepo; - private $pirepSvc; - private $pirepRepo; - private $pirepFieldRepo; - private $subfleetRepo; - private $userSvc; + private AirportRepository $airportRepo; + private AirlineRepository $airlineRepo; + private AircraftRepository $aircraftRepo; + private FareService $fareSvc; + private JournalRepository $journalRepo; + private PirepService $pirepSvc; + private PirepRepository $pirepRepo; + private PirepFieldRepository $pirepFieldRepo; + private SubfleetRepository $subfleetRepo; + private UserService $userSvc; /** * PirepController constructor. diff --git a/app/Http/Controllers/Admin/PirepFieldController.php b/app/Http/Controllers/Admin/PirepFieldController.php index b70a234f..516b7928 100644 --- a/app/Http/Controllers/Admin/PirepFieldController.php +++ b/app/Http/Controllers/Admin/PirepFieldController.php @@ -12,7 +12,7 @@ use Prettus\Repository\Criteria\RequestCriteria; class PirepFieldController extends Controller { - private $pirepFieldRepo; + private PirepFieldRepository $pirepFieldRepo; /** * PirepFieldController constructor. diff --git a/app/Http/Controllers/Admin/RankController.php b/app/Http/Controllers/Admin/RankController.php index 6f04e3c3..6a6f008b 100644 --- a/app/Http/Controllers/Admin/RankController.php +++ b/app/Http/Controllers/Admin/RankController.php @@ -15,9 +15,9 @@ use Prettus\Repository\Criteria\RequestCriteria; class RankController extends Controller { - private $fleetSvc; - private $rankRepository; - private $subfleetRepo; + private FleetService $fleetSvc; + private RankRepository $rankRepository; + private SubfleetRepository $subfleetRepo; /** * RankController constructor. diff --git a/app/Http/Controllers/Admin/RolesController.php b/app/Http/Controllers/Admin/RolesController.php index b1c0f144..cdfdae29 100644 --- a/app/Http/Controllers/Admin/RolesController.php +++ b/app/Http/Controllers/Admin/RolesController.php @@ -15,9 +15,9 @@ use Prettus\Repository\Criteria\RequestCriteria; class RolesController extends Controller { - private $permsRepo; - private $rolesRepo; - private $roleSvc; + private PermissionsRepository $permsRepo; + private RoleRepository $rolesRepo; + private RoleService $roleSvc; /** * AirlinesController constructor. diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php index 6371f73b..07526735 100644 --- a/app/Http/Controllers/Admin/SettingsController.php +++ b/app/Http/Controllers/Admin/SettingsController.php @@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Log; class SettingsController extends Controller { - private $financeSvc; + private FinanceService $financeSvc; /** * @param FinanceService $financeSvc diff --git a/app/Http/Controllers/Admin/SubfleetController.php b/app/Http/Controllers/Admin/SubfleetController.php index 7e7a64ba..4bb86639 100644 --- a/app/Http/Controllers/Admin/SubfleetController.php +++ b/app/Http/Controllers/Admin/SubfleetController.php @@ -30,14 +30,14 @@ class SubfleetController extends Controller { use Importable; - private $aircraftRepo; - private $fareRepo; - private $fareSvc; - private $fleetSvc; - private $importSvc; - private $rankRepo; - private $subfleetRepo; - private $typeratingRepo; + private AircraftRepository $aircraftRepo; + private FareRepository $fareRepo; + private FareService $fareSvc; + private FleetService $fleetSvc; + private ImportService $importSvc; + private RankRepository $rankRepo; + private SubfleetRepository $subfleetRepo; + private TypeRatingRepository $typeratingRepo; /** * SubfleetController constructor. diff --git a/app/Http/Controllers/Admin/TypeRatingController.php b/app/Http/Controllers/Admin/TypeRatingController.php index 5a3727f3..6d6456d5 100644 --- a/app/Http/Controllers/Admin/TypeRatingController.php +++ b/app/Http/Controllers/Admin/TypeRatingController.php @@ -15,9 +15,9 @@ use Prettus\Repository\Criteria\RequestCriteria; class TypeRatingController extends Controller { - private $fleetSvc; - private $subfleetRepo; - private $typeratingRepo; + private FleetService $fleetSvc; + private SubfleetRepository $subfleetRepo; + private TypeRatingRepository $typeratingRepo; public function __construct( FleetService $fleetSvc, diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 7cf2119a..d276de5b 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -27,13 +27,13 @@ use Prettus\Repository\Exceptions\RepositoryException; class UserController extends Controller { - private $airlineRepo; - private $airportRepo; - private $pirepRepo; - private $roleRepo; - private $typeratingRepo; - private $userRepo; - private $userSvc; + private AirlineRepository $airlineRepo; + private AirportRepository $airportRepo; + private PirepRepository $pirepRepo; + private RoleRepository $roleRepo; + private TypeRatingRepository $typeratingRepo; + private UserRepository $userRepo; + private UserService $userSvc; /** * UserController constructor. diff --git a/app/Http/Controllers/Admin/UserFieldController.php b/app/Http/Controllers/Admin/UserFieldController.php index 0dd05e07..4decec9e 100644 --- a/app/Http/Controllers/Admin/UserFieldController.php +++ b/app/Http/Controllers/Admin/UserFieldController.php @@ -11,7 +11,7 @@ use Prettus\Repository\Criteria\RequestCriteria; class UserFieldController extends Controller { /** @var \App\Repositories\UserFieldRepository */ - private $userFieldRepo; + private UserFieldRepository $userFieldRepo; /** * @param UserFieldRepository $userFieldRepo diff --git a/app/Http/Controllers/Api/AcarsController.php b/app/Http/Controllers/Api/AcarsController.php index ff82dd39..8cc7e256 100644 --- a/app/Http/Controllers/Api/AcarsController.php +++ b/app/Http/Controllers/Api/AcarsController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api; use App\Contracts\Controller; use App\Events\AcarsUpdate; use App\Exceptions\PirepCancelled; +use App\Exceptions\PirepNotFound; use App\Http\Requests\Acars\EventRequest; use App\Http\Requests\Acars\LogRequest; use App\Http\Requests\Acars\PositionRequest; @@ -12,7 +13,6 @@ use App\Http\Resources\AcarsRoute as AcarsRouteResource; use App\Http\Resources\Pirep as PirepResource; use App\Models\Acars; use App\Models\Enums\AcarsType; -use App\Models\Enums\PirepStatus; use App\Models\Pirep; use App\Repositories\AcarsRepository; use App\Repositories\PirepRepository; @@ -20,14 +20,13 @@ use App\Services\GeoService; use Carbon\Carbon; use Illuminate\Database\QueryException; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; class AcarsController extends Controller { - private $acarsRepo; - private $geoSvc; - private $pirepRepo; + private AcarsRepository $acarsRepo; + private GeoService $geoSvc; + private PirepRepository $pirepRepo; /** * AcarsController constructor. @@ -67,9 +66,11 @@ class AcarsController extends Controller */ public function live_flights() { - $pireps = $this->acarsRepo->getPositions(setting('acars.live_time'))->filter(function ($pirep) { - return $pirep->position !== null; - }); + $pireps = $this->acarsRepo->getPositions(setting('acars.live_time'))->filter( + function ($pirep) { + return $pirep->position !== null; + } + ); return PirepResource::collection($pireps); } @@ -102,6 +103,10 @@ class AcarsController extends Controller public function acars_geojson($pirep_id, Request $request) { $pirep = Pirep::find($pirep_id); + if (empty($pirep)) { + throw new PirepNotFound($pirep_id); + } + $geodata = $this->geoSvc->getFeatureFromAcars($pirep); return response()->json([ @@ -119,7 +124,11 @@ class AcarsController extends Controller */ public function acars_get($id, Request $request) { - $this->pirepRepo->find($id); + $pirep = $this->pirepRepo->find($id); + if (empty($pirep)) { + throw new PirepNotFound($id); + } + $acars = Acars::with(['pirep']) ->where([ 'pirep_id' => $id, @@ -137,8 +146,8 @@ class AcarsController extends Controller * @param $id * @param PositionRequest $request * - * @throws \App\Exceptions\PirepCancelled * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException + * @throws \App\Exceptions\PirepCancelled * * @return \Illuminate\Http\JsonResponse */ @@ -146,6 +155,10 @@ class AcarsController extends Controller { // Check if the status is cancelled... $pirep = Pirep::find($id); + if (empty($pirep)) { + throw new PirepNotFound($id); + } + $this->checkCancelled($pirep); /*Log::debug( @@ -212,8 +225,8 @@ class AcarsController extends Controller * @param $id * @param LogRequest $request * - * @throws \App\Exceptions\PirepCancelled * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException + * @throws \App\Exceptions\PirepCancelled * * @return \Illuminate\Http\JsonResponse */ @@ -221,6 +234,10 @@ class AcarsController extends Controller { // Check if the status is cancelled... $pirep = Pirep::find($id); + if (empty($pirep)) { + throw new PirepNotFound($id); + } + $this->checkCancelled($pirep); // Log::debug('Posting ACARS log, PIREP: '.$id, $request->post()); @@ -266,8 +283,8 @@ class AcarsController extends Controller * @param $id * @param EventRequest $request * - * @throws \App\Exceptions\PirepCancelled * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException + * @throws \App\Exceptions\PirepCancelled * * @return \Illuminate\Http\JsonResponse */ @@ -275,6 +292,10 @@ class AcarsController extends Controller { // Check if the status is cancelled... $pirep = Pirep::find($id); + if (empty($pirep)) { + throw new PirepNotFound($id); + } + $this->checkCancelled($pirep); Log::debug('Posting ACARS event, PIREP: '.$id, $request->post()); diff --git a/app/Http/Controllers/Api/AirlineController.php b/app/Http/Controllers/Api/AirlineController.php index 6526f54b..5e0f0033 100644 --- a/app/Http/Controllers/Api/AirlineController.php +++ b/app/Http/Controllers/Api/AirlineController.php @@ -9,7 +9,7 @@ use Illuminate\Http\Request; class AirlineController extends Controller { - private $airlineRepo; + private AirlineRepository $airlineRepo; /** * AirlineController constructor. diff --git a/app/Http/Controllers/Api/AirportController.php b/app/Http/Controllers/Api/AirportController.php index f4b9af7d..65b3a3b0 100644 --- a/app/Http/Controllers/Api/AirportController.php +++ b/app/Http/Controllers/Api/AirportController.php @@ -15,8 +15,8 @@ use Prettus\Repository\Criteria\RequestCriteria; */ class AirportController extends Controller { - private $airportRepo; - private $airportSvc; + private AirportRepository $airportRepo; + private AirportService $airportSvc; /** * AirportController constructor. diff --git a/app/Http/Controllers/Api/FlightController.php b/app/Http/Controllers/Api/FlightController.php index 7f51c399..f35d6e7b 100644 --- a/app/Http/Controllers/Api/FlightController.php +++ b/app/Http/Controllers/Api/FlightController.php @@ -20,14 +20,9 @@ use Prettus\Repository\Exceptions\RepositoryException; class FlightController extends Controller { - /** @var \App\Services\FareService */ - private $fareSvc; - - /** @var \App\Repositories\FlightRepository */ - private $flightRepo; - - /** @var \App\Services\FlightService */ - private $flightSvc; + private FareService $fareSvc; + private FlightRepository $flightRepo; + private FlightService $flightSvc; /** * @param FareService $fareSvc diff --git a/app/Http/Controllers/Api/NewsController.php b/app/Http/Controllers/Api/NewsController.php index dc228772..900f28ee 100644 --- a/app/Http/Controllers/Api/NewsController.php +++ b/app/Http/Controllers/Api/NewsController.php @@ -9,7 +9,7 @@ use Illuminate\Http\Request; class NewsController extends Controller { - private $newsRepo; + private NewsRepository $newsRepo; /** * AirlineController constructor. diff --git a/app/Http/Controllers/Api/PirepController.php b/app/Http/Controllers/Api/PirepController.php index 12094314..6a02627e 100644 --- a/app/Http/Controllers/Api/PirepController.php +++ b/app/Http/Controllers/Api/PirepController.php @@ -38,11 +38,11 @@ use Illuminate\Support\Facades\Log; class PirepController extends Controller { - private $financeSvc; - private $journalRepo; - private $pirepRepo; - private $pirepSvc; - private $userSvc; + private PirepFinanceService $financeSvc; + private JournalRepository $journalRepo; + private PirepRepository $pirepRepo; + private PirepService $pirepSvc; + private UserService $userSvc; /** * @param PirepFinanceService $financeSvc diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index 7b69002f..33d55521 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -12,7 +12,7 @@ use Illuminate\Http\Request; */ class SettingsController extends Controller { - private $settingRepo; + private SettingRepository $settingRepo; /** * SettingsController constructor. diff --git a/app/Http/Controllers/Api/StatusController.php b/app/Http/Controllers/Api/StatusController.php index 7574b7b7..52c18400 100644 --- a/app/Http/Controllers/Api/StatusController.php +++ b/app/Http/Controllers/Api/StatusController.php @@ -3,20 +3,27 @@ namespace App\Http\Controllers\Api; use App\Contracts\Controller; -use PragmaRX\Version\Package\Facade as Version; +use App\Services\VersionService; /** * Class StatusController */ class StatusController extends Controller { + private VersionService $versionSvc; + + public function __construct(VersionService $versionSvc) + { + $this->versionSvc = $versionSvc; + } + /** * @return \Illuminate\Http\JsonResponse */ public function status() { return response()->json([ - 'version' => Version::compact(), + 'version' => $this->versionSvc->getCurrentVersion(true), 'php' => PHP_VERSION, ]); } diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index cfcf97ef..5266f9d4 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -17,7 +17,6 @@ use App\Repositories\FlightRepository; use App\Repositories\PirepRepository; use App\Repositories\UserRepository; use App\Services\BidService; -use App\Services\FlightService; use App\Services\UserService; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -26,17 +25,15 @@ use Prettus\Repository\Exceptions\RepositoryException; class UserController extends Controller { - private $bidSvc; - private $flightRepo; - private $flightSvc; - private $pirepRepo; - private $userRepo; - private $userSvc; + private BidService $bidSvc; + private FlightRepository $flightRepo; + private PirepRepository $pirepRepo; + private UserRepository $userRepo; + private UserService $userSvc; /** * @param BidService $bidSvc * @param FlightRepository $flightRepo - * @param FlightService $flightSvc * @param PirepRepository $pirepRepo * @param UserRepository $userRepo * @param UserService $userSvc @@ -44,14 +41,12 @@ class UserController extends Controller public function __construct( BidService $bidSvc, FlightRepository $flightRepo, - FlightService $flightSvc, PirepRepository $pirepRepo, UserRepository $userRepo, UserService $userSvc ) { $this->bidSvc = $bidSvc; $this->flightRepo = $flightRepo; - $this->flightSvc = $flightSvc; $this->pirepRepo = $pirepRepo; $this->userRepo = $userRepo; $this->userSvc = $userSvc; diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index bff81151..723a60c7 100755 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -16,13 +16,16 @@ class LoginController extends Controller { use AuthenticatesUsers; - protected $redirectTo = '/dashboard'; + /** + * Where to redirect after logging in + */ + protected mixed $redirectTo = '/dashboard'; /** @var UserService */ - private $userSvc; + private UserService $userSvc; /** @var string */ - private $loginFieldValue; + private string $loginFieldValue; /** * LoginController constructor. diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index f6882baf..9beddc9f 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -11,6 +11,7 @@ use App\Repositories\AirlineRepository; use App\Repositories\AirportRepository; use App\Services\UserService; use App\Support\Countries; +use App\Support\HttpClient; use App\Support\Timezonelist; use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Http\Request; @@ -29,9 +30,10 @@ class RegisterController extends Controller */ protected $redirectTo = '/'; - private $airlineRepo; - private $airportRepo; - private $userService; + private AirlineRepository $airlineRepo; + private AirportRepository $airportRepo; + private HttpClient $httpClient; + private UserService $userService; /** * RegisterController constructor. @@ -39,18 +41,23 @@ class RegisterController extends Controller * @param AirlineRepository $airlineRepo * @param AirportRepository $airportRepo * @param UserService $userService + * @param HttpClient $httpClient */ public function __construct( AirlineRepository $airlineRepo, AirportRepository $airportRepo, - UserService $userService + HttpClient $httpClient, + UserService $userService, ) { $this->airlineRepo = $airlineRepo; $this->airportRepo = $airportRepo; + $this->httpClient = $httpClient; $this->userService = $userService; + $this->middleware('guest'); $this->redirectTo = config('phpvms.registration_redirect'); + $this->httpClient = $httpClient; } /** @@ -70,6 +77,11 @@ class RegisterController extends Controller 'countries' => Countries::getSelectList(), 'timezones' => Timezonelist::toArray(), 'userFields' => $userFields, + 'captcha' => [ + 'enabled' => setting('captcha.enabled', env('CAPTCHA_ENABLED', false)), + 'site_key' => setting('captcha.site_key', env('CAPTCHA_SITE_KEY')), + 'secret_key' => setting('captcha.secret_key', env('CAPTCHA_SECRET_KEY')), + ], ]); } @@ -102,8 +114,25 @@ class RegisterController extends Controller $rules['field_'.$field->slug] = 'required'; } - if (config('captcha.enabled')) { - $rules['g-recaptcha-response'] = 'required|captcha'; + /* + * Validation for hcaptcha + */ + $captcha_enabled = setting('captcha.enabled', env('CAPTCHA_ENABLED', false)); + if ($captcha_enabled === true) { + $rules['h-captcha-response'] = [ + 'required', + function ($attribute, $value, $fail) { + $response = $this->httpClient->form_post('https://hcaptcha.com/siteverify', [ + 'secret' => setting('captcha.secret_key', env('CAPTCHA_SECRET_KEY')), + 'response' => $value, + ]); + + if ($response['success'] !== true) { + Log::error('Captcha failed '.json_encode($response)); + $fail('Captcha verification failed, please try again.'); + } + }, + ]; } return Validator::make($data, $rules); @@ -114,8 +143,8 @@ class RegisterController extends Controller * * @param array $opts * - * @throws \RuntimeException * @throws \Exception + * @throws \RuntimeException * * @return User */ diff --git a/app/Http/Controllers/Frontend/AirportController.php b/app/Http/Controllers/Frontend/AirportController.php index bc5a0cd1..8c3f6dfb 100644 --- a/app/Http/Controllers/Frontend/AirportController.php +++ b/app/Http/Controllers/Frontend/AirportController.php @@ -13,8 +13,8 @@ use Request; */ class AirportController extends Controller { - private $airportRepo; - private $flightRepo; + private AirportRepository $airportRepo; + private FlightRepository $flightRepo; public function __construct( AirportRepository $airportRepo, diff --git a/app/Http/Controllers/Frontend/DashboardController.php b/app/Http/Controllers/Frontend/DashboardController.php index dcae679c..a4be3428 100644 --- a/app/Http/Controllers/Frontend/DashboardController.php +++ b/app/Http/Controllers/Frontend/DashboardController.php @@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Auth; */ class DashboardController extends Controller { - private $pirepRepo; + private PirepRepository $pirepRepo; /** * DashboardController constructor. diff --git a/app/Http/Controllers/Frontend/DownloadController.php b/app/Http/Controllers/Frontend/DownloadController.php index d0f32f2d..309d555a 100644 --- a/app/Http/Controllers/Frontend/DownloadController.php +++ b/app/Http/Controllers/Frontend/DownloadController.php @@ -5,9 +5,12 @@ namespace App\Http\Controllers\Frontend; use App\Contracts\Controller; use App\Models\Airline; use App\Models\File; -use Auth; -use Flash; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; +use Laracasts\Flash\Flash; +use Nwidart\Modules\Exceptions\ModuleNotFoundException; +use Nwidart\Modules\Facades\Module; /** * Class DownloadController @@ -62,6 +65,19 @@ class DownloadController extends Controller } } + // See if they inserted a link to the ACARS download + try { + Module::findOrFail('VMSAcars'); + $downloadUrl = DB::table('vmsacars_config')->where(['id' => 'download_url'])->first(); + if (!empty($downloadUrl) && !empty($downloadUrl->value)) { + $regrouped_files['ACARS'] = collect([ + new File(['id' => 'vmsacars', 'name' => 'ACARS Client']), + ]); + } + } catch (ModuleNotFoundException) { + // noop, don't insert the ACARS download + } + ksort($regrouped_files, SORT_STRING); return view('downloads.index', [ @@ -79,12 +95,30 @@ class DownloadController extends Controller */ public function show($id) { + // See if they're trying to download the ACARS client + if ($id === 'vmsacars' && Auth::check()) { + try { + Module::find('VMSAcars'); + $downloadUrl = DB::table('vmsacars_config') + ->where(['id' => 'download_url']) + ->first(); + + if (!empty($downloadUrl) && !empty($downloadUrl->value)) { + return redirect()->to($downloadUrl->value); + } + } catch (ModuleNotFoundException) { + } + + return redirect()->back(); + } + /** * @var File $file */ $file = File::find($id); if (!$file) { Flash::error('File doesn\'t exist'); + return redirect()->back(); } @@ -98,6 +132,7 @@ class DownloadController extends Controller if ($file->disk === 'public') { $storage = Storage::disk('public'); + return $storage->download($file->path, $file->filename); } diff --git a/app/Http/Controllers/Frontend/FlightController.php b/app/Http/Controllers/Frontend/FlightController.php index 2db26ddd..d7729d06 100644 --- a/app/Http/Controllers/Frontend/FlightController.php +++ b/app/Http/Controllers/Frontend/FlightController.php @@ -23,13 +23,13 @@ use Prettus\Repository\Exceptions\RepositoryException; class FlightController extends Controller { - private $airlineRepo; - private $airportRepo; - private $flightRepo; - private $moduleSvc; - private $subfleetRepo; - private $geoSvc; - private $userRepo; + private AirlineRepository $airlineRepo; + private AirportRepository $airportRepo; + private FlightRepository $flightRepo; + private ModuleService $moduleSvc; + private SubfleetRepository $subfleetRepo; + private GeoService $geoSvc; + private UserRepository $userRepo; /** * @param AirlineRepository $airlineRepo diff --git a/app/Http/Controllers/Frontend/LiveMapController.php b/app/Http/Controllers/Frontend/LiveMapController.php index e24ee886..f2c3d9a2 100644 --- a/app/Http/Controllers/Frontend/LiveMapController.php +++ b/app/Http/Controllers/Frontend/LiveMapController.php @@ -9,8 +9,8 @@ use Illuminate\Http\Request; class LiveMapController extends Controller { - private $acarsRepo; - private $geoSvc; + private AcarsRepository $acarsRepo; + private GeoService $geoSvc; /** * AcarsController constructor. diff --git a/app/Http/Controllers/Frontend/PageController.php b/app/Http/Controllers/Frontend/PageController.php index 1e79857c..9b13a7e0 100644 --- a/app/Http/Controllers/Frontend/PageController.php +++ b/app/Http/Controllers/Frontend/PageController.php @@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Auth; class PageController extends Controller { - private $pageRepo; + private PageRepository $pageRepo; /** * @param \App\Repositories\PageRepository $pageRepo diff --git a/app/Http/Controllers/Frontend/PirepController.php b/app/Http/Controllers/Frontend/PirepController.php index 44874bc5..65de8fdc 100644 --- a/app/Http/Controllers/Frontend/PirepController.php +++ b/app/Http/Controllers/Frontend/PirepController.php @@ -34,16 +34,16 @@ use Laracasts\Flash\Flash; class PirepController extends Controller { - private $aircraftRepo; - private $airlineRepo; - private $fareSvc; - private $flightRepo; - private $geoSvc; - private $pirepRepo; - private $airportRepo; - private $pirepFieldRepo; - private $pirepSvc; - private $userSvc; + private AircraftRepository $aircraftRepo; + private AirlineRepository $airlineRepo; + private FareService $fareSvc; + private FlightRepository $flightRepo; + private GeoService $geoSvc; + private PirepRepository $pirepRepo; + private AirportRepository $airportRepo; + private PirepFieldRepository $pirepFieldRepo; + private PirepService $pirepSvc; + private UserService $userSvc; /** * @param AircraftRepository $aircraftRepo @@ -402,8 +402,8 @@ class PirepController extends Controller $pirep->flight_time = Time::hoursToMinutes($hours) + $minutes; // Set the correct fuel units - $pirep->block_fuel = new Fuel((float) $request->input('block_fuel'), setting('units.fuel')); - $pirep->fuel_used = new Fuel((float) $request->input('fuel_used'), setting('units.fuel')); + $pirep->block_fuel = Fuel::make((float) $request->input('block_fuel'), setting('units.fuel')); + $pirep->fuel_used = Fuel::make((float) $request->input('fuel_used'), setting('units.fuel')); // Put the time that this is currently submitted $attrs['submitted_at'] = Carbon::now('UTC'); diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 1d374f68..e681ac18 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -10,7 +10,6 @@ use App\Repositories\AirlineRepository; use App\Repositories\AirportRepository; use App\Repositories\UserRepository; use App\Support\Countries; -use App\Support\Discord; use App\Support\Timezonelist; use App\Support\Utils; use Illuminate\Http\Request; @@ -25,9 +24,9 @@ use Nwidart\Modules\Facades\Module; class ProfileController extends Controller { - private $airlineRepo; - private $airportRepo; - private $userRepo; + private AirlineRepository $airlineRepo; + private AirportRepository $airportRepo; + private UserRepository $userRepo; /** * ProfileController constructor. @@ -80,11 +79,21 @@ class ProfileController extends Controller public function show($id) { /** @var \App\Models\User $user */ - $with = ['airline', 'awards', 'current_airport', 'fields.field', 'home_airport', 'last_pirep', 'rank', 'typeratings']; + $with = [ + 'airline', + 'awards', + 'current_airport', + 'fields.field', + 'home_airport', + 'last_pirep', + 'rank', + 'typeratings', + ]; $user = User::with($with)->where('id', $id)->first(); if (empty($user)) { Flash::error('User not found!'); + return redirect(route('frontend.dashboard.index')); } @@ -113,6 +122,7 @@ class ProfileController extends Controller if (empty($user)) { Flash::error('User not found!'); + return redirect(route('frontend.dashboard.index')); } @@ -173,10 +183,6 @@ class ProfileController extends Controller $req_data['password'] = Hash::make($req_data['password']); } - if (isset($req_data['avatar']) !== null) { - Storage::delete($user->avatar); - } - // Find out the user's private channel id /* // TODO: Uncomment when Discord API functionality is enabled @@ -188,9 +194,13 @@ class ProfileController extends Controller }*/ if ($request->hasFile('avatar')) { + if ($user->avatar !== null) { + Storage::delete($user->avatar); + } + $avatar = $request->file('avatar'); $file_name = $user->ident.'.'.$avatar->getClientOriginalExtension(); - $path = "avatars/{$file_name}"; + $path = "avatars/$file_name"; // Create the avatar, resizing it and keeping the aspect ratio. // https://stackoverflow.com/a/26892028 diff --git a/app/Http/Controllers/Frontend/SimBriefController.php b/app/Http/Controllers/Frontend/SimBriefController.php index 9d234f95..57c7c900 100644 --- a/app/Http/Controllers/Frontend/SimBriefController.php +++ b/app/Http/Controllers/Frontend/SimBriefController.php @@ -24,11 +24,11 @@ use Illuminate\Support\Facades\Auth; class SimBriefController { - private $fareSvc; - private $flightRepo; - private $moduleSvc; - private $simBriefSvc; - private $userSvc; + private FareService $fareSvc; + private FlightRepository $flightRepo; + private ModuleService $moduleSvc; + private SimBriefService $simBriefSvc; + private UserService $userSvc; public function __construct( FareService $fareSvc, diff --git a/app/Http/Controllers/Frontend/UserController.php b/app/Http/Controllers/Frontend/UserController.php index d0237a1e..2b43777d 100644 --- a/app/Http/Controllers/Frontend/UserController.php +++ b/app/Http/Controllers/Frontend/UserController.php @@ -13,7 +13,7 @@ use Prettus\Repository\Exceptions\RepositoryException; class UserController extends Controller { - private $userRepo; + private UserRepository $userRepo; /** * @param UserRepository $userRepo diff --git a/app/Http/Controllers/System/ImporterController.php b/app/Http/Controllers/System/ImporterController.php index e2fb76cf..793b38c6 100644 --- a/app/Http/Controllers/System/ImporterController.php +++ b/app/Http/Controllers/System/ImporterController.php @@ -12,8 +12,8 @@ use Illuminate\Support\Facades\Log; class ImporterController extends Controller { - private $dbSvc; - private $importerSvc; + private DatabaseService $dbSvc; + private ImporterService $importerSvc; public function __construct(DatabaseService $dbSvc, ImporterService $importerSvc) { diff --git a/app/Http/Controllers/System/InstallerController.php b/app/Http/Controllers/System/InstallerController.php index 7c54bafb..cafd058d 100644 --- a/app/Http/Controllers/System/InstallerController.php +++ b/app/Http/Controllers/System/InstallerController.php @@ -29,14 +29,14 @@ use RuntimeException; class InstallerController extends Controller { - private $airlineSvc; - private $analyticsSvc; - private $dbSvc; - private $envSvc; - private $migrationSvc; - private $reqSvc; - private $seederSvc; - private $userService; + private AirlineService $airlineSvc; + private AnalyticsService $analyticsSvc; + private DatabaseService $dbSvc; + private ConfigService $envSvc; + private MigrationService $migrationSvc; + private RequirementsService $reqSvc; + private SeederService $seederSvc; + private UserService $userService; /** * InstallerController constructor. @@ -326,6 +326,7 @@ class InstallerController extends Controller 'api_key' => Utils::generateApiKey(), 'airline_id' => $airline->id, 'password' => Hash::make($request->get('password')), + 'opt_in' => true, ]; $user = $this->userService->createUser($attrs, ['admin']); diff --git a/app/Http/Controllers/System/UpdateController.php b/app/Http/Controllers/System/UpdateController.php index 1e1408df..d7299714 100644 --- a/app/Http/Controllers/System/UpdateController.php +++ b/app/Http/Controllers/System/UpdateController.php @@ -12,9 +12,9 @@ use Illuminate\Support\Facades\Log; class UpdateController extends Controller { - private $installerSvc; - private $migrationSvc; - private $seederSvc; + private InstallerService $installerSvc; + private MigrationService $migrationSvc; + private SeederService $seederSvc; /** * @param InstallerService $installerSvc diff --git a/app/Http/Middleware/InstalledCheck.php b/app/Http/Middleware/InstalledCheck.php index dc2e48d7..4bc920ad 100644 --- a/app/Http/Middleware/InstalledCheck.php +++ b/app/Http/Middleware/InstalledCheck.php @@ -19,7 +19,8 @@ class InstalledCheck implements Middleware { public function handle(Request $request, Closure $next) { - if (config('app.key') === 'base64:zdgcDqu9PM8uGWCtMxd74ZqdGJIrnw812oRMmwDF6KY=' + $key = config('app.key'); + if ((empty($key) || $key === 'base64:zdgcDqu9PM8uGWCtMxd74ZqdGJIrnw812oRMmwDF6KY=') && !$request->is(['install', 'install/*']) && !$request->is(['update', 'update/*']) ) { diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php index c38a6c35..97548357 100644 --- a/app/Http/Middleware/TrustProxies.php +++ b/app/Http/Middleware/TrustProxies.php @@ -3,7 +3,7 @@ namespace App\Http\Middleware; use Closure; -use Fideloper\Proxy\TrustProxies as Middleware; +use Illuminate\Http\Middleware\TrustProxies as Middleware; use Illuminate\Http\Request; class TrustProxies extends Middleware @@ -20,7 +20,12 @@ class TrustProxies extends Middleware * * @var int */ - protected $headers = Request::HEADER_X_FORWARDED_ALL; + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; /** * Set the client as trusted diff --git a/app/Http/Resources/Acars.php b/app/Http/Resources/Acars.php index 7ef52543..5b7aeada 100644 --- a/app/Http/Resources/Acars.php +++ b/app/Http/Resources/Acars.php @@ -16,9 +16,6 @@ class Acars extends Resource * * @param \Illuminate\Http\Request $request * - * @throws \PhpUnitsOfMeasure\Exception\NonNumericValue - * @throws \PhpUnitsOfMeasure\Exception\NonStringUnitName - * * @return array */ public function toArray($request) @@ -27,11 +24,11 @@ class Acars extends Resource // Set these to the response units $distance = !empty($res['distance']) ? $res['distance'] : 0; - $distance = new Distance($distance, config('phpvms.internal_units.distance')); + $distance = Distance::make($distance, config('phpvms.internal_units.distance')); $res['distance'] = $distance->getResponseUnits(); $fuel = !empty($res['fuel']) ? $res['fuel'] : 0; - $fuel = new Fuel($fuel, config('phpvms.internal_units.fuel')); + $fuel = Fuel::make($fuel, config('phpvms.internal_units.fuel')); $res['fuel'] = $fuel->getResponseUnits(); $res['pirep'] = Pirep::make($this->whenLoaded('pirep')); diff --git a/app/Http/Resources/Airline.php b/app/Http/Resources/Airline.php index 58156f05..6031a59f 100644 --- a/app/Http/Resources/Airline.php +++ b/app/Http/Resources/Airline.php @@ -4,6 +4,9 @@ namespace App\Http\Resources; use App\Contracts\Resource; +/** + * @mixin \App\Models\Airline + */ class Airline extends Resource { public function toArray($request) diff --git a/app/Http/Resources/Award.php b/app/Http/Resources/Award.php index 368615e4..8a7336ce 100755 --- a/app/Http/Resources/Award.php +++ b/app/Http/Resources/Award.php @@ -4,6 +4,9 @@ namespace App\Http\Resources; use App\Contracts\Resource; +/** + * @mixin \App\Models\Award + */ class Award extends Resource { public function toArray($request) diff --git a/app/Http/Resources/BidSubfleet.php b/app/Http/Resources/BidSubfleet.php index 7467a62b..1604b053 100644 --- a/app/Http/Resources/BidSubfleet.php +++ b/app/Http/Resources/BidSubfleet.php @@ -2,6 +2,9 @@ namespace App\Http\Resources; +/** + * @mixin \App\Models\Subfleet + */ class BidSubfleet extends Subfleet { protected $aircraft; diff --git a/app/Http/Resources/Flight.php b/app/Http/Resources/Flight.php index 8c9f03bf..11743795 100644 --- a/app/Http/Resources/Flight.php +++ b/app/Http/Resources/Flight.php @@ -53,7 +53,7 @@ class Flight extends Resource $res['load_factor_variance'] = setting('flights.load_factor_variance'); } - $distance = new Distance($res['distance'], config('phpvms.internal_units.distance')); + $distance = Distance::make($res['distance'], config('phpvms.internal_units.distance')); $res['distance'] = $distance->getResponseUnits(); $res['airline'] = new Airline($this->airline); diff --git a/app/Http/Resources/News.php b/app/Http/Resources/News.php index c133b260..132392da 100644 --- a/app/Http/Resources/News.php +++ b/app/Http/Resources/News.php @@ -4,6 +4,9 @@ namespace App\Http\Resources; use App\Contracts\Resource; +/** + * @mixin \App\Models\News + */ class News extends Resource { /** diff --git a/app/Http/Resources/Pirep.php b/app/Http/Resources/Pirep.php index 4c708f3e..c0be505a 100644 --- a/app/Http/Resources/Pirep.php +++ b/app/Http/Resources/Pirep.php @@ -18,9 +18,6 @@ class Pirep extends Resource * * @param \Illuminate\Http\Request $request * - * @throws \PhpUnitsOfMeasure\Exception\NonNumericValue - * @throws \PhpUnitsOfMeasure\Exception\NonStringUnitName - * * @return array */ public function toArray($request) @@ -35,28 +32,28 @@ class Pirep extends Resource $res['distance'] = 0; } - $distance = new Distance($res['distance'], config('phpvms.internal_units.distance')); + $distance = Distance::make($res['distance'], config('phpvms.internal_units.distance')); $res['distance'] = $distance->getResponseUnits(); if (!array_key_exists('block_fuel', $res)) { $res['block_fuel'] = 0; } - $block_fuel = new Fuel($res['block_fuel'], config('phpvms.internal_units.fuel')); + $block_fuel = Fuel::make($res['block_fuel'], config('phpvms.internal_units.fuel')); $res['block_fuel'] = $block_fuel->getResponseUnits(); if (!array_key_exists('fuel_used', $res)) { $res['fuel_used'] = 0; } - $fuel_used = new Fuel($res['fuel_used'], config('phpvms.internal_units.fuel')); + $fuel_used = Fuel::make($res['fuel_used'], config('phpvms.internal_units.fuel')); $res['fuel_used'] = $fuel_used->getResponseUnits(); if (!array_key_exists('planned_distance', $res)) { $res['planned_distance'] = 0; } - $planned_dist = new Distance($res['planned_distance'], config('phpvms.internal_units.distance')); + $planned_dist = Distance::make($res['planned_distance'], config('phpvms.internal_units.distance')); $res['planned_distance'] = $planned_dist->getResponseUnits(); /* diff --git a/app/Http/Resources/Setting.php b/app/Http/Resources/Setting.php index a6834a1d..6b958f79 100644 --- a/app/Http/Resources/Setting.php +++ b/app/Http/Resources/Setting.php @@ -4,6 +4,9 @@ namespace App\Http\Resources; use App\Contracts\Resource; +/** + * @mixin \App\Models\Setting + */ class Setting extends Resource { public function toArray($request) diff --git a/app/Models/Acars.php b/app/Models/Acars.php index 6dd2d28c..6a305410 100644 --- a/app/Models/Acars.php +++ b/app/Models/Acars.php @@ -3,9 +3,10 @@ namespace App\Models; use App\Contracts\Model; +use App\Models\Casts\DistanceCast; +use App\Models\Casts\FuelCast; use App\Models\Traits\HashIdTrait; -use App\Support\Units\Distance; -use App\Support\Units\Fuel; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * @property string id @@ -23,10 +24,12 @@ use App\Support\Units\Fuel; class Acars extends Model { use HashIdTrait; + use HasFactory; public $table = 'acars'; protected $keyType = 'string'; + public $incrementing = false; public $fillable = [ @@ -59,13 +62,13 @@ class Acars extends Model 'nav_type' => 'integer', 'lat' => 'float', 'lon' => 'float', - 'distance' => 'integer', + 'distance' => DistanceCast::class, 'heading' => 'integer', 'altitude' => 'float', 'vs' => 'float', 'gs' => 'float', 'transponder' => 'integer', - 'fuel' => 'float', + 'fuel' => FuelCast::class, 'fuel_flow' => 'float', ]; @@ -73,38 +76,6 @@ class Acars extends Model 'pirep_id' => 'required', ]; - /** - * Set the distance unit, convert to our internal default unit - * - * @param $value - */ - public function setDistanceAttribute($value): void - { - if ($value instanceof Distance) { - $this->attributes['distance'] = $value->toUnit( - config('phpvms.internal_units.distance') - ); - } else { - $this->attributes['distance'] = $value; - } - } - - /** - * Set the amount of fuel - * - * @param $value - */ - public function setFuelAttribute($value) - { - if ($value instanceof Fuel) { - $this->attributes['fuel'] = $value->toUnit( - config('phpvms.internal_units.fuel') - ); - } else { - $this->attributes['fuel'] = $value; - } - } - /** * FKs */ diff --git a/app/Models/Aircraft.php b/app/Models/Aircraft.php index 3b39f75f..3b3a06d8 100644 --- a/app/Models/Aircraft.php +++ b/app/Models/Aircraft.php @@ -3,10 +3,13 @@ namespace App\Models; use App\Contracts\Model; +use App\Models\Casts\FuelCast; use App\Models\Enums\AircraftStatus; use App\Models\Traits\ExpensableTrait; use App\Models\Traits\FilesTrait; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Znck\Eloquent\Traits\BelongsToThrough; /** @@ -32,9 +35,10 @@ use Znck\Eloquent\Traits\BelongsToThrough; */ class Aircraft extends Model { + use BelongsToThrough; use ExpensableTrait; use FilesTrait; - use BelongsToThrough; + use HasFactory; public $table = 'aircraft'; @@ -50,6 +54,7 @@ class Aircraft extends Model 'flight_time', 'mtow', 'zfw', + 'fuel_onboard', 'status', 'state', ]; @@ -58,11 +63,12 @@ class Aircraft extends Model * The attributes that should be casted to native types. */ protected $casts = [ - 'subfleet_id' => 'integer', - 'mtow' => 'float', - 'zfw' => 'float', - 'flight_time' => 'float', - 'state' => 'integer', + 'subfleet_id' => 'integer', + 'mtow' => 'float', + 'zfw' => 'float', + 'flight_time' => 'float', + 'fuel_onboard' => FuelCast::class, + 'state' => 'integer', ]; /** @@ -78,43 +84,51 @@ class Aircraft extends Model ]; /** - * @return string + * @return Attribute */ - public function getIdentAttribute(): string + public function active(): Attribute { - return $this->registration.' ('.$this->icao.')'; + return Attribute::make( + get: fn ($_, $attr) => $attr['status'] === AircraftStatus::ACTIVE + ); } /** - * See if this aircraft is active - * - * @return bool + * @return Attribute */ - public function getActiveAttribute(): bool + public function icao(): Attribute { - return $this->status === AircraftStatus::ACTIVE; + return Attribute::make( + set: fn ($value) => strtoupper($value) + ); } /** - * Capitalize the ICAO when set - * - * @param $icao + * @return Attribute */ - public function setIcaoAttribute($icao): void + public function ident(): Attribute { - $this->attributes['icao'] = strtoupper($icao); + return Attribute::make( + get: fn ($_, $attrs) => $attrs['registration'].' ('.$attrs['icao'].')' + ); } /** - * Return the landing time in carbon format if provided + * Return the landing time * - * @return Carbon|null + * @return Attribute */ - public function getLandingTimeAttribute() + public function landingTime(): Attribute { - if (array_key_exists('landing_time', $this->attributes) && filled($this->attributes['landing_time'])) { - return new Carbon($this->attributes['landing_time']); - } + return Attribute::make( + get: function ($_, $attrs) { + if (array_key_exists('landing_time', $attrs) && filled($attrs['landing_time'])) { + return new Carbon($attrs['landing_time']); + } + + return $attrs['landing_time']; + } + ); } /** diff --git a/app/Models/Airline.php b/app/Models/Airline.php index 10e685f4..df4f517d 100644 --- a/app/Models/Airline.php +++ b/app/Models/Airline.php @@ -6,11 +6,11 @@ use App\Contracts\Model; use App\Models\Enums\JournalType; use App\Models\Traits\FilesTrait; use App\Models\Traits\JournalTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Support\Str; /** - * Class Airline - * * @property mixed id * @property string code * @property string icao @@ -23,6 +23,7 @@ use Illuminate\Support\Str; class Airline extends Model { use FilesTrait; + use HasFactory; use JournalTrait; public $table = 'airlines'; @@ -70,34 +71,43 @@ class Airline extends Model /** * For backwards compatibility */ - public function getCodeAttribute() + public function code(): Attribute { - if ($this->iata && $this->iata !== '') { - return $this->iata; - } - return $this->icao; + return Attribute::make( + get: function ($_, $attrs) { + if ($this->iata && $this->iata !== '') { + return $this->iata; + } + + return $this->icao; + } + ); } /** * Capitalize the IATA code when set - * - * @param $iata */ - public function setIataAttribute($iata) + public function iata(): Attribute { - $this->attributes['iata'] = Str::upper($iata); + return Attribute::make( + set: fn ($iata) => Str::upper($iata) + ); } /** * Capitalize the ICAO when set - * - * @param $icao */ - public function setIcaoAttribute($icao): void + public function icao(): Attribute { - $this->attributes['icao'] = Str::upper($icao); + return Attribute::make( + set: fn ($icao) => Str::upper($icao) + ); } + /* + * FKs + */ + public function subfleets() { return $this->hasMany(Subfleet::class, 'airline_id'); diff --git a/app/Models/Airport.php b/app/Models/Airport.php index 23a8496b..176f8a46 100644 --- a/app/Models/Airport.php +++ b/app/Models/Airport.php @@ -5,6 +5,8 @@ namespace App\Models; use App\Contracts\Model; use App\Models\Traits\ExpensableTrait; use App\Models\Traits\FilesTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * Class Airport @@ -28,11 +30,14 @@ class Airport extends Model { use ExpensableTrait; use FilesTrait; + use HasFactory; public $table = 'airports'; protected $keyType = 'string'; + public $incrementing = false; + public $timestamps = false; protected $fillable = [ @@ -76,26 +81,31 @@ class Airport extends Model 'ground_handling_cost' => 'nullable|numeric', 'fuel_100ll_cost' => 'nullable|numeric', 'fuel_jeta_cost' => 'nullable|numeric', - 'fuel_mogas_cost' => 'nullable|numeric', + + 'fuel_mogas_cost' => 'nullable|numeric', ]; /** - * @param $icao + * Capitalize the ICAO */ - public function setIcaoAttribute($icao) + public function icao(): Attribute { - $icao = strtoupper($icao); - $this->attributes['id'] = $icao; - $this->attributes['icao'] = $icao; + return Attribute::make( + set: fn ($icao) => [ + 'id' => strtoupper($icao), + 'icao' => strtoupper($icao), + ] + ); } /** - * @param $iata + * Capitalize the IATA code */ - public function setIataAttribute($iata): void + public function iata(): Attribute { - $iata = strtoupper($iata); - $this->attributes['iata'] = $iata; + return Attribute::make( + set: fn ($iata) => strtoupper($iata) + ); } /** @@ -104,28 +114,25 @@ class Airport extends Model * * @return string */ - public function getFullNameAttribute(): string + public function fullName(): Attribute { - return $this->icao.' - '.$this->name; + return Attribute::make( + get: fn ($_, $attrs) => $this->icao.' - '.$this->name + ); } /** - * Shorthand for getting the timezone + * Shortcut for timezone * - * @return string + * @return Attribute */ - public function getTzAttribute(): string + public function tz(): Attribute { - return $this->attributes['timezone']; - } - - /** - * Shorthand for setting the timezone - * - * @param $value - */ - public function setTzAttribute($value): void - { - $this->attributes['timezone'] = $value; + return Attribute::make( + get: fn ($_, $attrs) => $attrs['timezone'], + set: fn ($value) => [ + 'timezone' => $value, + ] + ); } } diff --git a/app/Models/Award.php b/app/Models/Award.php index e501fb98..4de406a4 100755 --- a/app/Models/Award.php +++ b/app/Models/Award.php @@ -3,16 +3,23 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * The Award model * * @property mixed id + * @property string name + * @property string description + * @property string title + * @property string image * @property mixed ref_model * @property mixed|null ref_model_params */ class Award extends Model { + use HasFactory; + public $table = 'awards'; protected $fillable = [ diff --git a/app/Models/Casts/CarbonCast.php b/app/Models/Casts/CarbonCast.php new file mode 100644 index 00000000..0747475a --- /dev/null +++ b/app/Models/Casts/CarbonCast.php @@ -0,0 +1,50 @@ +toIso8601ZuluString(); + } + + return $value; + } +} diff --git a/app/Models/Casts/CommaDelimitedCast.php b/app/Models/Casts/CommaDelimitedCast.php new file mode 100644 index 00000000..5f8eec7b --- /dev/null +++ b/app/Models/Casts/CommaDelimitedCast.php @@ -0,0 +1,46 @@ +toUnit(config('phpvms.internal_units.distance')); + } + + return $value; + } +} diff --git a/app/Models/Casts/FuelCast.php b/app/Models/Casts/FuelCast.php new file mode 100644 index 00000000..e9773f12 --- /dev/null +++ b/app/Models/Casts/FuelCast.php @@ -0,0 +1,56 @@ +toUnit(config('phpvms.internal_units.fuel')); + } + + return $value; + } +} diff --git a/app/Models/Casts/MoneyCast.php b/app/Models/Casts/MoneyCast.php new file mode 100644 index 00000000..956c3f1e --- /dev/null +++ b/app/Models/Casts/MoneyCast.php @@ -0,0 +1,47 @@ +getAmount() : null; + } +} diff --git a/app/Models/Enums/ActiveState.php b/app/Models/Enums/ActiveState.php index a8f323e2..cca044e0 100644 --- a/app/Models/Enums/ActiveState.php +++ b/app/Models/Enums/ActiveState.php @@ -9,7 +9,7 @@ class ActiveState extends Enum public const INACTIVE = 0; public const ACTIVE = 1; - public static $labels = [ + public static array $labels = [ self::ACTIVE => 'common.active', self::INACTIVE => 'common.inactive', ]; diff --git a/app/Models/Enums/AircraftState.php b/app/Models/Enums/AircraftState.php index 9020a33d..6edbfc75 100644 --- a/app/Models/Enums/AircraftState.php +++ b/app/Models/Enums/AircraftState.php @@ -10,7 +10,7 @@ class AircraftState extends Enum public const IN_USE = 1; public const IN_AIR = 2; - public static $labels = [ + public static array $labels = [ self::PARKED => 'On Ground', self::IN_USE => 'In Use', self::IN_AIR => 'In Air', diff --git a/app/Models/Enums/AircraftStatus.php b/app/Models/Enums/AircraftStatus.php index e215589c..f8bc4f16 100644 --- a/app/Models/Enums/AircraftStatus.php +++ b/app/Models/Enums/AircraftStatus.php @@ -13,7 +13,7 @@ class AircraftStatus extends Enum public const SCRAPPED = 'C'; public const WRITTEN_OFF = 'W'; - public static $labels = [ + public static array $labels = [ self::ACTIVE => 'aircraft.status.active', self::MAINTENANCE => 'aircraft.status.maintenance', self::STORED => 'aircraft.status.stored', diff --git a/app/Models/Enums/Days.php b/app/Models/Enums/Days.php index da93ac38..79844c94 100644 --- a/app/Models/Enums/Days.php +++ b/app/Models/Enums/Days.php @@ -17,7 +17,7 @@ class Days extends Enum public const SATURDAY = 1 << 5; public const SUNDAY = 1 << 6; - public static $labels = [ + public static array $labels = [ self::MONDAY => 'common.days.mon', self::TUESDAY => 'common.days.tues', self::WEDNESDAY => 'common.days.wed', @@ -27,7 +27,7 @@ class Days extends Enum self::SUNDAY => 'common.days.sun', ]; - public static $codes = [ + public static array $codes = [ 'M' => self::MONDAY, 'T' => self::TUESDAY, 'W' => self::WEDNESDAY, diff --git a/app/Models/Enums/ExpenseType.php b/app/Models/Enums/ExpenseType.php index 7d424540..fa6cbaa2 100644 --- a/app/Models/Enums/ExpenseType.php +++ b/app/Models/Enums/ExpenseType.php @@ -10,13 +10,13 @@ class ExpenseType extends Enum public const DAILY = 'D'; public const MONTHLY = 'M'; - protected static $labels = [ + protected static array $labels = [ self::FLIGHT => 'expenses.type.flight', self::DAILY => 'expenses.type.daily', self::MONTHLY => 'expenses.type.monthly', ]; - protected static $codes = [ + protected static array $codes = [ self::FLIGHT => 'F', self::DAILY => 'D', self::MONTHLY => 'M', diff --git a/app/Models/Enums/FareType.php b/app/Models/Enums/FareType.php index f18be6b1..abf071f6 100644 --- a/app/Models/Enums/FareType.php +++ b/app/Models/Enums/FareType.php @@ -9,7 +9,7 @@ class FareType extends Enum public const PASSENGER = 0; public const CARGO = 1; - public static $labels = [ + public static array $labels = [ self::PASSENGER => 'Passenger', self::CARGO => 'Cargo', ]; diff --git a/app/Models/Enums/FlightType.php b/app/Models/Enums/FlightType.php index aaaa2b87..5d9e6e02 100644 --- a/app/Models/Enums/FlightType.php +++ b/app/Models/Enums/FlightType.php @@ -22,7 +22,7 @@ class FlightType extends Enum public const MILITARY = 'W'; public const TECHNICAL_STOP = 'X'; - protected static $labels = [ + protected static array $labels = [ self::SCHED_PAX => 'flights.type.pass_scheduled', self::SCHED_CARGO => 'flights.type.cargo_scheduled', self::CHARTER_PAX_ONLY => 'flights.type.charter_pass_only', diff --git a/app/Models/Enums/FuelType.php b/app/Models/Enums/FuelType.php index afd52ef8..4738bef2 100644 --- a/app/Models/Enums/FuelType.php +++ b/app/Models/Enums/FuelType.php @@ -10,7 +10,7 @@ class FuelType extends Enum public const JET_A = 1; public const MOGAS = 2; - public static $labels = [ + public static array $labels = [ self::LOW_LEAD => '100LL', self::JET_A => 'JET A', self::MOGAS => 'MOGAS', diff --git a/app/Models/Enums/ImportExportType.php b/app/Models/Enums/ImportExportType.php index aa4ee363..7ef4f8f0 100644 --- a/app/Models/Enums/ImportExportType.php +++ b/app/Models/Enums/ImportExportType.php @@ -14,7 +14,7 @@ class ImportExportType extends Enum public const FLIGHTS = 6; public const SUBFLEETS = 7; - public static $labels = [ + public static array $labels = [ self::AIRLINE => 'airline', self::AIRCRAFT => 'aircraft', self::AIRPORT => 'airport', diff --git a/app/Models/Enums/NavaidType.php b/app/Models/Enums/NavaidType.php index f663fb51..a35df05d 100644 --- a/app/Models/Enums/NavaidType.php +++ b/app/Models/Enums/NavaidType.php @@ -30,7 +30,7 @@ class NavaidType extends Enum * * @var array */ - public static $labels = [ + public static array $labels = [ self::VOR => 'VOR', self::VOR_DME => 'VOR DME', self::LOC => 'Localizer', diff --git a/app/Models/Enums/PageType.php b/app/Models/Enums/PageType.php index a9215703..8318c125 100644 --- a/app/Models/Enums/PageType.php +++ b/app/Models/Enums/PageType.php @@ -9,7 +9,7 @@ class PageType extends Enum public const PAGE = 0; public const LINK = 1; - public static $labels = [ + public static array $labels = [ self::PAGE => 'Page', self::LINK => 'Link', ]; diff --git a/app/Models/Enums/PirepSource.php b/app/Models/Enums/PirepSource.php index bbcd003e..bc70b4ae 100644 --- a/app/Models/Enums/PirepSource.php +++ b/app/Models/Enums/PirepSource.php @@ -9,7 +9,7 @@ class PirepSource extends Enum public const MANUAL = 0; public const ACARS = 1; - protected static $labels = [ + protected static array $labels = [ self::MANUAL => 'pireps.source_types.manual', self::ACARS => 'pireps.source_types.acars', ]; diff --git a/app/Models/Enums/PirepState.php b/app/Models/Enums/PirepState.php index 2d766718..30789bc6 100644 --- a/app/Models/Enums/PirepState.php +++ b/app/Models/Enums/PirepState.php @@ -15,7 +15,7 @@ class PirepState extends Enum public const REJECTED = 6; public const PAUSED = 7; - protected static $labels = [ + protected static array $labels = [ self::IN_PROGRESS => 'pireps.state.in_progress', self::PENDING => 'pireps.state.pending', self::ACCEPTED => 'pireps.state.accepted', diff --git a/app/Models/Enums/PirepStatus.php b/app/Models/Enums/PirepStatus.php index c5d566b0..9aa25fdd 100644 --- a/app/Models/Enums/PirepStatus.php +++ b/app/Models/Enums/PirepStatus.php @@ -36,7 +36,7 @@ class PirepStatus extends Enum public const EMERG_DESCENT = 'EMG'; public const PAUSED = 'PSD'; - protected static $labels = [ + protected static array $labels = [ self::INITIATED => 'pireps.status.initialized', self::SCHEDULED => 'pireps.status.scheduled', self::BOARDING => 'pireps.status.boarding', diff --git a/app/Models/Enums/UserState.php b/app/Models/Enums/UserState.php index 906e9069..311b3643 100644 --- a/app/Models/Enums/UserState.php +++ b/app/Models/Enums/UserState.php @@ -13,7 +13,7 @@ class UserState extends Enum public const SUSPENDED = 4; public const DELETED = 5; - protected static $labels = [ + protected static array $labels = [ self::PENDING => 'user.state.pending', self::ACTIVE => 'user.state.active', self::REJECTED => 'user.state.rejected', diff --git a/app/Models/Expense.php b/app/Models/Expense.php index 23063bed..5de2fd5c 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -3,22 +3,26 @@ namespace App\Models; use App\Contracts\Model; +use App\Models\Casts\CommaDelimitedCast; use App\Models\Traits\ReferenceTrait; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** - * @property int airline_id - * @property float amount - * @property string name - * @property string type - * @property string flight_type - * @property string ref_model - * @property string ref_model_id - * @property bool charge_to_user + * @property int airline_id + * @property float amount + * @property string name + * @property string type + * @property string flight_type + * @property string ref_model + * @property string ref_model_id + * @property bool charge_to_user + * @property Airline $airline * * @mixin \Illuminate\Database\Eloquent\Builder */ class Expense extends Model { + use HasFactory; use ReferenceTrait; public $table = 'expenses'; @@ -36,6 +40,10 @@ class Expense extends Model 'active', ]; + public $casts = [ + 'flight_type' => CommaDelimitedCast::class, + ]; + public static $rules = [ 'active' => 'bool', 'airline_id' => 'integer', @@ -44,34 +52,6 @@ class Expense extends Model 'charge_to_user' => 'bool', ]; - /** - * flight_type is stored a comma delimited list in table. Retrieve it as an array - * - * @return array - */ - public function getFlightTypeAttribute() - { - if (empty(trim($this->attributes['flight_type']))) { - return []; - } - - return explode(',', $this->attributes['flight_type']); - } - - /** - * Make sure the flight type is stored a comma-delimited list in the table - * - * @param string $value - */ - public function setFlightTypeAttribute($value) - { - if (is_array($value)) { - $this->attributes['flight_type'] = implode(',', $value); - } else { - $this->attributes['flight_type'] = trim($value); - } - } - /** * Foreign Keys */ diff --git a/app/Models/Fare.php b/app/Models/Fare.php index f8800255..a0f4635b 100644 --- a/app/Models/Fare.php +++ b/app/Models/Fare.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * @property string name @@ -17,6 +18,8 @@ use App\Contracts\Model; */ class Fare extends Model { + use HasFactory; + public $table = 'fares'; protected $fillable = [ diff --git a/app/Models/File.php b/app/Models/File.php index 4dbbc244..caa3bd3b 100644 --- a/app/Models/File.php +++ b/app/Models/File.php @@ -5,6 +5,7 @@ namespace App\Models; use App\Contracts\Model; use App\Models\Traits\HashIdTrait; use App\Models\Traits\ReferenceTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; @@ -26,9 +27,11 @@ class File extends Model public $table = 'files'; protected $keyType = 'string'; + public $incrementing = false; protected $fillable = [ + 'id', 'name', 'description', 'disk', @@ -51,52 +54,64 @@ class File extends Model /** * Return the file extension * - * @return string + * @return Attribute */ - public function getExtensionAttribute(): string + public function extension(): Attribute { - if (!$this->pathinfo) { - $this->pathinfo = pathinfo($this->path); - } + return Attribute::make( + get: function ($_, $attrs) { + if (!$this->pathinfo) { + $this->pathinfo = pathinfo($this->path); + } - return $this->pathinfo['extension']; + return $this->pathinfo['extension']; + } + ); } /** * Get just the filename * - * @return string + * @return Attribute */ - public function getFilenameAttribute(): string + public function filename(): Attribute { - if (!$this->pathinfo) { - $this->pathinfo = pathinfo($this->path); - } + return Attribute::make( + get: function ($_, $attrs) { + if (!$this->pathinfo) { + $this->pathinfo = pathinfo($this->path); + } - return $this->pathinfo['filename'].'.'.$this->pathinfo['extension']; + return $this->pathinfo['filename'].'.'.$this->pathinfo['extension']; + } + ); } /** * Get the full URL to this attribute * - * @return string + * @return Attribute */ - public function getUrlAttribute(): string + public function url(): Attribute { - if (Str::startsWith($this->path, 'http')) { - return $this->path; - } + return Attribute::make( + get: function ($_, $attrs) { + if (Str::startsWith($this->path, 'http')) { + return $this->path; + } - $disk = $this->disk ?? config('filesystems.public_files'); + $disk = $this->disk ?? config('filesystems.public_files'); - // If the disk isn't stored in public (S3 or something), - // just pass through the URL call - if ($disk !== 'public') { - return Storage::disk(config('filesystems.public_files')) - ->url($this->path); - } + // If the disk isn't stored in public (S3 or something), + // just pass through the URL call + if ($disk !== 'public') { + return Storage::disk(config('filesystems.public_files')) + ->url($this->path); + } - // Otherwise, figure out the public URL and save there - return public_asset(Storage::disk('public')->url($this->path)); + // Otherwise, figure out the public URL and save there + return public_asset(Storage::disk('public')->url($this->path)); + } + ); } } diff --git a/app/Models/Flight.php b/app/Models/Flight.php index 78a81cb0..18032969 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -3,10 +3,13 @@ namespace App\Models; use App\Contracts\Model; +use App\Models\Casts\DistanceCast; use App\Models\Enums\Days; use App\Models\Traits\HashIdTrait; use App\Support\Units\Distance; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Support\Collection; /** @@ -23,8 +26,8 @@ use Illuminate\Support\Collection; * @property Collection fares * @property Collection subfleets * @property int days - * @property int distance - * @property int planned_distance + * @property Distance distance + * @property Distance planned_distance * @property int flight_time * @property string route * @property string dpt_time @@ -48,14 +51,17 @@ use Illuminate\Support\Collection; class Flight extends Model { use HashIdTrait; + use HasFactory; public $table = 'flights'; /** The form wants this */ public $hours; + public $minutes; protected $keyType = 'string'; + public $incrementing = false; protected $fillable = [ @@ -91,7 +97,7 @@ class Flight extends Model 'flight_number' => 'integer', 'days' => 'integer', 'level' => 'integer', - 'distance' => 'float', + 'distance' => DistanceCast::class, 'flight_time' => 'integer', 'start_date' => 'date', 'end_date' => 'date', @@ -139,36 +145,24 @@ class Flight extends Model /** * Get the flight ident, e.,g JBU1900/C.nn/L.yy */ - public function getIdentAttribute(): string + public function ident(): Attribute { - $flight_id = optional($this->airline)->code; - $flight_id .= $this->flight_number; + return Attribute::make( + get: function ($_, $attrs) { + $flight_id = optional($this->airline)->code; + $flight_id .= $this->flight_number; - if (filled($this->route_code)) { - $flight_id .= '/C.'.$this->route_code; - } + if (filled($this->route_code)) { + $flight_id .= '/C.'.$this->route_code; + } - if (filled($this->route_leg)) { - $flight_id .= '/L.'.$this->route_leg; - } + if (filled($this->route_leg)) { + $flight_id .= '/L.'.$this->route_leg; + } - return $flight_id; - } - - /** - * Set the distance unit, convert to our internal default unit - * - * @param $value - */ - public function setDistanceAttribute($value): void - { - if ($value instanceof Distance) { - $this->attributes['distance'] = $value->toUnit( - config('phpvms.internal_units.distance') - ); - } else { - $this->attributes['distance'] = $value; - } + return $flight_id; + } + ); } /** @@ -202,20 +196,25 @@ class Flight extends Model * Set the days parameter. If an array is passed, it's * AND'd together to create the mask value * - * @param array|int $val + * @return Attribute */ - public function setDaysAttribute($val): void + public function days(): Attribute { - if (\is_array($val)) { - $val = Days::getDaysMask($val); - } + return Attribute::make( + set: function ($value) { + if (\is_array($value)) { + $value = Days::getDaysMask($value); + } - $this->attributes['days'] = $val; + return $value; + } + ); } - /** - * Relationship + /* + * Relationships */ + public function airline() { return $this->belongsTo(Airline::class, 'airline_id'); diff --git a/app/Models/FlightField.php b/app/Models/FlightField.php index 40dad611..edfe8bd5 100644 --- a/app/Models/FlightField.php +++ b/app/Models/FlightField.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * Class FlightField @@ -33,11 +34,15 @@ class FlightField extends Model /** * When setting the name attribute, also set the slug * - * @param $name + * @return Attribute */ - public function setNameAttribute($name): void + public function name(): Attribute { - $this->attributes['name'] = $name; - $this->attributes['slug'] = str_slug($name); + return Attribute::make( + set: fn ($name) => [ + 'name' => $name, + 'slug' => str_slug($name), + ] + ); } } diff --git a/app/Models/FlightFieldValue.php b/app/Models/FlightFieldValue.php index f835c24a..28b6a546 100644 --- a/app/Models/FlightFieldValue.php +++ b/app/Models/FlightFieldValue.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * Class FlightFieldValue @@ -25,12 +26,18 @@ class FlightFieldValue extends Model public static $rules = []; /** - * @param $name + * When setting the name attribute, also set the slug + * + * @return Attribute */ - public function setNameAttribute($name): void + public function name(): Attribute { - $this->attributes['name'] = $name; - $this->attributes['slug'] = str_slug($name); + return Attribute::make( + set: fn ($name) => [ + 'name' => $name, + 'slug' => str_slug($name), + ] + ); } /** diff --git a/app/Models/Journal.php b/app/Models/Journal.php index 136beb6c..76f35ce7 100644 --- a/app/Models/Journal.php +++ b/app/Models/Journal.php @@ -7,8 +7,10 @@ namespace App\Models; use App\Contracts\Model; +use App\Models\Casts\MoneyCast; use App\Support\Money; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * Holds various journals, depending on the morphed_type and morphed_id columns @@ -25,6 +27,8 @@ use Carbon\Carbon; */ class Journal extends Model { + use HasFactory; + protected $table = 'journals'; protected $fillable = [ @@ -36,6 +40,10 @@ class Journal extends Model 'morphed_id', ]; + public $casts = [ + 'balance' => MoneyCast::class, + ]; + protected $dates = [ 'created_at', 'deleted_at', @@ -100,34 +108,6 @@ class Journal extends Model $this->save(); } - /** - * @param $value - * - * @throws \UnexpectedValueException - * @throws \InvalidArgumentException - * - * @return Money - */ - public function getBalanceAttribute($value): Money - { - return new Money($value); - } - - /** - * @param $value - * - * @throws \UnexpectedValueException - * @throws \InvalidArgumentException - */ - public function setBalanceAttribute($value): void - { - $value = ($value instanceof Money) - ? $value - : new Money($value); - - $this->attributes['balance'] = $value ? (int) $value->getAmount() : null; - } - /** * @param Journal $object * diff --git a/app/Models/JournalTransaction.php b/app/Models/JournalTransaction.php index 1311fb25..8aac16ea 100644 --- a/app/Models/JournalTransaction.php +++ b/app/Models/JournalTransaction.php @@ -8,6 +8,7 @@ namespace App\Models; use App\Contracts\Model; use App\Models\Traits\ReferenceTrait; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * @property string id UUID type @@ -23,6 +24,7 @@ use App\Models\Traits\ReferenceTrait; */ class JournalTransaction extends Model { + use HasFactory; use ReferenceTrait; protected $table = 'journal_transactions'; diff --git a/app/Models/Navdata.php b/app/Models/Navdata.php index d079a11c..3a1ef465 100644 --- a/app/Models/Navdata.php +++ b/app/Models/Navdata.php @@ -3,13 +3,19 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; class Navdata extends Model { + use HasFactory; + public $table = 'navdata'; protected $keyType = 'string'; + public $timestamps = false; + public $incrementing = false; protected $fillable = [ @@ -31,10 +37,12 @@ class Navdata extends Model /** * Make sure the ID is in all caps * - * @param $id + * @return Attribute */ - public function setIdAttribute($id): void + public function id(): Attribute { - $this->attributes['id'] = strtoupper($id); + return Attribute::make( + set: fn ($id) => strtoupper($id) + ); } } diff --git a/app/Models/News.php b/app/Models/News.php index 91083981..0d204f42 100644 --- a/app/Models/News.php +++ b/app/Models/News.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Notifications\Notifiable; /** @@ -14,6 +15,7 @@ use Illuminate\Notifications\Notifiable; */ class News extends Model { + use HasFactory; use Notifiable; public $table = 'news'; diff --git a/app/Models/Page.php b/app/Models/Page.php index 2e124fed..4f9fc4a3 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -5,6 +5,7 @@ namespace App\Models; use App\Contracts\Model; use App\Exceptions\UnknownPageType; use App\Models\Enums\PageType; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property int id @@ -52,16 +53,20 @@ class Page extends Model * * @throws \App\Exceptions\UnknownPageType */ - public function getUrlAttribute(): string + public function url(): Attribute { - if ($this->type === PageType::PAGE) { - return url(route('frontend.pages.show', ['slug' => $this->slug])); - } + return Attribute::make( + get: function ($value, $attrs) { + if ($this->type === PageType::PAGE) { + return url(route('frontend.pages.show', ['slug' => $this->slug])); + } - if ($this->type === PageType::LINK) { - return $this->link; - } + if ($this->type === PageType::LINK) { + return $this->link; + } - throw new UnknownPageType($this); + throw new UnknownPageType($this); + } + ); } } diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index 45e52ae0..5dfa5fc7 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -5,6 +5,9 @@ namespace App\Models; use App\Contracts\Model; use App\Events\PirepStateChange; use App\Events\PirepStatusChange; +use App\Models\Casts\CarbonCast; +use App\Models\Casts\DistanceCast; +use App\Models\Casts\FuelCast; use App\Models\Enums\AcarsType; use App\Models\Enums\PirepFieldSource; use App\Models\Enums\PirepState; @@ -12,6 +15,8 @@ use App\Models\Traits\HashIdTrait; use App\Support\Units\Distance; use App\Support\Units\Fuel; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Collection; use Kleemans\AttributeEvents; @@ -37,10 +42,10 @@ use Kleemans\AttributeEvents; * @property int block_time * @property int flight_time In minutes * @property int planned_flight_time - * @property float block_fuel - * @property float fuel_used - * @property float distance - * @property float planned_distance + * @property Fuel block_fuel + * @property Fuel fuel_used + * @property Distance distance + * @property Distance planned_distance * @property int level * @property string route * @property int score @@ -63,15 +68,18 @@ class Pirep extends Model { use AttributeEvents; use HashIdTrait; + use HasFactory; use Notifiable; public $table = 'pireps'; protected $keyType = 'string'; + public $incrementing = false; /** The form wants this */ public $hours; + public $minutes; protected $fillable = [ @@ -116,18 +124,21 @@ class Pirep extends Model 'airline_id' => 'integer', 'aircraft_id' => 'integer', 'level' => 'integer', - 'distance' => 'float', - 'planned_distance' => 'float', + 'distance' => DistanceCast::class, + 'planned_distance' => DistanceCast::class, 'block_time' => 'integer', + 'block_off_time' => CarbonCast::class, + 'block_on_time' => CarbonCast::class, 'flight_time' => 'integer', 'planned_flight_time' => 'integer', 'zfw' => 'float', - 'block_fuel' => 'float', - 'fuel_used' => 'float', + 'block_fuel' => FuelCast::class, + 'fuel_used' => FuelCast::class, 'landing_rate' => 'float', 'score' => 'integer', 'source' => 'integer', 'state' => 'integer', + 'submitted_at' => CarbonCast::class, ]; public static $rules = [ @@ -217,193 +228,112 @@ class Pirep extends Model /** * Get the flight ident, e.,g JBU1900/C.nn/L.yy */ - public function getIdentAttribute(): string + public function ident(): Attribute { - $flight_id = optional($this->airline)->code; - $flight_id .= $this->flight_number; + return Attribute::make( + get: function ($value, $attrs) { + $flight_id = optional($this->airline)->code; + $flight_id .= $this->flight_number; - if (filled($this->route_code)) { - $flight_id .= '/C.'.$this->route_code; - } + if (filled($this->route_code)) { + $flight_id .= '/C.'.$this->route_code; + } - if (filled($this->route_leg)) { - $flight_id .= '/L.'.$this->route_leg; - } + if (filled($this->route_leg)) { + $flight_id .= '/L.'.$this->route_leg; + } - return $flight_id; - } - - /** - * Return the block off time in carbon format - * - * @return Carbon|null - */ - public function getBlockOffTimeAttribute() - { - if (array_key_exists('block_off_time', $this->attributes)) { - return new Carbon($this->attributes['block_off_time']); - } - } - - /** - * Return the block on time - * - * @return Carbon|null - */ - public function getBlockOnTimeAttribute() - { - if (array_key_exists('block_on_time', $this->attributes)) { - return new Carbon($this->attributes['block_on_time']); - } - } - - /** - * Return the block on time - * - * @return Carbon - */ - public function getSubmittedAtAttribute() - { - if (array_key_exists('submitted_at', $this->attributes)) { - return new Carbon($this->attributes['submitted_at']); - } - } - - /** - * Set the distance unit, convert to our internal default unit - * - * @param $value - */ - public function setDistanceAttribute($value): void - { - if ($value instanceof Distance) { - $this->attributes['distance'] = $value->toUnit( - config('phpvms.internal_units.distance') - ); - } else { - $this->attributes['distance'] = $value; - } + return $flight_id; + } + ); } /** * Return if this PIREP can be edited or not */ - public function getReadOnlyAttribute(): bool + public function readOnly(): Attribute { - return \in_array($this->state, static::$read_only_states, true); + return Attribute::make( + get: fn ($_, $attrs) => \in_array($this->state, static::$read_only_states, true) + ); } /** * Return the flight progress in a percent. */ - public function getProgressPercentAttribute() + public function progressPercent(): Attribute { - $distance = $this->distance; + return Attribute::make( + get: function ($_, $attrs) { + $distance = $attrs['distance']; - $upper_bound = $distance; - if ($this->planned_distance) { - $upper_bound = $this->planned_distance; - } + $upper_bound = $distance; + if ($attrs['planned_distance']) { + $upper_bound = $attrs['planned_distance']; + } - $upper_bound = empty($upper_bound) ? 1 : $upper_bound; - $distance = empty($distance) ? $upper_bound : $distance; + $upper_bound = empty($upper_bound) ? 1 : $upper_bound; + $distance = empty($distance) ? $upper_bound : $distance; - return round(($distance / $upper_bound) * 100, 0); + return round(($distance / $upper_bound) * 100); + } + ); } /** * Get the pirep_fields and then the pirep_field_values and * merge them together. If a field value doesn't exist then add in a fake one */ - public function getFieldsAttribute() + public function fields(): Attribute { - $custom_fields = PirepField::all(); - $field_values = PirepFieldValue::where('pirep_id', $this->id) - ->orderBy('created_at', 'asc') - ->get(); + return Attribute::make( + get: function ($_, $attrs) { + $custom_fields = PirepField::all(); + $field_values = PirepFieldValue::where('pirep_id', $this->id) + ->orderBy('created_at', 'asc') + ->get(); - // Merge the field values into $fields - foreach ($custom_fields as $field) { - $has_value = $field_values->firstWhere('slug', $field->slug); - if (!$has_value) { - $field_values->push(new PirepFieldValue([ - 'pirep_id' => $this->id, - 'name' => $field->name, - 'slug' => $field->slug, - 'value' => '', - 'source' => PirepFieldSource::MANUAL, - ])); + // Merge the field values into $fields + foreach ($custom_fields as $field) { + $has_value = $field_values->firstWhere('slug', $field->slug); + if (!$has_value) { + $field_values->push( + new PirepFieldValue([ + 'pirep_id' => $this->id, + 'name' => $field->name, + 'slug' => $field->slug, + 'value' => '', + 'source' => PirepFieldSource::MANUAL, + ]) + ); + } + } + + return $field_values; } - } - - return $field_values; - } - - /** - * Set the amount of block fuel - * - * @param $value - */ - public function setBlockFuelAttribute($value): void - { - if ($value instanceof Fuel) { - $this->attributes['block_fuel'] = $value->toUnit( - config('phpvms.internal_units.fuel') - ); - } else { - $this->attributes['block_fuel'] = $value; - } - } - - /** - * Set the amount of fuel used - * - * @param $value - */ - public function setFuelUsedAttribute($value): void - { - if ($value instanceof Fuel) { - $this->attributes['fuel_used'] = $value->toUnit( - config('phpvms.internal_units.fuel') - ); - } else { - $this->attributes['fuel_used'] = $value; - } - } - - /** - * Set the distance unit, convert to our internal default unit - * - * @param $value - */ - public function setPlannedDistanceAttribute($value): void - { - if ($value instanceof Distance) { - $this->attributes['planned_distance'] = $value->toUnit( - config('phpvms.internal_units.distance') - ); - } else { - $this->attributes['planned_distance'] = $value; - } + ); } /** * Do some cleanup on the route * - * @param $route + * @return Attribute */ - public function setRouteAttribute($route): void + public function route(): Attribute { - $route = strtoupper(trim($route)); - $this->attributes['route'] = $route; + return Attribute::make( + set: fn ($route) => strtoupper(trim($route)) + ); } /** * Return if this is cancelled or not */ - public function getCancelledAttribute(): bool + public function cancelled(): Attribute { - return $this->state === PirepState::CANCELLED; + return Attribute::make( + get: fn ($_, $attrs) => $this->state === PirepState::CANCELLED + ); } /** diff --git a/app/Models/PirepComment.php b/app/Models/PirepComment.php index f7c0bd5a..967b932e 100644 --- a/app/Models/PirepComment.php +++ b/app/Models/PirepComment.php @@ -3,12 +3,15 @@ namespace App\Models; use App\Contracts\Model; +use Carbon\Carbon; /** * @property string $pirep_id + * @property string $comment * @property int $user_id * @property Pirep $pirep * @property User $user + * @property Carbon $created_at */ class PirepComment extends Model { diff --git a/app/Models/PirepField.php b/app/Models/PirepField.php index 0a5cbb95..51c81db7 100644 --- a/app/Models/PirepField.php +++ b/app/Models/PirepField.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property string name @@ -30,11 +31,15 @@ class PirepField extends Model /** * When setting the name attribute, also set the slug * - * @param $name + * @return Attribute */ - public function setNameAttribute($name): void + public function name(): Attribute { - $this->attributes['name'] = $name; - $this->attributes['slug'] = str_slug($name); + return Attribute::make( + set: fn ($name) => [ + 'name' => $name, + 'slug' => str_slug($name), + ] + ); } } diff --git a/app/Models/PirepFieldValue.php b/app/Models/PirepFieldValue.php index 0f67e4ec..5c02178a 100644 --- a/app/Models/PirepFieldValue.php +++ b/app/Models/PirepFieldValue.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Contracts\Model; use App\Models\Enums\PirepFieldSource; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property string pirep_id @@ -35,23 +36,31 @@ class PirepFieldValue extends Model 'source' => 'integer', ]; + /** + * When setting the name attribute, also set the slug + * + * @return Attribute + */ + public function name(): Attribute + { + return Attribute::make( + set: fn ($name) => [ + 'name' => $name, + 'slug' => str_slug($name), + ] + ); + } + /** * If it was filled in from ACARS, then it's read only * * @return bool */ - public function getReadOnlyAttribute() + public function readOnly(): Attribute { - return $this->source === PirepFieldSource::ACARS; - } - - /** - * @param $name - */ - public function setNameAttribute($name): void - { - $this->attributes['name'] = $name; - $this->attributes['slug'] = str_slug($name); + return Attribute::make( + get: fn ($_, $attrs) => $this->source === PirepFieldSource::ACARS + ); } /** diff --git a/app/Models/Rank.php b/app/Models/Rank.php index f49d271d..913dc973 100644 --- a/app/Models/Rank.php +++ b/app/Models/Rank.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * @property string name @@ -15,6 +16,8 @@ use App\Contracts\Model; */ class Rank extends Model { + use HasFactory; + public $table = 'ranks'; protected $fillable = [ diff --git a/app/Models/Role.php b/app/Models/Role.php index 65454112..24c807ad 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Laratrust\Models\LaratrustRole; /** @@ -15,6 +16,8 @@ use Laratrust\Models\LaratrustRole; */ class Role extends LaratrustRole { + use HasFactory; + protected $fillable = [ 'id', 'name', diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 179cde6f..4a503429 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property string id @@ -12,6 +13,7 @@ use App\Contracts\Model; * @property string group * @property string type * @property string options + * @property int order * @property string description */ class Setting extends Model @@ -40,9 +42,9 @@ class Setting extends Model /** * @param $key * - * @return mixed + * @return string */ - public static function formatKey($key) + public static function formatKey($key): string { return str_replace('.', '_', strtolower($key)); } @@ -50,21 +52,24 @@ class Setting extends Model /** * Force formatting the key * - * @param $id + * @return Attribute */ - public function setIdAttribute($id): void + public function id(): Attribute { - $id = strtolower($id); - $this->attributes['id'] = self::formatKey($id); + return Attribute::make( + get: fn ($id, $attrs) => self::formatKey(strtolower($id)) + ); } /** * Set the key to lowercase * - * @param $key + * @return Attribute */ - public function setKeyAttribute($key): void + public function key(): Attribute { - $this->attributes['key'] = strtolower($key); + return Attribute::make( + set: fn ($key) => strtolower($key) + ); } } diff --git a/app/Models/SimBrief.php b/app/Models/SimBrief.php index 2e35d8bc..791fef9f 100644 --- a/app/Models/SimBrief.php +++ b/app/Models/SimBrief.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Support\Collection; /** @@ -25,6 +26,8 @@ use Illuminate\Support\Collection; */ class SimBrief extends Model { + use HasFactory; + public $table = 'simbrief'; public $incrementing = false; diff --git a/app/Models/Subfleet.php b/app/Models/Subfleet.php index 3a328d4c..93b79c62 100644 --- a/app/Models/Subfleet.php +++ b/app/Models/Subfleet.php @@ -6,6 +6,8 @@ use App\Contracts\Model; use App\Models\Enums\AircraftStatus; use App\Models\Traits\ExpensableTrait; use App\Models\Traits\FilesTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; /** * @property int id @@ -26,6 +28,7 @@ class Subfleet extends Model { use ExpensableTrait; use FilesTrait; + use HasFactory; public $fillable = [ 'airline_id', @@ -64,12 +67,13 @@ class Subfleet extends Model ]; /** - * @param $type + * @return Attribute */ - public function setTypeAttribute($type) + public function type(): Attribute { - $type = str_replace([' ', ','], ['-', ''], $type); - $this->attributes['type'] = $type; + return Attribute::make( + set: fn ($type) => str_replace([' ', ','], ['-', ''], $type) + ); } /** diff --git a/app/Models/User.php b/app/Models/User.php index 7d56d8ba..2a42a444 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -4,6 +4,8 @@ namespace App\Models; use App\Models\Enums\JournalType; use App\Models\Traits\JournalTrait; +use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laratrust\Traits\LaratrustUserTrait; @@ -51,10 +53,11 @@ use Staudenmeir\EloquentHasManyDeep\HasRelationships; */ class User extends Authenticatable { + use HasFactory; + use HasRelationships; use JournalTrait; use LaratrustUserTrait; use Notifiable; - use HasRelationships; public $table = 'users'; @@ -128,67 +131,86 @@ class User extends Authenticatable ]; /** - * @return string + * Format the pilot ID/ident + * + * @return Attribute */ - public function getIdentAttribute(): string + public function ident(): Attribute { - $length = setting('pilots.id_length'); - $ident_code = filled(setting('pilots.id_code')) ? setting('pilots.id_code') : optional($this->airline)->icao; + return Attribute::make( + get: function ($_, $attrs) { + $length = setting('pilots.id_length'); + $ident_code = filled(setting('pilots.id_code')) ? setting( + 'pilots.id_code' + ) : optional($this->airline)->icao; - return $ident_code.str_pad($this->pilot_id, $length, '0', STR_PAD_LEFT); + return $ident_code.str_pad($attrs['pilot_id'], $length, '0', STR_PAD_LEFT); + } + ); } /** - * Return a "privatized" version of someones name - First name full, rest of the names are initials + * Return a "privatized" version of someones name - First and middle names full, last name initials * - * @return string + * @return Attribute */ - public function getNamePrivateAttribute(): string + public function namePrivate(): Attribute { - $name_parts = explode(' ', $this->attributes['name']); - $count = count($name_parts); - if ($count === 1) { - return $name_parts[0]; - } + return Attribute::make( + get: function ($_, $attrs) { + $name_parts = explode(' ', $attrs['name']); + $count = count($name_parts); + if ($count === 1) { + return $name_parts[0]; + } - $first_name = $name_parts[0]; - $last_name = $name_parts[$count - 1]; + $gdpr_name = ''; + $last_name = $name_parts[$count - 1]; + $loop_count = 0; - return $first_name.' '.mb_substr($last_name, 0, 1); + while ($loop_count < ($count - 1)) { + $gdpr_name .= $name_parts[$loop_count].' '; + $loop_count++; + } + + $gdpr_name .= mb_substr($last_name, 0, 1); + + return mb_convert_case($gdpr_name, MB_CASE_TITLE); + } + ); } /** - * Shorthand for getting the timezone + * Shortcut for timezone * - * @return string + * @return Attribute */ - public function getTzAttribute(): string + public function tz(): Attribute { - return $this->timezone; - } - - /** - * Shorthand for setting the timezone - * - * @param $value - */ - public function setTzAttribute($value) - { - $this->attributes['timezone'] = $value; + return Attribute::make( + get: fn ($_, $attrs) => $attrs['timezone'], + set: fn ($value) => [ + 'timezone' => $value, + ] + ); } /** * Return a File model */ - public function getAvatarAttribute() + public function avatar(): Attribute { - if (!$this->attributes['avatar']) { - return null; - } + return Attribute::make( + get: function ($_, $attrs) { + if (!$attrs['avatar']) { + return null; + } - return new File([ - 'path' => $this->attributes['avatar'], - ]); + return new File([ + 'path' => $attrs['avatar'], + ]); + } + ); } /** @@ -211,10 +233,12 @@ class User extends Authenticatable public function resolveAvatarUrl() { - $avatar = $this->getAvatarAttribute(); + /** @var File $avatar */ + $avatar = $this->avatar; if (empty($avatar)) { return $this->gravatar(); } + return $avatar->url; } @@ -276,11 +300,19 @@ class User extends Authenticatable public function typeratings() { - return $this->belongsToMany(Typerating::class, 'typerating_user', 'user_id', 'typerating_id'); + return $this->belongsToMany( + Typerating::class, + 'typerating_user', + 'user_id', + 'typerating_id' + ); } public function rated_subfleets() { - return $this->hasManyDeep(Subfleet::class, ['typerating_user', Typerating::class, 'typerating_subfleet']); + return $this->hasManyDeep( + Subfleet::class, + ['typerating_user', Typerating::class, 'typerating_subfleet'] + ); } } diff --git a/app/Models/UserField.php b/app/Models/UserField.php index a723437b..098a4264 100644 --- a/app/Models/UserField.php +++ b/app/Models/UserField.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property string name @@ -40,10 +41,12 @@ class UserField extends Model /** * Get the slug so we can use it in forms * - * @return string + * @return Attribute */ - public function getSlugAttribute(): string + public function slug(): Attribute { - return str_slug($this->name, '_'); + return Attribute::make( + get: fn ($_, $attrs) => str_slug($attrs['name'], '_') + ); } } diff --git a/app/Models/UserFieldValue.php b/app/Models/UserFieldValue.php index a4cc2f97..d3de669e 100644 --- a/app/Models/UserFieldValue.php +++ b/app/Models/UserFieldValue.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Contracts\Model; +use Illuminate\Database\Eloquent\Casts\Attribute; /** * @property string name @@ -25,9 +26,11 @@ class UserFieldValue extends Model /** * Return related field's name along with field values */ - public function getNameAttribute(): string + public function name(): Attribute { - return optional($this->field)->name; + return Attribute::make( + get: fn ($_, $attrs) => optional($this->field)->name + ); } /** diff --git a/app/Notifications/Messages/Broadcast/PirepFiled.php b/app/Notifications/Messages/Broadcast/PirepFiled.php index 0c7fb170..afaa5652 100644 --- a/app/Notifications/Messages/Broadcast/PirepFiled.php +++ b/app/Notifications/Messages/Broadcast/PirepFiled.php @@ -5,11 +5,8 @@ namespace App\Notifications\Messages\Broadcast; use App\Contracts\Notification; use App\Models\Pirep; use App\Notifications\Channels\Discord\DiscordMessage; -use App\Support\Units\Distance; use App\Support\Units\Time; use Illuminate\Contracts\Queue\ShouldQueue; -use PhpUnitsOfMeasure\Exception\NonNumericValue; -use PhpUnitsOfMeasure\Exception\NonStringUnitName; class PirepFiled extends Notification implements ShouldQueue { @@ -42,25 +39,7 @@ class PirepFiled extends Notification implements ShouldQueue public function toDiscordChannel($pirep): ?DiscordMessage { $title = 'Flight '.$pirep->ident.' Filed'; - $fields = [ - 'Dep.Airport' => $pirep->dpt_airport_id, - 'Arr.Airport' => $pirep->arr_airport_id, - 'Equipment' => $pirep->aircraft->ident, - 'Flight Time' => Time::minutesToTimeString($pirep->flight_time), - ]; - - if ($pirep->distance) { - try { - $distance = new Distance( - $pirep->distance, - config('phpvms.internal_units.distance') - ); - - $pd = $distance[$distance->unit].' '.$distance->unit; - $fields['Distance'] = $pd; - } catch (NonNumericValue|NonStringUnitName $e) { - } - } + $fields = $this->createFields($pirep); // User avatar, somehow $pirep->user->resolveAvatarUrl() is not being accepted by Discord as thumbnail $user_avatar = !empty($pirep->user->avatar) ? $pirep->user->avatar->url : $pirep->user->gravatar(256); @@ -79,6 +58,27 @@ class PirepFiled extends Notification implements ShouldQueue ->fields($fields); } + /** + * @param Pirep $pirep + * + * @return array + */ + public function createFields(Pirep $pirep): array + { + $fields = [ + 'Dep.Airport' => $pirep->dpt_airport_id, + 'Arr.Airport' => $pirep->arr_airport_id, + 'Equipment' => $pirep->aircraft->ident, + 'Flight Time' => Time::minutesToTimeString($pirep->flight_time), + ]; + + if ($pirep->distance) { + $fields['Distance'] = $pirep->distance->local(2).' '.setting('units.distance'); + } + + return $fields; + } + /** * Get the array representation of the notification. * diff --git a/app/Notifications/Messages/Broadcast/PirepPrefiled.php b/app/Notifications/Messages/Broadcast/PirepPrefiled.php index 6f1b27eb..c5f6d3ad 100644 --- a/app/Notifications/Messages/Broadcast/PirepPrefiled.php +++ b/app/Notifications/Messages/Broadcast/PirepPrefiled.php @@ -6,11 +6,8 @@ use App\Contracts\Notification; use App\Models\Pirep; use App\Notifications\Channels\Discord\DiscordMessage; use App\Notifications\Channels\Discord\DiscordWebhook; -use App\Support\Units\Distance; use App\Support\Units\Time; use Illuminate\Contracts\Queue\ShouldQueue; -use PhpUnitsOfMeasure\Exception\NonNumericValue; -use PhpUnitsOfMeasure\Exception\NonStringUnitName; /** * Send the PIREP accepted message to a particular user, can also be sent to Discord @@ -49,6 +46,32 @@ class PirepPrefiled extends Notification implements ShouldQueue } $title = 'Flight '.$pirep->ident.' Prefiled'; + $fields = $this->createFields($pirep); + + $dm = new DiscordMessage(); + + return $dm->webhook(setting('notifications.discord_public_webhook_url')) + ->success() + ->title($title) + ->description( + $pirep->user->discord_id ? 'Flight by <@'.$pirep->user->discord_id.'>' : '' + ) + ->url(route('frontend.pireps.show', [$pirep->id])) + ->author([ + 'name' => $pirep->user->ident.' - '.$pirep->user->name_private, + 'url' => route('frontend.profile.show', [$pirep->user_id]), + 'icon_url' => $pirep->user->resolveAvatarUrl(), + ]) + ->fields($fields); + } + + /** + * @param Pirep $pirep + * + * @return array + */ + public function createFields(Pirep $pirep): array + { $fields = [ 'Flight' => $pirep->ident, 'Departure Airport' => $pirep->dpt_airport_id, @@ -58,31 +81,10 @@ class PirepPrefiled extends Notification implements ShouldQueue ]; if ($pirep->planned_distance) { - try { - $planned_distance = new Distance( - $pirep->planned_distance, - config('phpvms.internal_units.distance') - ); - - $pd = $planned_distance[$planned_distance->unit].' '.$planned_distance->unit; - $fields['Distance (Planned)'] = $pd; - } catch (NonNumericValue $e) { - } catch (NonStringUnitName $e) { - } + $fields['Distance'] = $pirep->planned_distance->local(2).' '.setting('units.distance'); } - $dm = new DiscordMessage(); - return $dm->webhook(setting('notifications.discord_public_webhook_url')) - ->success() - ->title($title) - ->description($pirep->user->discord_id ? 'Flight by <@'.$pirep->user->discord_id.'>' : '') - ->url(route('frontend.pireps.show', [$pirep->id])) - ->author([ - 'name' => $pirep->user->ident.' - '.$pirep->user->name_private, - 'url' => route('frontend.profile.show', [$pirep->user_id]), - 'icon_url' => $pirep->user->resolveAvatarUrl(), - ]) - ->fields($fields); + return $fields; } /** diff --git a/app/Notifications/Messages/Broadcast/PirepStatusChanged.php b/app/Notifications/Messages/Broadcast/PirepStatusChanged.php index d83f60f8..87b3d10e 100644 --- a/app/Notifications/Messages/Broadcast/PirepStatusChanged.php +++ b/app/Notifications/Messages/Broadcast/PirepStatusChanged.php @@ -10,8 +10,6 @@ use App\Notifications\Channels\Discord\DiscordWebhook; use App\Support\Units\Distance; use App\Support\Units\Time; use Illuminate\Contracts\Queue\ShouldQueue; -use PhpUnitsOfMeasure\Exception\NonNumericValue; -use PhpUnitsOfMeasure\Exception\NonStringUnitName; /** * Send the PIREP accepted message to a particular user, can also be sent to Discord @@ -78,36 +76,7 @@ class PirepStatusChanged extends Notification implements ShouldQueue } $title = 'Flight '.$pirep->ident.' '.self::$verbs[$pirep->status]; - $fields = [ - 'Dep.Airport' => $pirep->dpt_airport_id, - 'Arr.Airport' => $pirep->arr_airport_id, - 'Equipment' => $pirep->aircraft->ident, - 'Flight Time' => Time::minutesToTimeString($pirep->flight_time), - ]; - - // Show the distance, but include the planned distance if it's been set - if ($pirep->distance) { - $unit = config('phpvms.internal_units.distance'); - - try { - $planned_distance = new Distance($pirep->distance, $unit); - $pd = $planned_distance[$planned_distance->unit]; - $fields['Distance'] = $pd; - - // Add the planned distance in - if ($pirep->planned_distance) { - try { - $planned_distance = new Distance($pirep->planned_distance, $unit); - $pd = $planned_distance[$planned_distance->unit]; - $fields['Distance'] .= '/'.$pd; - } catch (NonNumericValue|NonStringUnitName $e) { - } - } - - $fields['Distance'] .= ' '.$planned_distance->unit; - } catch (NonNumericValue|NonStringUnitName $e) { - } - } + $fields = $this->createFields($pirep); // User avatar, somehow $pirep->user->resolveAvatarUrl() is not being accepted by Discord as thumbnail $user_avatar = !empty($pirep->user->avatar) ? $pirep->user->avatar->url : $pirep->user->gravatar(256); @@ -121,6 +90,7 @@ class PirepStatusChanged extends Notification implements ShouldQueue PirepStatus::PAUSED, PirepStatus::EMERG_DESCENT, ]; + $color = in_array($pirep->status, $danger_types, true) ? 'ED2939' : 'FD6A02'; $dm = new DiscordMessage(); @@ -136,6 +106,38 @@ class PirepStatusChanged extends Notification implements ShouldQueue ->fields($fields); } + /** + * @param Pirep $pirep + * + * @return array + */ + public function createFields(Pirep $pirep): array + { + $fields = [ + 'Dep.Airport' => $pirep->dpt_airport_id, + 'Arr.Airport' => $pirep->arr_airport_id, + 'Equipment' => $pirep->aircraft->ident, + 'Flight Time' => Time::minutesToTimeString($pirep->flight_time), + ]; + + // Show the distance, but include the planned distance if it's been set + $fields['Distance'] = []; + if ($pirep->distance) { + $fields['Distance'][] = $pirep->distance->local(2); + } + + if ($pirep->planned_distance) { + $fields['Distance'][] = $pirep->planned_distance->local(2); + } + + if (!empty($fields['Distance'])) { + $fields['Distance'] = implode('/', $fields['Distance']); + $fields['Distance'] .= ' '.setting('units.distance'); + } + + return $fields; + } + /** * Get the array representation of the notification. * diff --git a/app/Services/AircraftService.php b/app/Services/AircraftService.php index 047c7757..8a66ba66 100644 --- a/app/Services/AircraftService.php +++ b/app/Services/AircraftService.php @@ -9,7 +9,7 @@ use App\Repositories\PirepRepository; class AircraftService extends Service { - private $pirepRepo; + private PirepRepository $pirepRepo; public function __construct(PirepRepository $pirepRepo) { diff --git a/app/Services/AirlineService.php b/app/Services/AirlineService.php index 11264de1..1fb6bb9e 100644 --- a/app/Services/AirlineService.php +++ b/app/Services/AirlineService.php @@ -11,10 +11,10 @@ use App\Repositories\SubfleetRepository; class AirlineService extends Service { - private $airlineRepo; - private $flightRepo; - private $pirepRepo; - private $subfleetRepo; + private AirlineRepository $airlineRepo; + private FlightRepository $flightRepo; + private PirepRepository $pirepRepo; + private SubfleetRepository $subfleetRepo; public function __construct( AirlineRepository $airlineRepo, @@ -33,6 +33,8 @@ class AirlineService extends Service * * @param array $attr * + * @throws \Prettus\Validator\Exceptions\ValidatorException + * * @return \App\Models\Airline */ public function createAirline(array $attr): Airline diff --git a/app/Services/AirportLookup/VaCentralLookup.php b/app/Services/AirportLookup/VaCentralLookup.php index b20b80c1..a94bedf7 100644 --- a/app/Services/AirportLookup/VaCentralLookup.php +++ b/app/Services/AirportLookup/VaCentralLookup.php @@ -9,7 +9,7 @@ use VaCentral\Exceptions\HttpException; class VaCentralLookup extends AirportLookup { - private $client; + private IVaCentral $client; public function __construct(IVaCentral $client) { diff --git a/app/Services/AirportService.php b/app/Services/AirportService.php index a134b841..c8c4fb30 100644 --- a/app/Services/AirportService.php +++ b/app/Services/AirportService.php @@ -18,9 +18,9 @@ use PhpUnitsOfMeasure\Exception\NonStringUnitName; class AirportService extends Service { - private $airportRepo; - private $lookupProvider; - private $metarProvider; + private AirportRepository $airportRepo; + private AirportLookup $lookupProvider; + private MetarProvider $metarProvider; public function __construct( AirportLookup $lookupProvider, @@ -39,17 +39,19 @@ class AirportService extends Service * * @return Metar|null */ - public function getMetar($icao) + public function getMetar($icao): ?Metar { $icao = trim($icao); if ($icao === '') { - return; + return null; } $raw_metar = $this->metarProvider->metar($icao); if ($raw_metar && $raw_metar !== '') { return new Metar($raw_metar); } + + return null; } /** @@ -59,17 +61,19 @@ class AirportService extends Service * * @return Metar|null */ - public function getTaf($icao) + public function getTaf($icao): ?Metar { $icao = trim($icao); if ($icao === '') { - return; + return null; } $raw_taf = $this->metarProvider->taf($icao); if ($raw_taf && $raw_taf !== '') { return new Metar($raw_taf, true); } + + return null; } /** diff --git a/app/Services/BidService.php b/app/Services/BidService.php index 1b427274..b0ccd2da 100644 --- a/app/Services/BidService.php +++ b/app/Services/BidService.php @@ -10,15 +10,13 @@ use App\Models\Flight; use App\Models\Pirep; use App\Models\SimBrief; use App\Models\User; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; class BidService extends Service { - /** @var FareService */ - private $fareSvc; - - /** @var FlightService */ - private $flightSvc; + private FareService $fareSvc; + private FlightService $flightSvc; public function __construct(FareService $fareSvc, FlightService $flightSvc) { @@ -29,9 +27,10 @@ class BidService extends Service /** * Get a specific bid for a user * - * @param $bid_id + * @param User $user + * @param $bid_id * - * @return \App\Models\Bid|\Illuminate\Database\Eloquent\Model|object|null + * @return Bid|null */ public function getBid(User $user, $bid_id): ?Bid { @@ -67,9 +66,9 @@ class BidService extends Service * * @param \App\Models\User $user * - * @return mixed + * @return Bid[] */ - public function findBidsForUser(User $user) + public function findBidsForUser(User $user): Collection|array|null { $with = [ 'flight', diff --git a/app/Services/CronService.php b/app/Services/CronService.php index c910c5b3..547ce754 100644 --- a/app/Services/CronService.php +++ b/app/Services/CronService.php @@ -12,7 +12,7 @@ use Symfony\Component\Process\PhpExecutableFinder; class CronService extends Service { - private $kvpRepo; + private KvpRepository $kvpRepo; public function __construct( KvpRepository $kvpRepo diff --git a/app/Services/ExportService.php b/app/Services/ExportService.php index e41b429d..800c1d68 100644 --- a/app/Services/ExportService.php +++ b/app/Services/ExportService.php @@ -58,7 +58,8 @@ class ExportService extends Service // Write the rest of the rows foreach ($collection as $row) { - $writer->insertOne($exporter->export($row)); + $ins = $exporter->export($row); + $writer->insertOne($ins); } return $path; diff --git a/app/Services/Finance/PirepFinanceService.php b/app/Services/Finance/PirepFinanceService.php index 8203294c..f2fac08c 100644 --- a/app/Services/Finance/PirepFinanceService.php +++ b/app/Services/Finance/PirepFinanceService.php @@ -27,10 +27,10 @@ use Illuminate\Support\Facades\Log; class PirepFinanceService extends Service { - private $expenseRepo; - private $fareSvc; - private $financeSvc; - private $journalRepo; + private ExpenseRepository $expenseRepo; + private FareService $fareSvc; + private FinanceService $financeSvc; + private JournalRepository $journalRepo; /** * FinanceService constructor. @@ -240,18 +240,18 @@ class PirepFinanceService extends Service if ($prev_flight) { // If there is a pirep use its values to calculate the remaining fuel // and calculate the uplifted fuel amount for this pirep - $fuel_amount = $pirep->block_fuel - ($prev_flight->block_fuel - $prev_flight->fuel_used); + $fuel_amount = $pirep->block_fuel->internal() - ($prev_flight->block_fuel->internal() - $prev_flight->fuel_used->internal()); // Aircraft has more than enough fuel in its tanks, no uplift necessary if ($fuel_amount < 0) { $fuel_amount = 0; } } else { // No pirep found for aircraft, debit full block fuel - $fuel_amount = $pirep->block_fuel; + $fuel_amount = $pirep->block_fuel->internal(); } } else { // Setting is false, switch back to basic calculation - $fuel_amount = $pirep->fuel_used; + $fuel_amount = $pirep->fuel_used->internal(); } $debit = Money::createFromAmount($fuel_amount * $fuel_cost); diff --git a/app/Services/Finance/RecurringFinanceService.php b/app/Services/Finance/RecurringFinanceService.php index e98a73a3..61398604 100644 --- a/app/Services/Finance/RecurringFinanceService.php +++ b/app/Services/Finance/RecurringFinanceService.php @@ -7,7 +7,6 @@ use App\Models\Airline; use App\Models\Enums\ExpenseType; use App\Models\Expense; use App\Models\JournalTransaction; -use App\Repositories\JournalRepository; use App\Services\FinanceService; use App\Support\Money; use Carbon\Carbon; @@ -18,13 +17,11 @@ use Illuminate\Support\Facades\Log; */ class RecurringFinanceService extends Service { - private $financeSvc; - private $journalRepo; + private FinanceService $financeSvc; - public function __construct(JournalRepository $journalRepo, FinanceService $financeSvc) + public function __construct(FinanceService $financeSvc) { $this->financeSvc = $financeSvc; - $this->journalRepo = $journalRepo; } /** diff --git a/app/Services/FinanceService.php b/app/Services/FinanceService.php index 8866e716..b7ad7598 100644 --- a/app/Services/FinanceService.php +++ b/app/Services/FinanceService.php @@ -13,8 +13,8 @@ use App\Support\Money; class FinanceService extends Service { - private $airlineRepo; - private $journalRepo; + private AirlineRepository $airlineRepo; + private JournalRepository $journalRepo; public function __construct( AirlineRepository $airlineRepo, diff --git a/app/Services/FlightService.php b/app/Services/FlightService.php index 1e4bfd8b..9a5a0ef1 100644 --- a/app/Services/FlightService.php +++ b/app/Services/FlightService.php @@ -15,11 +15,11 @@ use App\Support\Units\Time; class FlightService extends Service { - private $airportSvc; - private $fareSvc; - private $flightRepo; - private $navDataRepo; - private $userSvc; + private AirportService $airportSvc; + private FareService $fareSvc; + private FlightRepository $flightRepo; + private NavdataRepository $navDataRepo; + private UserService $userSvc; /** * FlightService constructor. diff --git a/app/Services/GeoService.php b/app/Services/GeoService.php index fe868763..89a82c64 100644 --- a/app/Services/GeoService.php +++ b/app/Services/GeoService.php @@ -18,8 +18,8 @@ use League\Geotools\Geotools; class GeoService extends Service { - private $acarsRepo; - private $navRepo; + private AcarsRepository $acarsRepo; + private NavdataRepository $navRepo; /** * GeoService constructor. diff --git a/app/Services/ImportExport/AircraftExporter.php b/app/Services/ImportExport/AircraftExporter.php index 6b9a75c2..f26978c0 100644 --- a/app/Services/ImportExport/AircraftExporter.php +++ b/app/Services/ImportExport/AircraftExporter.php @@ -31,12 +31,13 @@ class AircraftExporter extends ImportExport { $ret = []; foreach (self::$columns as $column) { - $ret[$column] = $aircraft->{$column}; + if ($column === 'subfleet') { + $ret['subfleet'] = $aircraft->subfleet->type; + } else { + $ret[$column] = $aircraft->{$column}; + } } - // Modify special fields - $ret['subfleet'] = $aircraft->subfleet->type; - return $ret; } } diff --git a/app/Services/ImportExport/ExpenseExporter.php b/app/Services/ImportExport/ExpenseExporter.php index 241d33c1..f8ff5f01 100644 --- a/app/Services/ImportExport/ExpenseExporter.php +++ b/app/Services/ImportExport/ExpenseExporter.php @@ -35,17 +35,13 @@ class ExpenseExporter extends ImportExport $ret = []; foreach (self::$columns as $col) { - $ret[$col] = $expense->{$col}; - } - - // Special fields - - if ($ret['airline']) { - $ret['airline'] = $expense->airline->icao; - } - - if ($ret['flight_type']) { - $ret['flight_type'] = $ret['flight_type'][0]; + if ($col === 'airline') { + $ret['airline'] = optional($expense->airline)->icao; + } elseif ($col === 'flight_type') { + $ret['flight_type'] = implode(',', $expense->flight_type); + } else { + $ret[$col] = $expense->{$col}; + } } // For the different expense types, instead of exporting diff --git a/app/Services/ImportExport/FlightExporter.php b/app/Services/ImportExport/FlightExporter.php index 847b6859..c59c551d 100644 --- a/app/Services/ImportExport/FlightExporter.php +++ b/app/Services/ImportExport/FlightExporter.php @@ -36,7 +36,7 @@ class FlightExporter extends ImportExport } // Modify special fields - $ret['airline'] = $ret['airline']->icao; + $ret['airline'] = $flight->airline->icao; $ret['dpt_airport'] = $flight->dpt_airport_id; $ret['arr_airport'] = $flight->arr_airport_id; diff --git a/app/Services/ImportService.php b/app/Services/ImportService.php index c761bcc4..ea141d84 100644 --- a/app/Services/ImportService.php +++ b/app/Services/ImportService.php @@ -24,7 +24,7 @@ use League\Csv\Reader; class ImportService extends Service { - protected $flightRepo; + protected FlightRepository $flightRepo; /** * ImporterService constructor. diff --git a/app/Services/ImporterService.php b/app/Services/ImporterService.php index fac8cae9..bcfe58bb 100644 --- a/app/Services/ImporterService.php +++ b/app/Services/ImporterService.php @@ -23,17 +23,17 @@ use Illuminate\Support\Facades\Log; class ImporterService extends Service { - private $CREDENTIALS_KEY = 'legacy.importer.db'; + private string $CREDENTIALS_KEY = 'legacy.importer.db'; /** * @var KvpRepository */ - private $kvpRepo; + private mixed $kvpRepo; /** * The list of importers, in proper order */ - private $importList = [ + private array $importList = [ ClearDatabase::class, RankImport::class, GroupImporter::class, diff --git a/app/Services/Installer/ConfigService.php b/app/Services/Installer/ConfigService.php index c9a01458..eccbc860 100644 --- a/app/Services/Installer/ConfigService.php +++ b/app/Services/Installer/ConfigService.php @@ -15,7 +15,7 @@ use Symfony\Component\HttpFoundation\File\Exception\FileException; class ConfigService extends Service { - protected static $defaultValues = [ + protected static array $defaultValues = [ 'APP_ENV' => 'production', 'APP_KEY' => '', 'APP_DEBUG' => false, @@ -194,10 +194,10 @@ class ConfigService extends Service // If it's mariadb, enable the emulation for prepared statements // seems to be throwing a problem on 000webhost // https://github.com/nabeelio/phpvms/issues/132 - if (strpos($version, 'mariadb') !== false) { + /*if (strpos($version, 'mariadb') !== false) { Log::info('Detected MariaDB, setting DB_EMULATE_PREPARES to true'); $opts['DB_EMULATE_PREPARES'] = true; - } + }*/ return $opts; } diff --git a/app/Services/Installer/InstallerService.php b/app/Services/Installer/InstallerService.php index a99673fb..006c0ecf 100644 --- a/app/Services/Installer/InstallerService.php +++ b/app/Services/Installer/InstallerService.php @@ -8,12 +8,12 @@ use Illuminate\Support\Facades\Log; class InstallerService extends Service { - private $migrationSvc; - private $seederSvc; + private MigrationService $migrationSvc; + private SeederService $seederSvc; /** - * @param $migrationSvc - * @param $seederSvc + * @param MigrationService $migrationSvc + * @param SeederService $seederSvc */ public function __construct(MigrationService $migrationSvc, SeederService $seederSvc) { diff --git a/app/Services/Installer/SeederService.php b/app/Services/Installer/SeederService.php index b6d5f618..8cb60d23 100644 --- a/app/Services/Installer/SeederService.php +++ b/app/Services/Installer/SeederService.php @@ -15,10 +15,10 @@ use function trim; class SeederService extends Service { - private $databaseSvc; + private DatabaseService $databaseSvc; - private $counters = []; - private $offsets = []; + private array $counters = []; + private array $offsets = []; // Map an environment to a seeder directory, if we want to share public static $seed_mapper = [ diff --git a/app/Services/Metar/AviationWeather.php b/app/Services/Metar/AviationWeather.php index 230259ea..8d35413a 100644 --- a/app/Services/Metar/AviationWeather.php +++ b/app/Services/Metar/AviationWeather.php @@ -19,8 +19,14 @@ class AviationWeather extends Metar private const TAF_URL = 'https://www.aviationweather.gov/adds/dataserver_current/httpparam?dataSource=tafs&requestType=retrieve&format=xml&hoursBeforeNow=3&mostRecent=true&stationString='; - private $httpClient; + /** + * @var HttpClient + */ + private HttpClient $httpClient; + /** + * @param HttpClient $httpClient + */ public function __construct(HttpClient $httpClient) { $this->httpClient = $httpClient; diff --git a/app/Services/ModuleService.php b/app/Services/ModuleService.php index 07b732bc..c15a7a1d 100644 --- a/app/Services/ModuleService.php +++ b/app/Services/ModuleService.php @@ -22,12 +22,12 @@ use PharData; class ModuleService extends Service { - protected static $adminLinks = []; + protected static array $adminLinks = []; /** * @var array 0 == logged out, 1 == logged in */ - protected static $frontendLinks = [ + protected static array $frontendLinks = [ 0 => [], 1 => [], ]; @@ -40,7 +40,7 @@ class ModuleService extends Service * @param string $icon * @param bool $logged_in */ - public function addFrontendLink(string $title, string $url, string $icon = 'pe-7s-users', $logged_in = true) + public function addFrontendLink(string $title, string $url, string $icon = 'pe-7s-users', bool $logged_in = true) { self::$frontendLinks[$logged_in][] = [ 'title' => $title, @@ -56,7 +56,7 @@ class ModuleService extends Service * * @return array */ - public function getFrontendLinks($logged_in): array + public function getFrontendLinks(mixed $logged_in): array { return self::$frontendLinks[$logged_in]; } diff --git a/app/Services/NewsService.php b/app/Services/NewsService.php index 17dd79e3..0a347ba2 100644 --- a/app/Services/NewsService.php +++ b/app/Services/NewsService.php @@ -8,7 +8,7 @@ use App\Repositories\NewsRepository; class NewsService extends Service { - private $newsRepo; + private NewsRepository $newsRepo; public function __construct(NewsRepository $newsRepo) { diff --git a/app/Services/PirepService.php b/app/Services/PirepService.php index d8bf9f05..db7e6e50 100644 --- a/app/Services/PirepService.php +++ b/app/Services/PirepService.php @@ -35,20 +35,21 @@ use App\Models\User; use App\Repositories\AircraftRepository; use App\Repositories\AirportRepository; use App\Repositories\PirepRepository; +use App\Support\Units\Fuel; use Carbon\Carbon; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Support\Facades\Log; class PirepService extends Service { - private $aircraftRepo; - private $airportRepo; - private $airportSvc; - private $fareSvc; - private $geoSvc; - private $pirepRepo; - private $simBriefSvc; - private $userSvc; + private AircraftRepository $aircraftRepo; + private AirportRepository $airportRepo; + private AirportService $airportSvc; + private FareService $fareSvc; + private GeoService $geoSvc; + private PirepRepository $pirepRepo; + private SimBriefService $simBriefSvc; + private UserService $userSvc; /** * @param AirportRepository $airportRepo @@ -664,11 +665,14 @@ class PirepService extends Service Log::info('PIREP '.$pirep->id.' state change to ACCEPTED'); + $fuel_remain = $pirep->block_fuel->internal() - $pirep->fuel_used->internal(); + $fuel_on_board = Fuel::make($fuel_remain, config('phpvms.internal_units.fuel')); + // Update the aircraft $pirep->aircraft->flight_time = $pirep->aircraft->flight_time + $pirep->flight_time; $pirep->aircraft->airport_id = $pirep->arr_airport_id; $pirep->aircraft->landing_time = $pirep->updated_at; - $pirep->aircraft->fuel_onboard = $pirep->block_fuel - $pirep->fuel_used; + $pirep->aircraft->fuel_onboard = $fuel_on_board; $pirep->aircraft->save(); $pirep->refresh(); diff --git a/app/Services/RoleService.php b/app/Services/RoleService.php index 2fce2aca..fb49539e 100644 --- a/app/Services/RoleService.php +++ b/app/Services/RoleService.php @@ -8,7 +8,7 @@ use App\Repositories\RoleRepository; class RoleService extends Service { - private $roleRepo; + private RoleRepository $roleRepo; public function __construct(RoleRepository $roleRepo) { diff --git a/app/Services/SimBriefService.php b/app/Services/SimBriefService.php index a55c78b3..6a8d464f 100644 --- a/app/Services/SimBriefService.php +++ b/app/Services/SimBriefService.php @@ -15,8 +15,11 @@ use Illuminate\Support\Facades\Log; class SimBriefService extends Service { - private $httpClient; + private GuzzleClient $httpClient; + /** + * @param GuzzleClient $httpClient + */ public function __construct(GuzzleClient $httpClient) { $this->httpClient = $httpClient; @@ -26,13 +29,13 @@ class SimBriefService extends Service * Check to see if the OFP exists server-side. If it does, download it and * cache it immediately * - * @param string $user_id User who generated this - * @param string $ofp_id The SimBrief OFP ID - * @param string $flight_id The flight ID - * @param string $ac_id The aircraft ID - * @param array $fares Full list of fares for the flight - * @param string $sb_userid User's Simbrief ID (Used for Update) - * @param string $sb_static_id Static ID for the generated OFP (Used for Update) + * @param string $user_id User who generated this + * @param string $ofp_id The SimBrief OFP ID + * @param string $flight_id The flight ID + * @param string $ac_id The aircraft ID + * @param array $fares Full list of fares for the flight + * @param string|null $sb_user_id + * @param string|null $sb_static_id Static ID for the generated OFP (Used for Update) * * @return SimBrief|null */ diff --git a/app/Services/UserService.php b/app/Services/UserService.php index bd6afb0a..78399943 100644 --- a/app/Services/UserService.php +++ b/app/Services/UserService.php @@ -32,11 +32,11 @@ use function is_array; class UserService extends Service { - private $aircraftRepo; - private $airlineRepo; - private $fareSvc; - private $subfleetRepo; - private $userRepo; + private AircraftRepository $aircraftRepo; + private AirlineRepository $airlineRepo; + private FareService $fareSvc; + private SubfleetRepository $subfleetRepo; + private UserRepository $userRepo; /** * @param AircraftRepository $aircraftRepo diff --git a/app/Services/VersionService.php b/app/Services/VersionService.php index 05e05268..7813d950 100644 --- a/app/Services/VersionService.php +++ b/app/Services/VersionService.php @@ -12,8 +12,8 @@ use Symfony\Component\Yaml\Yaml; class VersionService extends Service { - private $httpClient; - private $kvpRepo; + private HttpClient $httpClient; + private KvpRepository $kvpRepo; public function __construct( HttpClient $httpClient, diff --git a/app/Support/Database.php b/app/Support/Database.php index 601ed009..43e204ff 100644 --- a/app/Support/Database.php +++ b/app/Support/Database.php @@ -26,9 +26,10 @@ class Database * * @return array */ - public static function seed_from_yaml_file($yaml_file, $ignore_errors = false): array + public static function seed_from_yaml_file($yaml_file, bool $ignore_errors = false): array { $yml = file_get_contents($yaml_file); + return static::seed_from_yaml($yml, $ignore_errors); } @@ -40,7 +41,7 @@ class Database * * @return array */ - public static function seed_from_yaml($yml, $ignore_errors = false): array + public static function seed_from_yaml($yml, bool $ignore_errors = false): array { $imported = []; $yml = Yaml::parse($yml); @@ -95,11 +96,11 @@ class Database * @return mixed */ public static function insert_row( - $table, - $row, - $id_col = 'id', - $ignore_on_updates = [], - $ignore_errors = true + string $table, + array $row = [], + string $id_col = 'id', + array $ignore_on_updates = [], + bool $ignore_errors = true ) { // encrypt any password fields if (array_key_exists('password', $row)) { @@ -112,7 +113,7 @@ class Database // if any time fields are == to "now", then insert the right time foreach ($row as $column => $value) { - if (strtolower($value) === 'now') { + if (!empty($value) && strtolower($value) === 'now') { $row[$column] = static::time(); } } diff --git a/app/Support/Dates.php b/app/Support/Dates.php index 6728a6fe..cad6e23c 100644 --- a/app/Support/Dates.php +++ b/app/Support/Dates.php @@ -61,11 +61,11 @@ class Dates /** * Return the start/end dates for a given month/year * - * @param $month YYYY-MM + * @param string $month In "YYYY-MM" format * * @return array */ - public static function getMonthBoundary($month): array + public static function getMonthBoundary(string $month): array { [$year, $month] = explode('-', $month); $days = static::getDaysInMonth($month, $year); diff --git a/app/Support/Discord.php b/app/Support/Discord.php deleted file mode 100644 index ed9002ed..00000000 --- a/app/Support/Discord.php +++ /dev/null @@ -1,35 +0,0 @@ -post( - 'https://discord.com/api/users/@me/channels', - [ - 'recipient_id' => $discord_id, - ] - ); - - dd($response); - return $response->id; - } catch (\Exception $ex) { - dd($ex); - Log::error('Could not get private channel id for '.$discord_id.';'.$ex->getMessage()); - return ''; - } - } -} diff --git a/app/Support/HttpClient.php b/app/Support/HttpClient.php index ddfb0793..066d4075 100644 --- a/app/Support/HttpClient.php +++ b/app/Support/HttpClient.php @@ -10,7 +10,7 @@ use GuzzleHttp\RequestOptions; */ class HttpClient { - private $httpClient; + private GuzzleClient $httpClient; public function __construct(GuzzleClient $httpClient) { @@ -50,9 +50,11 @@ class HttpClient * @param $body * @param array $opts * + * @throws \GuzzleHttp\Exception\GuzzleException + * * @return mixed */ - public function post($uri, $body, array $opts = []) + public function post($uri, $body, array $opts = []): mixed { $opts = array_merge([ 'connect_timeout' => 2, @@ -61,11 +63,40 @@ class HttpClient $response = $this->httpClient->post($uri, $opts); $content_type = $response->getHeaderLine('content-type'); - if (strpos($content_type, 'application/json') !== false) { - $body = \GuzzleHttp\json_decode($body, true); + $content = $response->getBody()->getContents(); + + if (str_contains($content_type, 'application/json') !== false) { + $content = \GuzzleHttp\json_decode($content, true); } - return $body; + return $content; + } + + /** + * @param $uri + * @param $body + * @param array $opts + * + * @throws \GuzzleHttp\Exception\GuzzleException + * + * @return mixed + */ + public function form_post($uri, $body, array $opts = []): mixed + { + $opts = array_merge([ + 'connect_timeout' => 2, + 'form_params' => $body, + ], $opts); + + $response = $this->httpClient->request('POST', $uri, $opts); + $content_type = $response->getHeaderLine('content-type'); + $content = $response->getBody()->getContents(); + + if (str_contains($content_type, 'application/json') !== false) { + $content = \GuzzleHttp\json_decode($content, true); + } + + return $content; } /** diff --git a/app/Support/Metar.php b/app/Support/Metar.php index 27128504..78ce1c7d 100644 --- a/app/Support/Metar.php +++ b/app/Support/Metar.php @@ -8,7 +8,6 @@ use App\Support\Units\Pressure; use App\Support\Units\Temperature; use App\Support\Units\Velocity; use function count; -use Illuminate\Support\Facades\Log; use PhpUnitsOfMeasure\Exception\NonNumericValue; use PhpUnitsOfMeasure\Exception\NonStringUnitName; @@ -403,14 +402,11 @@ class Metar implements \ArrayAccess * @param int|float $value * @param string $unit "feet" or "meters" * - * @throws NonStringUnitName - * @throws NonNumericValue - * * @return Altitude */ protected function createAltitude($value, $unit) { - return new Altitude((float) $value, $unit); + return Altitude::make((float) $value, $unit); } /** @@ -419,14 +415,11 @@ class Metar implements \ArrayAccess * @param int|float $value * @param string $unit "m" (meters) or "mi" (miles) * - * @throws NonNumericValue - * @throws NonStringUnitName - * * @return Distance */ protected function createDistance($value, $unit) { - return new Distance((float) $value, $unit); + return Distance::make((float) $value, $unit); } /** @@ -442,7 +435,7 @@ class Metar implements \ArrayAccess */ protected function createPressure($value, $unit) { - return new Pressure((float) $value, $unit); + return Pressure::make((float) $value, $unit); } /** @@ -458,7 +451,7 @@ class Metar implements \ArrayAccess */ protected function createTemperature($value, $unit) { - return new Temperature((float) $value, $unit); + return Temperature::make((float) $value, $unit); } /** @@ -474,7 +467,7 @@ class Metar implements \ArrayAccess */ protected function createVelocity($value, $unit) { - return new Velocity((float) $value, $unit); + return Velocity::make((float) $value, $unit); } /** diff --git a/app/Support/Money.php b/app/Support/Money.php index 6cb25e83..e22959b1 100644 --- a/app/Support/Money.php +++ b/app/Support/Money.php @@ -10,7 +10,7 @@ use Akaunting\Money\Money as MoneyBase; */ class Money { - public $money; + public MoneyBase $money; public $subunit_amount; public static $iso_currencies; public static $subunit_multiplier; diff --git a/app/Support/Resources/CustomPaginatedResourceResponse.php b/app/Support/Resources/CustomPaginatedResourceResponse.php index 40f21c02..562241e1 100644 --- a/app/Support/Resources/CustomPaginatedResourceResponse.php +++ b/app/Support/Resources/CustomPaginatedResourceResponse.php @@ -19,7 +19,7 @@ class CustomPaginatedResourceResponse extends PaginatedResourceResponse protected function meta($paginated) { - return Arr::except($paginated, [ + $arr = Arr::except($paginated, [ 'data', 'first_page_url', 'last_page_url', @@ -27,5 +27,10 @@ class CustomPaginatedResourceResponse extends PaginatedResourceResponse 'next_page_url', 'links', ]); + + $arr['prev_page'] = $paginated['prev_page_url']; + $arr['next_page'] = $paginated['next_page_url']; + + return $arr; } } diff --git a/app/Support/ThemeViewFinder.php b/app/Support/ThemeViewFinder.php index 02799512..e95eeb90 100644 --- a/app/Support/ThemeViewFinder.php +++ b/app/Support/ThemeViewFinder.php @@ -18,12 +18,13 @@ class ThemeViewFinder extends \Igaster\LaravelTheme\themeViewFinder * Override findNamespacedView() to add "Theme/vendor/..." paths * * @param string $name + * * @return string */ - protected function findNamespacedView($name) + protected function findNamespacedView($name): string { // Extract the $view and the $namespace parts - list($namespace, $view) = $this->parseNamespaceSegments($name); + [$namespace, $view] = $this->parseNamespaceSegments($name); $paths = $this->addThemeNamespacePaths($namespace); @@ -84,6 +85,7 @@ class ThemeViewFinder extends \Igaster\LaravelTheme\themeViewFinder $paths = Arr::prepend($paths, $path); } } + return $paths; } } diff --git a/app/Support/Units/Altitude.php b/app/Support/Units/Altitude.php index 8ddfa6ee..3cd44153 100644 --- a/app/Support/Units/Altitude.php +++ b/app/Support/Units/Altitude.php @@ -7,7 +7,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Length; class Altitude extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'ft', 'km', 'm', @@ -26,7 +26,14 @@ class Altitude extends Unit $value = 0; } - $this->unit = setting('units.altitude'); - $this->instance = new Length($value, $unit); + $this->localUnit = setting('units.altitude'); + $this->internalUnit = config('phpvms.internal_units.altitude'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new Length($value, $unit); + } } } diff --git a/app/Support/Units/Distance.php b/app/Support/Units/Distance.php index 8887be2b..5fe75503 100644 --- a/app/Support/Units/Distance.php +++ b/app/Support/Units/Distance.php @@ -7,7 +7,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Length; class Distance extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'm', 'km', 'mi', @@ -17,19 +17,26 @@ class Distance extends Unit /** * Distance constructor. * - * @param float $value - * @param string $unit + * @param Distance|float $value + * @param string $unit The unit of $value * * @throws \PhpUnitsOfMeasure\Exception\NonNumericValue * @throws \PhpUnitsOfMeasure\Exception\NonStringUnitName */ - public function __construct($value, string $unit) + public function __construct(mixed $value, string $unit) { if (empty($value)) { $value = 0; } - $this->unit = setting('units.distance'); - $this->instance = new Length($value, $unit); + $this->localUnit = setting('units.distance'); + $this->internalUnit = config('phpvms.internal_units.distance'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new Length($value, $unit); + } } } diff --git a/app/Support/Units/Fuel.php b/app/Support/Units/Fuel.php index f76ea118..31b7e57e 100644 --- a/app/Support/Units/Fuel.php +++ b/app/Support/Units/Fuel.php @@ -7,7 +7,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Mass; class Fuel extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'kg', 'lbs', ]; @@ -25,7 +25,14 @@ class Fuel extends Unit $value = 0; } - $this->unit = setting('units.fuel'); - $this->instance = new Mass($value, $unit); + $this->localUnit = setting('units.fuel'); + $this->internalUnit = config('phpvms.internal_units.fuel'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new Mass($value, $unit); + } } } diff --git a/app/Support/Units/Mass.php b/app/Support/Units/Mass.php index 99249d71..120d3511 100644 --- a/app/Support/Units/Mass.php +++ b/app/Support/Units/Mass.php @@ -7,7 +7,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Mass as MassUnit; class Mass extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'kg', 'lbs', ]; @@ -25,7 +25,14 @@ class Mass extends Unit $value = 0; } - $this->unit = setting('units.weight'); - $this->instance = new MassUnit($value, $unit); + $this->localUnit = setting('units.weight'); + $this->internalUnit = config('phpvms.internal_units.mass'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new MassUnit($value, $unit); + } } } diff --git a/app/Support/Units/Pressure.php b/app/Support/Units/Pressure.php index 58899580..751184cc 100644 --- a/app/Support/Units/Pressure.php +++ b/app/Support/Units/Pressure.php @@ -10,7 +10,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Pressure as PressureUnit; */ class Pressure extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'atm', 'hPa', ]; @@ -28,7 +28,14 @@ class Pressure extends Unit $value = 0; } - $this->unit = setting('units.temperature'); - $this->instance = new PressureUnit($value, $unit); + $this->localUnit = setting('units.temperature'); + $this->internalUnit = config('phpvms.internal_units.temperature'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new PressureUnit($value, $unit); + } } } diff --git a/app/Support/Units/Temperature.php b/app/Support/Units/Temperature.php index 1343d0e7..759fb242 100644 --- a/app/Support/Units/Temperature.php +++ b/app/Support/Units/Temperature.php @@ -10,7 +10,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Temperature as TemperatureUnit; */ class Temperature extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'C', 'F', ]; @@ -28,7 +28,14 @@ class Temperature extends Unit $value = 0; } - $this->unit = setting('units.temperature'); - $this->instance = new TemperatureUnit($value, $unit); + $this->localUnit = setting('units.temperature'); + $this->internalUnit = config('phpvms.internal_units.temperature'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new TemperatureUnit($value, $unit); + } } } diff --git a/app/Support/Units/Velocity.php b/app/Support/Units/Velocity.php index a13b4e3e..46e0bcde 100644 --- a/app/Support/Units/Velocity.php +++ b/app/Support/Units/Velocity.php @@ -10,7 +10,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Velocity as VelocityUnit; */ class Velocity extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'km/h', 'knots', ]; @@ -28,7 +28,14 @@ class Velocity extends Unit $value = 0; } - $this->unit = setting('units.speed'); - $this->instance = new VelocityUnit($value, $unit); + $this->localUnit = setting('units.speed'); + $this->internalUnit = config('phpvms.internal_units.velocity'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new VelocityUnit($value, $unit); + } } } diff --git a/app/Support/Units/Volume.php b/app/Support/Units/Volume.php index 3a6fd3e8..17fe1b63 100644 --- a/app/Support/Units/Volume.php +++ b/app/Support/Units/Volume.php @@ -10,7 +10,7 @@ use PhpUnitsOfMeasure\PhysicalQuantity\Volume as VolumeUnit; */ class Volume extends Unit { - public $responseUnits = [ + public array $responseUnits = [ 'gal', 'liters', ]; @@ -28,7 +28,14 @@ class Volume extends Unit $value = 0; } - $this->unit = setting('units.volume'); - $this->instance = new VolumeUnit($value, $unit); + $this->localUnit = setting('units.volume'); + $this->internalUnit = config('phpvms.internal_units.volume'); + + if ($value instanceof self) { + $value->toUnit($unit); + $this->instance = $value->instance; + } else { + $this->instance = new VolumeUnit($value, $unit); + } } } diff --git a/app/Support/Utils.php b/app/Support/Utils.php index 4e4fcbd1..771719ca 100644 --- a/app/Support/Utils.php +++ b/app/Support/Utils.php @@ -20,7 +20,7 @@ class Utils * * @return string */ - public static function generateNewId(int $length = null) + public static function generateNewId(int $length = null): string { if (!$length) { $length = Model::ID_MAX_LENGTH; @@ -38,8 +38,7 @@ class Utils */ public static function generateApiKey(): string { - $key = substr(sha1(time().mt_rand()), 0, 20); - return $key; + return substr(sha1(time().mt_rand()), 0, 20); } /** diff --git a/app/Support/VmsRepositoryType.php b/app/Support/VmsRepositoryType.php deleted file mode 100644 index f37d6337..00000000 --- a/app/Support/VmsRepositoryType.php +++ /dev/null @@ -1,130 +0,0 @@ -config = $config; - $this->client = $client; - $this->storagePath = Str::finish($this->config['download_path'], DIRECTORY_SEPARATOR); - $this->versionSvc = app(VersionService::class); - } - - /** - * Check repository if a newer version than the installed one is available. - * - * @param string $currentVersion - * - * @throws InvalidArgumentException - * @throws Exception - * - * @return bool - */ - public function isNewVersionAvailable(string $currentVersion = ''): bool - { - return $this->versionSvc->isNewVersionAvailable($currentVersion); - } - - /** - * Get the latest version that has been published in a certain repository. - * Example: 2.6.5 or v2.6.5. - * - * @param string $prepend Prepend a string to the latest version - * @param string $append Append a string to the latest version - * - * @throws Exception - * - * @return string - */ - public function getVersionAvailable(string $prepend = '', string $append = ''): string - { - return $this->versionSvc->getLatestVersion(); - } - - /** - * Fetches the latest version. If you do not want the latest version, specify one and pass it. - * - * @param string $version - * - * @throws Exception - * - * @return void - */ - public function fetch($version = ''): void - { - $response = $this->getRepositoryReleases(); - $releaseCollection = collect(\GuzzleHttp\json_decode($response->getBody()->getContents())); - - if ($releaseCollection->isEmpty()) { - throw new Exception('Cannot find a release to update. Please check the repository you\'re pulling from'); - } - - if (!File::exists($this->storagePath)) { - File::makeDirectory($this->storagePath, 493, true, true); - } - - if (!empty($version)) { - $release = $releaseCollection->where('name', $version)->first(); - } else { - $release = $releaseCollection->first(); - } - - Log::info('Found release='.$release->name.', path='.$release->zipball_url); - $storageFolder = $this->storagePath.$release->name.'-'.now()->timestamp; - $storageFilename = $storageFolder.'.zip'; - - if (!$this->isSourceAlreadyFetched($release->name)) { - $this->downloadRelease($this->client, $release->zipball_url, $storageFilename); - $this->unzipArchive($storageFilename, $storageFolder); - $this->createReleaseFolder($storageFolder, $release->name); - } - } - - protected function getRepositoryReleases(): ResponseInterface - { - $url = self::GITHUB_API_URL - .'/repos/'.$this->config['repository_vendor'] - .'/'.$this->config['repository_name'] - .'/tags'; - - $headers = []; - return $this->client->request('GET', $url, ['headers' => $headers]); - } -} diff --git a/app/Utils/IdMapper.php b/app/Utils/IdMapper.php index da62f11a..5d354140 100644 --- a/app/Utils/IdMapper.php +++ b/app/Utils/IdMapper.php @@ -7,7 +7,7 @@ use Spatie\Valuestore\Valuestore; class IdMapper extends Service { - private $valueStore; + private Valuestore $valueStore; public function __construct() { @@ -21,7 +21,7 @@ class IdMapper extends Service * @param string $old_id * @param string $new_id */ - public function addMapping($entity, $old_id, $new_id) + public function addMapping(string $entity, string $old_id, string $new_id) { $key_name = $entity.'_'.$old_id; if (!$this->valueStore->has($key_name)) { @@ -37,7 +37,7 @@ class IdMapper extends Service * * @return bool */ - public function getMapping($entity, $old_id) + public function getMapping($entity, $old_id): bool|int { $key_name = $entity.'_'.$old_id; if (!$this->valueStore->has($key_name)) { diff --git a/bin/console b/bin/console new file mode 100755 index 00000000..c933dc53 --- /dev/null +++ b/bin/console @@ -0,0 +1,17 @@ +#!/usr/bin/env php +make(Kernel::class); // Run a null artisan thing just so Laravel internals can be setup properly $status = $kernel->handle( $input = new Symfony\Component\Console\Input\ArrayInput([ - 'command' => 'version', + 'command' => 'phpvms:version', ]), new Symfony\Component\Console\Output\NullOutput() ); diff --git a/bootstrap/application.php b/bootstrap/application.php index 12ccc483..590a911c 100644 --- a/bootstrap/application.php +++ b/bootstrap/application.php @@ -104,7 +104,7 @@ class application extends Illuminate\Foundation\Application return $this->basePath.DS.'config'.($path ? DS.$path : $path); } - public function langPath() + public function langPath($path = '') { return $this->resourcePath().DS.'lang'; } diff --git a/composer.json b/composer.json index 6e1102c6..0bfe3fbc 100755 --- a/composer.json +++ b/composer.json @@ -8,92 +8,79 @@ "prefer-stable": true, "homepage": "http://www.phpvms.net", "require": { - "php": ">=7.3", + "php": ">=8.0", "ext-json": "*", "ext-mbstring": "*", "ext-simplexml": "*", "ext-bcmath": "*", "ext-pdo": "*", "ext-intl": "*", - "cache/adapter-common": "1.2.0", - "cache/array-adapter": "1.1.0", - "cache/hierarchical-cache": "1.1.0", + "fisharebest/ext-calendar": "^2.5", "symfony/flex": "^1.0", + "symfony/polyfill-iconv": "~1.22.0", "symfony/polyfill-intl-icu": "*", "symfony/polyfill-intl-idn": "*", "symfony/polyfill-mbstring": "*", - "symfony/polyfill-php74": "*", "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", "symfony/deprecation-contracts": "^v2.5.0", "symfony/event-dispatcher-contracts": "^2", - "symfony/property-info": "^5.4", - "symfony/string": "^5.4", - "symfony/translation": "^5.4", + "symfony/mailgun-mailer": "^6.0", + "symfony/http-client": "^6.0", + "symfony/yaml": "^6.0", "psr/container": "1.1.1", - "composer/composer": "~2.0", - "composer/installers": "~1.0", - "laravel/framework": "~8.0", - "anhskohbo/no-captcha": "^3.0", - "appstract/laravel-opcache": "^4.0", + "composer/composer": "^2.2.7", + "composer/installers": "~1.12.0", + "laravel/framework": "~v9.2", "arrilot/laravel-widgets": "~3.13.0", - "codedge/laravel-selfupdater": "~3.2.0", - "doctrine/dbal": "^3.0.0", - "facade/ignition": "^2.5", - "fideloper/proxy": "^4.4", - "guzzlehttp/guzzle": "~6.5", + "doctrine/dbal": "^3.3.2", + "guzzlehttp/guzzle": "~7.4.1", "hashids/hashids": "^4.1.0", "igaster/laravel-theme": "^2.0", "intervention/image": "^2.4", - "irazasyed/laravel-gamp": "^1.8", "jmikola/geojson": "1.0.*", "joshbrw/laravel-module-installer": "^2.0", - "laracasts/flash": "^3.1", - "laravel/helpers": "^1.4", - "laravelcollective/html": "~6.2.0", + "laracasts/flash": "^3.2.1", + "laravel/helpers": "^v1.5.0", + "laravelcollective/html": "~6.3.0", "jeremykendall/php-domain-parser": "~5.7.2", - "league/commonmark": "~1.6.0", - "league/csv": "9.7.*", - "league/geotools": "0.8.*", - "league/iso3166": "^3.0.0", - "markrogoyski/math-php": "^1.11.0", + "league/commonmark": "~2.2.2", + "league/csv": "^9.8.0", + "league/geotools": "^1.0.0", + "league/iso3166": "^4.0.0", + "markrogoyski/math-php": "^2.5.0", "myclabs/deep-copy": "~1.10.0", - "nabeel/vacentral": "~2.0", - "nwidart/laravel-modules": "^8.2.0", + "nabeel/vacentral": "~2.1.0", + "nwidart/laravel-modules": "^9.0.0", "php-units-of-measure/php-units-of-measure": "~2.1.0", "phpvms/sample-module": "^1.0", - "pragmarx/version": ">=v1.2.3", - "prettus/l5-repository": "~2.7.0", - "santigarcor/laratrust": "~6.3.0", + "prettus/l5-repository": "~2.8.0", + "santigarcor/laratrust": "~7.0.0", "semver/semver": "~1.1.0", - "spatie/valuestore": "~1.2.0", - "symfony/polyfill-iconv": "~1.22.0", + "spatie/valuestore": "~1.3.1", "tivie/php-os-detector": "~1.1.0", - "vlucas/phpdotenv": "^5.3.0", - "webpatser/laravel-uuid": "~4.0", + "vlucas/phpdotenv": "^5.4.1", + "webpatser/laravel-uuid": "^4.0.1", "oomphinc/composer-installers-extender": "^2.0", - "laravel/ui": "^3.2.0", + "laravel/ui": "^3.4.5", "madnest/madzipper": "^1.1.0", "elcobvg/laravel-opcache": "^0.4.1", - "laravel/legacy-factories": "^1.1", - "fakerphp/faker": "^v1.14", - "wildbit/swiftmailer-postmark": "^3.3", - "queueworker/sansdaemon": "^1.2", - "jpkleemans/attribute-events": "^1.1", - "akaunting/laravel-money": "^1.2", - "staudenmeir/belongs-to-through": "^2.5", - "staudenmeir/eloquent-has-many-deep": "1.14.3" + "fakerphp/faker": "^v1.19.0", + "queueworker/sansdaemon": "^1.2.4", + "jpkleemans/attribute-events": "^1.3.0", + "akaunting/laravel-money": "^2.0.1", + "staudenmeir/belongs-to-through": "^v2.12", + "staudenmeir/eloquent-has-many-deep": "1.15", + "spatie/laravel-ignition": "^1.0" }, "require-dev": { - "barryvdh/laravel-debugbar": "^3.5", - "barryvdh/laravel-ide-helper": "^2.10", - "bpocallaghan/generators": "~7.0", - "filp/whoops": "~2.0", - "friendsofphp/php-cs-fixer": "^3.3", - "mockery/mockery": "^1.4.0", - "nunomaduro/collision": "^5.3.0", - "phpunit/phpunit": "~9.0", - "sempro/phpunit-pretty-print": "^1.2" + "barryvdh/laravel-debugbar": "^3.6.7", + "filp/whoops": "~2.14.5", + "friendsofphp/php-cs-fixer": "^3.6.0", + "mockery/mockery": "^1.5.0", + "nunomaduro/collision": "^v6.1.0", + "phpunit/phpunit": "~9.5.14", + "sempro/phpunit-pretty-print": "^1.4.0" }, "autoload": { "classmap": [ @@ -119,7 +106,7 @@ }, "module-dir": "modules", "symfony": { - "require": "^5.4" + "require": "^6.0" } }, "scripts": { @@ -140,6 +127,12 @@ ] }, "config": { - "bin-dir": "vendor/bin/" + "bin-dir": "vendor/bin/", + "allow-plugins": { + "composer/installers": true, + "joshbrw/laravel-module-installer": true, + "oomphinc/composer-installers-extender": true, + "symfony/flex": true + } } } diff --git a/composer.lock b/composer.lock index cc1d9954..5a079687 100644 --- a/composer.lock +++ b/composer.lock @@ -4,30 +4,30 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "dcfe3e3bc0b23dfc9f91684cc5248a77", + "content-hash": "e78e59b85783fb6cde29e32338dabcd7", "packages": [ { "name": "akaunting/laravel-money", - "version": "1.2.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/akaunting/laravel-money.git", - "reference": "e97cbb9735540fac995e5e0b17395ef4ba33ac38" + "reference": "eaa684e940e1fa866276409614f65a5b91279238" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/e97cbb9735540fac995e5e0b17395ef4ba33ac38", - "reference": "e97cbb9735540fac995e5e0b17395ef4ba33ac38", + "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/eaa684e940e1fa866276409614f65a5b91279238", + "reference": "eaa684e940e1fa866276409614f65a5b91279238", "shasum": "" }, "require": { - "illuminate/support": ">=5.4", - "illuminate/view": ">=5.4", - "php": ">=5.6.4" + "illuminate/support": ">=8.0", + "illuminate/view": ">=8.0", + "php": ">=8.0" }, "require-dev": { - "mockery/mockery": ">=1.0", - "phpunit/phpunit": ">=5.7" + "mockery/mockery": ">=1.4", + "phpunit/phpunit": ">=9.0" }, "type": "library", "extra": { @@ -38,12 +38,12 @@ } }, "autoload": { - "psr-4": { - "Akaunting\\Money\\": "./src" - }, "files": [ "src/helpers.php" - ] + ], + "psr-4": { + "Akaunting\\Money\\": "./src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -67,135 +67,9 @@ ], "support": { "issues": "https://github.com/akaunting/laravel-money/issues", - "source": "https://github.com/akaunting/laravel-money/tree/1.2.3" + "source": "https://github.com/akaunting/laravel-money/tree/2.0.1" }, - "time": "2021-09-28T06:19:54+00:00" - }, - { - "name": "anhskohbo/no-captcha", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/anhskohbo/no-captcha.git", - "reference": "f654a4093bd2e9ddbdfad3297bb7aa142a55e611" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/anhskohbo/no-captcha/zipball/f654a4093bd2e9ddbdfad3297bb7aa142a55e611", - "reference": "f654a4093bd2e9ddbdfad3297bb7aa142a55e611", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.2|^7.0", - "illuminate/support": "^5.0|^6.0|^7.0|^8.0", - "php": ">=5.5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.8" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Anhskohbo\\NoCaptcha\\NoCaptchaServiceProvider" - ], - "aliases": { - "NoCaptcha": "Anhskohbo\\NoCaptcha\\Facades\\NoCaptcha" - } - } - }, - "autoload": { - "psr-4": { - "Anhskohbo\\NoCaptcha\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "anhskohbo", - "email": "anhskohbo@gmail.com" - } - ], - "description": "No CAPTCHA reCAPTCHA For Laravel.", - "keywords": [ - "captcha", - "laravel", - "laravel4", - "laravel5", - "laravel6", - "no-captcha", - "recaptcha" - ], - "support": { - "issues": "https://github.com/anhskohbo/no-captcha/issues", - "source": "https://github.com/anhskohbo/no-captcha/tree/3.3.0" - }, - "time": "2020-09-10T02:31:52+00:00" - }, - { - "name": "appstract/laravel-opcache", - "version": "4.0.2", - "source": { - "type": "git", - "url": "https://github.com/appstract/laravel-opcache.git", - "reference": "d2ce88cddda6af54c14d1f9ceaaf94b54f38f9d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/appstract/laravel-opcache/zipball/d2ce88cddda6af54c14d1f9ceaaf94b54f38f9d3", - "reference": "d2ce88cddda6af54c14d1f9ceaaf94b54f38f9d3", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.3.1|^7.0", - "laravel/framework": ">=7.0", - "php": ">=7.2.5" - }, - "require-dev": { - "orchestra/testbench": "^5.0", - "phpunit/phpunit": "^8.5" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Appstract\\Opcache\\OpcacheServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Appstract\\Opcache\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Olav van Schie", - "email": "mail@appstract.nl", - "homepage": "https://appstract.nl", - "role": "Developer" - } - ], - "description": "PHP OPcache Artisan commands for Laravel.", - "homepage": "https://github.com/appstract/laravel-opcache", - "keywords": [ - "Opcache", - "appstract", - "laravel", - "php" - ], - "support": { - "issues": "https://github.com/appstract/laravel-opcache/issues", - "source": "https://github.com/appstract/laravel-opcache/tree/4.0.2" - }, - "time": "2020-12-01T16:12:14+00:00" + "time": "2022-01-31T17:11:27+00:00" }, { "name": "arrilot/laravel-widgets", @@ -325,28 +199,28 @@ }, { "name": "cache/adapter-common", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/php-cache/adapter-common.git", - "reference": "6b87c5cbdf03be42437b595dbe5de8e97cd1d497" + "reference": "8788309be72aa7be69b88cdc0687549c74a7d479" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-cache/adapter-common/zipball/6b87c5cbdf03be42437b595dbe5de8e97cd1d497", - "reference": "6b87c5cbdf03be42437b595dbe5de8e97cd1d497", + "url": "https://api.github.com/repos/php-cache/adapter-common/zipball/8788309be72aa7be69b88cdc0687549c74a7d479", + "reference": "8788309be72aa7be69b88cdc0687549c74a7d479", "shasum": "" }, "require": { "cache/tag-interop": "^1.0", - "php": "^5.6 || ^7.0 || ^8.0", - "psr/cache": "^1.0", - "psr/log": "^1.0", + "php": ">=7.4", + "psr/cache": "^1.0 || ^2.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", "psr/simple-cache": "^1.0" }, "require-dev": { - "cache/integration-tests": "^0.16", - "phpunit/phpunit": "^5.7.21" + "cache/integration-tests": "^0.17", + "phpunit/phpunit": "^7.5.20 || ^9.5.10" }, "type": "library", "extra": { @@ -383,29 +257,29 @@ "tag" ], "support": { - "source": "https://github.com/php-cache/adapter-common/tree/1.2.0" + "source": "https://github.com/php-cache/adapter-common/tree/1.3.0" }, - "time": "2020-12-14T12:17:39+00:00" + "time": "2022-01-15T15:47:19+00:00" }, { "name": "cache/array-adapter", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/php-cache/array-adapter.git", - "reference": "71e72a51b76ed2668642a35690a7df7178f00670" + "reference": "7658acf46b35a23b7be13e50a2792049e1c678c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-cache/array-adapter/zipball/71e72a51b76ed2668642a35690a7df7178f00670", - "reference": "71e72a51b76ed2668642a35690a7df7178f00670", + "url": "https://api.github.com/repos/php-cache/array-adapter/zipball/7658acf46b35a23b7be13e50a2792049e1c678c4", + "reference": "7658acf46b35a23b7be13e50a2792049e1c678c4", "shasum": "" }, "require": { "cache/adapter-common": "^1.0", "cache/hierarchical-cache": "^1.0", - "php": "^5.6 || ^7.0 || ^8.0", - "psr/cache": "^1.0", + "php": ">=7.4", + "psr/cache": "^1.0 || ^2.0", "psr/simple-cache": "^1.0" }, "provide": { @@ -413,8 +287,8 @@ "psr/simple-cache-implementation": "^1.0" }, "require-dev": { - "cache/integration-tests": "^0.16", - "phpunit/phpunit": "^5.7.21" + "cache/integration-tests": "^0.17", + "phpunit/phpunit": "^7.5.20 || ^9.5.10" }, "type": "library", "extra": { @@ -455,31 +329,31 @@ "tag" ], "support": { - "source": "https://github.com/php-cache/array-adapter/tree/1.1.0" + "source": "https://github.com/php-cache/array-adapter/tree/1.2.0" }, - "time": "2020-12-14T12:17:39+00:00" + "time": "2022-01-15T15:47:19+00:00" }, { "name": "cache/hierarchical-cache", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/php-cache/hierarchical-cache.git", - "reference": "ba3746c65461b17154fb855068403670fd7fa2d3" + "reference": "dedffd0a74f72c1db76e57ce29885836944e27f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-cache/hierarchical-cache/zipball/ba3746c65461b17154fb855068403670fd7fa2d3", - "reference": "ba3746c65461b17154fb855068403670fd7fa2d3", + "url": "https://api.github.com/repos/php-cache/hierarchical-cache/zipball/dedffd0a74f72c1db76e57ce29885836944e27f3", + "reference": "dedffd0a74f72c1db76e57ce29885836944e27f3", "shasum": "" }, "require": { "cache/adapter-common": "^1.0", - "php": "^5.6 || ^7.0 || ^8.0", - "psr/cache": "^1.0" + "php": ">=7.4", + "psr/cache": "^1.0 || ^2.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.21" + "phpunit/phpunit": "^7.5.20 || ^9.5.10" }, "type": "library", "extra": { @@ -520,9 +394,9 @@ "psr-6" ], "support": { - "source": "https://github.com/php-cache/hierarchical-cache/tree/1.1.0" + "source": "https://github.com/php-cache/hierarchical-cache/tree/1.2.0" }, - "time": "2020-12-14T12:17:39+00:00" + "time": "2022-01-15T15:47:19+00:00" }, { "name": "cache/tag-interop", @@ -583,88 +457,6 @@ }, "time": "2021-12-31T10:03:23+00:00" }, - { - "name": "codedge/laravel-selfupdater", - "version": "3.2.3", - "source": { - "type": "git", - "url": "https://github.com/codedge/laravel-selfupdater.git", - "reference": "60bca20f30d36259ef5eff65bc84d0dcb61267f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/codedge/laravel-selfupdater/zipball/60bca20f30d36259ef5eff65bc84d0dcb61267f7", - "reference": "60bca20f30d36259ef5eff65bc84d0dcb61267f7", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-zip": "*", - "guzzlehttp/guzzle": "6.* || 7.*", - "laravel/framework": "^8.36.2", - "php": "^7.3 || ^7.4 || ^8.0" - }, - "require-dev": { - "dg/bypass-finals": "^1.3", - "mikey179/vfsstream": "^1.6", - "mockery/mockery": "^1.4", - "orchestra/testbench": "^6.17.0", - "phpunit/phpunit": "^9.5.4" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Updater": "Codedge\\Updater\\UpdaterFacade" - }, - "providers": [ - "Codedge\\Updater\\UpdaterServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Codedge\\Updater\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Holger Lösken", - "email": "holger.loesken@codedge.de", - "homepage": "http://codedge.de", - "role": "Developer" - } - ], - "description": "Providing an auto-updating functionality for your self-hosted Laravel application.", - "keywords": [ - "auto update", - "auto-update", - "laravel", - "laravel application", - "self update", - "self-hosted laravel application", - "self-update", - "update" - ], - "support": { - "issues": "https://github.com/codedge/laravel-selfupdater/issues", - "source": "https://github.com/codedge/laravel-selfupdater" - }, - "funding": [ - { - "url": "https://github.com/codedge", - "type": "github" - } - ], - "time": "2021-04-09T08:47:03+00:00" - }, { "name": "composer/ca-bundle", "version": "1.3.1", @@ -743,52 +535,59 @@ }, { "name": "composer/composer", - "version": "2.2.6", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "ce785a18c0fb472421e52d958bab339247cb0e82" + "reference": "ae23647f07932754dc9d7fd1d15657273301a009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/ce785a18c0fb472421e52d958bab339247cb0e82", - "reference": "ce785a18c0fb472421e52d958bab339247cb0e82", + "url": "https://api.github.com/repos/composer/composer/zipball/ae23647f07932754dc9d7fd1d15657273301a009", + "reference": "ae23647f07932754dc9d7fd1d15657273301a009", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^1.0", + "composer/pcre": "^2 || ^3", "composer/semver": "^3.0", "composer/spdx-licenses": "^1.2", - "composer/xdebug-handler": "^2.0", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", "justinrainbow/json-schema": "^5.2.11", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0 || ^2.0", - "react/promise": "^1.2 || ^2.7", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^2.8", "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", - "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" + "seld/phar-utils": "^1.2", + "symfony/console": "^5.4.1 || ^6.0", + "symfony/filesystem": "^5.4 || ^6.0", + "symfony/finder": "^5.4 || ^6.0", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/process": "^5.4 || ^6.0" }, "require-dev": { - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1", + "phpstan/phpstan-symfony": "^1.1", + "symfony/phpunit-bridge": "^6.0" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", "ext-zip": "Enabling the zip extension allows you to unzip archives", "ext-zlib": "Allow gzip compression of HTTP requests" }, + "default-branch": true, "bin": [ "bin/composer" ], "type": "library", "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.3-dev" } }, "autoload": { @@ -822,7 +621,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.2.6" + "source": "https://github.com/composer/composer/tree/main" }, "funding": [ { @@ -838,7 +637,7 @@ "type": "tidelift" } ], - "time": "2022-02-04T16:00:38+00:00" + "time": "2022-03-09T19:45:19+00:00" }, { "name": "composer/installers", @@ -1062,30 +861,30 @@ }, { "name": "composer/pcre", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -1113,7 +912,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.1" + "source": "https://github.com/composer/pcre/tree/3.0.0" }, "funding": [ { @@ -1129,7 +928,7 @@ "type": "tidelift" } ], - "time": "2022-01-21T20:24:37+00:00" + "time": "2022-02-25T20:21:48+00:00" }, { "name": "composer/semver", @@ -1294,27 +1093,27 @@ }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -1340,7 +1139,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -1356,7 +1155,82 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-25T21:32:43+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1" + }, + "time": "2021-08-13T13:06:58+00:00" }, { "name": "doctrine/cache", @@ -1459,16 +1333,16 @@ }, { "name": "doctrine/dbal", - "version": "3.3.2", + "version": "3.3.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed" + "reference": "82331b861727c15b1f457ef05a8729e508e7ead5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/35eae239ef515d55ebb24e9d4715cad09a4f58ed", - "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/82331b861727c15b1f457ef05a8729e508e7ead5", + "reference": "82331b861727c15b1f457ef05a8729e508e7ead5", "shasum": "" }, "require": { @@ -1483,14 +1357,14 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.4.0", + "phpstan/phpstan": "1.4.6", "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "9.5.11", + "phpunit/phpunit": "9.5.16", "psalm/plugin-phpunit": "0.16.1", "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^5.2|^6.0", "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0", - "vimeo/psalm": "4.16.1" + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -1550,7 +1424,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.3.2" + "source": "https://github.com/doctrine/dbal/tree/3.3.3" }, "funding": [ { @@ -1566,7 +1440,7 @@ "type": "tidelift" } ], - "time": "2022-02-05T16:33:45+00:00" + "time": "2022-03-09T15:39:50+00:00" }, { "name": "doctrine/deprecations", @@ -1798,16 +1672,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -1815,7 +1689,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -1854,7 +1728,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -1870,7 +1744,7 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1935,27 +1809,27 @@ }, { "name": "egulias/email-validator", - "version": "2.1.25", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + "reference": "ee0db30118f661fb166bcffbf5d82032df484697" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ee0db30118f661fb166bcffbf5d82032df484697", + "reference": "ee0db30118f661fb166bcffbf5d82032df484697", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" }, "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1963,7 +1837,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1991,7 +1865,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + "source": "https://github.com/egulias/EmailValidator/tree/3.1.2" }, "funding": [ { @@ -1999,7 +1873,7 @@ "type": "github" } ], - "time": "2020-12-29T14:50:06+00:00" + "time": "2021-10-11T09:18:27+00:00" }, { "name": "elcobvg/laravel-opcache", @@ -2062,202 +1936,6 @@ }, "time": "2020-05-16T00:51:29+00:00" }, - { - "name": "facade/flare-client-php", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed", - "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed", - "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" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.5.16", - "spatie/phpunit-snapshot-assertions": "^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Facade\\FlareClient\\": "src" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Send PHP errors to Flare", - "homepage": "https://github.com/facade/flare-client-php", - "keywords": [ - "exception", - "facade", - "flare", - "reporting" - ], - "support": { - "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.9.1" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2021-09-13T12:16:46+00:00" - }, - { - "name": "facade/ignition", - "version": "2.17.4", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition.git", - "reference": "95c80bd35ee6858e9e1439b2f6a698295eeb2070" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/95c80bd35ee6858e9e1439b2f6a698295eeb2070", - "reference": "95c80bd35ee6858e9e1439b2f6a698295eeb2070", - "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" - }, - "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" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Facade\\Ignition\\IgnitionServiceProvider" - ], - "aliases": { - "Flare": "Facade\\Ignition\\Facades\\Flare" - } - } - }, - "autoload": { - "psr-4": { - "Facade\\Ignition\\": "src" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A beautiful error page for Laravel applications.", - "homepage": "https://github.com/facade/ignition", - "keywords": [ - "error", - "flare", - "laravel", - "page" - ], - "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" - }, - "time": "2021-12-27T15:11:24+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" - } - ], - "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" - }, { "name": "fakerphp/faker", "version": "v1.19.0", @@ -2326,39 +2004,102 @@ "time": "2022-02-02T17:38:57+00:00" }, { - "name": "fideloper/proxy", - "version": "4.4.1", + "name": "fisharebest/ext-calendar", + "version": "2.5.0", "source": { "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0" + "url": "https://github.com/fisharebest/ext-calendar.git", + "reference": "155a2d3f5713e1e1805d68cdb42a28ca842e7329" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0", + "url": "https://api.github.com/repos/fisharebest/ext-calendar/zipball/155a2d3f5713e1e1805d68cdb42a28ca842e7329", + "reference": "155a2d3f5713e1e1805d68cdb42a28ca842e7329", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0", - "php": ">=5.4.0" + "php": ">=5.3.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "<6", + "satooshi/php-coveralls": "*" + }, + "type": "library", + "autoload": { + "files": [ + "src/shims.php" + ], + "psr-4": { + "Fisharebest\\ExtCalendar\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0+" + ], + "authors": [ + { + "name": "Greg Roach", + "email": "fisharebest@gmail.com", + "role": "Developer" + } + ], + "description": "Implementation of the Arabic (Hijri), French, Gregorian, Jewish, Julian and Persian (Jalali) calendars. Also provides a replacement for the PHP ext/calendar extension.", + "homepage": "https://github.com/fisharebest/ext-calendar", + "keywords": [ + "Jalali", + "arabic", + "calendar", + "ext-calendar", + "french", + "gregorian", + "hebrew", + "hijri", + "jewish", + "julian", + "julian day", + "julian day number", + "persian", + "shamsi" + ], + "support": { + "issues": "https://github.com/fisharebest/ext-calendar/issues", + "source": "https://github.com/fisharebest/ext-calendar/tree/develop" + }, + "time": "2018-09-17T20:40:07+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] + "branch-alias": { + "dev-main": "1.1-dev" } }, "autoload": { "psr-4": { - "Fideloper\\Proxy\\": "src/" + "Fruitcake\\Cors\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2367,21 +2108,36 @@ ], "authors": [ { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" } ], - "description": "Set trusted proxies for Laravel", + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", "keywords": [ - "load balancing", - "proxy", - "trusted proxy" + "cors", + "laravel", + "symfony" ], "support": { - "issues": "https://github.com/fideloper/TrustedProxy/issues", - "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.1" + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" }, - "time": "2020-10-22T13:48:01+00:00" + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-02-20T15:07:15+00:00" }, { "name": "graham-campbell/result-type", @@ -2447,74 +2203,127 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.5", + "version": "7.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17.0" + "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" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.1" + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "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" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "7.4-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "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": "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": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5" + "source": "https://github.com/guzzle/guzzle/tree/7.4.1" }, - "time": "2020-06-16T21:01:06+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/guzzle", + "type": "tidelift" + } + ], + "time": "2021-12-06T18:43:05+00:00" }, { "name": "guzzlehttp/promises", @@ -2543,12 +2352,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2602,29 +2411,32 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.3", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", - "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.4.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.8 || ^9.3.10" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -2632,13 +2444,10 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "2.1-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Psr7\\": "src/" } @@ -2677,6 +2486,11 @@ "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": "PSR-7 message implementation that also provides common utility methods", @@ -2692,7 +2506,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.3" + "source": "https://github.com/guzzle/psr7/tree/2.1.0" }, "funding": [ { @@ -2708,7 +2522,7 @@ "type": "tidelift" } ], - "time": "2021-10-05T13:56:00+00:00" + "time": "2021-10-06T17:43:30+00:00" }, { "name": "hashids/hashids", @@ -2782,20 +2596,20 @@ }, { "name": "igaster/laravel-theme", - "version": "v2.0.17", + "version": "v2.0.18", "source": { "type": "git", "url": "https://github.com/igaster/laravel-theme.git", - "reference": "c02891e4fb5f7ac9e65d52a0b28d867a63251fdb" + "reference": "b1efebe31ba39a1d3bea1709782be4a084dedd99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/igaster/laravel-theme/zipball/c02891e4fb5f7ac9e65d52a0b28d867a63251fdb", - "reference": "c02891e4fb5f7ac9e65d52a0b28d867a63251fdb", + "url": "https://api.github.com/repos/igaster/laravel-theme/zipball/b1efebe31ba39a1d3bea1709782be4a084dedd99", + "reference": "b1efebe31ba39a1d3bea1709782be4a084dedd99", "shasum": "" }, "require": { - "illuminate/contracts": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0" + "illuminate/contracts": "5.4.* || 5.5.* || 5.6.* || 5.7.* || 5.8.* || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "suggest": { "orchestra/asset": "Use '@css' and '@js' in Blade files" @@ -2839,9 +2653,9 @@ ], "support": { "issues": "https://github.com/igaster/laravel-theme/issues", - "source": "https://github.com/igaster/laravel-theme/tree/v2.0.17" + "source": "https://github.com/igaster/laravel-theme/tree/v2.0.18" }, - "time": "2020-09-09T14:38:23+00:00" + "time": "2022-02-11T04:10:11+00:00" }, { "name": "intervention/image", @@ -2927,74 +2741,6 @@ ], "time": "2021-12-16T16:49:26+00:00" }, - { - "name": "irazasyed/laravel-gamp", - "version": "v1.8", - "source": { - "type": "git", - "url": "https://github.com/irazasyed/laravel-gamp.git", - "reference": "3cbd27e614852ecd23a62cb6d4f92951bfabb139" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/irazasyed/laravel-gamp/zipball/3cbd27e614852ecd23a62cb6d4f92951bfabb139", - "reference": "3cbd27e614852ecd23a62cb6d4f92951bfabb139", - "shasum": "" - }, - "require": { - "illuminate/support": "^5.0 || ^6.0 || ^7.0 || ^8.0", - "php": "^7.2 || ^8.0", - "theiconic/php-ga-measurement-protocol": "^2.0" - }, - "suggest": { - "irazasyed/larasupport": "Adds Package Support in Lumen, Lets you install any Laravel Package." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, - "laravel": { - "providers": [ - "Irazasyed\\LaravelGAMP\\LaravelGAMPServiceProvider" - ], - "aliases": { - "GAMP": "Irazasyed\\LaravelGAMP\\Facades\\GAMP" - } - } - }, - "autoload": { - "psr-4": { - "Irazasyed\\LaravelGAMP\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Syed Irfaq R.", - "email": "syed+gh@lukonet.com", - "homepage": "https://github.com/irazasyed" - } - ], - "description": "Send analytics data to Google Analytics from Laravel. A package for GA Measurement Protocol API", - "keywords": [ - "analytics", - "ga measurement protocol", - "google analytics", - "laravel google analytics", - "lumen google analytics", - "measurement protocol", - "tracking" - ], - "support": { - "issues": "https://github.com/irazasyed/laravel-gamp/issues", - "source": "https://github.com/irazasyed/laravel-gamp/tree/v1.8" - }, - "time": "2020-11-26T15:01:01+00:00" - }, { "name": "jeremykendall/php-domain-parser", "version": "5.7.2", @@ -3189,22 +2935,26 @@ }, { "name": "jpkleemans/attribute-events", - "version": "1.1.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/jpkleemans/attribute-events.git", - "reference": "adfbd627d4012a6a907849c9ea510a1651e961bc" + "reference": "bd12afa375ccfc606784be22dedcd8a6b6a3b557" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jpkleemans/attribute-events/zipball/adfbd627d4012a6a907849c9ea510a1651e961bc", - "reference": "adfbd627d4012a6a907849c9ea510a1651e961bc", + "url": "https://api.github.com/repos/jpkleemans/attribute-events/zipball/bd12afa375ccfc606784be22dedcd8a6b6a3b557", + "reference": "bd12afa375ccfc606784be22dedcd8a6b6a3b557", "shasum": "" }, + "require": { + "php": "^7.3|^8.0" + }, "require-dev": { - "illuminate/database": "^8.0", - "illuminate/events": "^8.0", - "phpunit/phpunit": "^9.0" + "friendsofphp/php-cs-fixer": "^3.6", + "illuminate/database": "^9.1", + "illuminate/events": "^9.1", + "phpunit/phpunit": "^9.5" }, "type": "library", "autoload": { @@ -3235,9 +2985,9 @@ ], "support": { "issues": "https://github.com/jpkleemans/attribute-events/issues", - "source": "https://github.com/jpkleemans/attribute-events/tree/1.1.0" + "source": "https://github.com/jpkleemans/attribute-events/tree/1.3.0" }, - "time": "2020-11-21T14:52:35+00:00" + "time": "2022-02-19T13:12:22+00:00" }, { "name": "justinrainbow/json-schema", @@ -3393,12 +3143,12 @@ } }, "autoload": { - "psr-0": { - "Laracasts\\Flash": "src/" - }, "files": [ "src/Laracasts/Flash/functions.php" - ] + ], + "psr-0": { + "Laracasts\\Flash": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3419,56 +3169,55 @@ }, { "name": "laravel/framework", - "version": "v8.83.0", + "version": "v9.4.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "29bc8779103909ebc428478b339ee6fa8703e193" + "reference": "29f0aaade82eadd20ef881b4efb88b0dad4e9a5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/29bc8779103909ebc428478b339ee6fa8703e193", - "reference": "29bc8779103909ebc428478b339ee6fa8703e193", + "url": "https://api.github.com/repos/laravel/framework/zipball/29f0aaade82eadd20ef881b4efb88b0dad4e9a5b", + "reference": "29f0aaade82eadd20ef881b4efb88b0dad4e9a5b", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", + "doctrine/inflector": "^2.0", + "dragonmantank/cron-expression": "^3.1", + "egulias/email-validator": "^3.1", "ext-mbstring": "*", "ext-openssl": "*", + "fruitcake/php-cors": "^1.2", "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", - "league/flysystem": "^1.1", + "league/commonmark": "^2.2", + "league/flysystem": "^3.0", "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", + "php": "^8.0.2", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.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", + "symfony/console": "^6.0", + "symfony/error-handler": "^6.0", + "symfony/finder": "^6.0", + "symfony/http-foundation": "^6.0", + "symfony/http-kernel": "^6.0", + "symfony/mailer": "^6.0", + "symfony/mime": "^6.0", + "symfony/process": "^6.0", + "symfony/routing": "^6.0", + "symfony/var-dumper": "^6.0", "tijsverkoyen/css-to-inline-styles": "^2.2.2", "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^1.6.1" + "voku/portable-ascii": "^2.0" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0", - "psr/simple-cache-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", @@ -3476,6 +3225,7 @@ "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", @@ -3506,19 +3256,22 @@ "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", + "fakerphp/faker": "^1.9.2", + "guzzlehttp/guzzle": "^7.2", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.27", + "orchestra/testbench-core": "^7.1", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.19|^9.5.8", + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^9.5.8", "predis/predis": "^1.1.9", - "symfony/cache": "^5.4" + "symfony/cache": "^6.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).", + "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.", @@ -3530,27 +3283,29 @@ "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).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.2).", "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).", + "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-sftp-v3": "Required to use the Flysystem SFTP driver (^3.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).", + "phpunit/phpunit": "Required to use assertions and run tests (^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)." + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^6.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "9.x-dev" } }, "autoload": { @@ -3564,7 +3319,8 @@ "Illuminate\\": "src/Illuminate/", "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" ] } }, @@ -3588,7 +3344,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-02-08T15:44:51+00:00" + "time": "2022-03-08T16:17:00+00:00" }, { "name": "laravel/helpers", @@ -3646,74 +3402,18 @@ }, "time": "2022-01-12T15:58:51+00:00" }, - { - "name": "laravel/legacy-factories", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/legacy-factories.git", - "reference": "5edc7e7eb76e7b4b29221f32139bcbf806c8870f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/legacy-factories/zipball/5edc7e7eb76e7b4b29221f32139bcbf806c8870f", - "reference": "5edc7e7eb76e7b4b29221f32139bcbf806c8870f", - "shasum": "" - }, - "require": { - "illuminate/macroable": "^8.0|^9.0", - "php": "^7.3|^8.0", - "symfony/finder": "^3.4|^4.0|^5.0|^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, - "laravel": { - "providers": [ - "Illuminate\\Database\\Eloquent\\LegacyFactoryServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "helpers.php" - ], - "psr-4": { - "Illuminate\\Database\\Eloquent\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The legacy version of the Laravel Eloquent factories.", - "homepage": "http://laravel.com", - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2022-01-13T08:45:08+00:00" - }, { "name": "laravel/serializable-closure", - "version": "v1.1.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "65c9faf50d567b65d81764a44526545689e3fe63" + "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/65c9faf50d567b65d81764a44526545689e3fe63", - "reference": "65c9faf50d567b65d81764a44526545689e3fe63", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/9e4b005daa20b0c161f3845040046dc9ddc1d74e", + "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e", "shasum": "" }, "require": { @@ -3759,26 +3459,26 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-02-01T16:29:39+00:00" + "time": "2022-02-11T19:23:53+00:00" }, { "name": "laravel/ui", - "version": "v3.4.2", + "version": "v3.4.5", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "e01198123f7f4369d13c1f83a897c3f5e97fc9f4" + "reference": "f11d295de1508c5bb56206a620b00b6616de414c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/e01198123f7f4369d13c1f83a897c3f5e97fc9f4", - "reference": "e01198123f7f4369d13c1f83a897c3f5e97fc9f4", + "url": "https://api.github.com/repos/laravel/ui/zipball/f11d295de1508c5bb56206a620b00b6616de414c", + "reference": "f11d295de1508c5bb56206a620b00b6616de414c", "shasum": "" }, "require": { "illuminate/console": "^8.42|^9.0", "illuminate/filesystem": "^8.42|^9.0", - "illuminate/support": "^8.42|^9.0", + "illuminate/support": "^8.82|^9.0", "illuminate/validation": "^8.42|^9.0", "php": "^7.3|^8.0" }, @@ -3818,36 +3518,36 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v3.4.2" + "source": "https://github.com/laravel/ui/tree/v3.4.5" }, - "time": "2022-01-25T20:15:56+00:00" + "time": "2022-02-21T14:59:16+00:00" }, { "name": "laravelcollective/html", - "version": "v6.2.1", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/LaravelCollective/html.git", - "reference": "ae15b9c4bf918ec3a78f092b8555551dd693fde3" + "reference": "78c3cb516ac9e6d3d76cad9191f81d217302dea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/LaravelCollective/html/zipball/ae15b9c4bf918ec3a78f092b8555551dd693fde3", - "reference": "ae15b9c4bf918ec3a78f092b8555551dd693fde3", + "url": "https://api.github.com/repos/LaravelCollective/html/zipball/78c3cb516ac9e6d3d76cad9191f81d217302dea6", + "reference": "78c3cb516ac9e6d3d76cad9191f81d217302dea6", "shasum": "" }, "require": { - "illuminate/http": "^6.0|^7.0|^8.0", - "illuminate/routing": "^6.0|^7.0|^8.0", - "illuminate/session": "^6.0|^7.0|^8.0", - "illuminate/support": "^6.0|^7.0|^8.0", - "illuminate/view": "^6.0|^7.0|^8.0", + "illuminate/http": "^6.0|^7.0|^8.0|^9.0", + "illuminate/routing": "^6.0|^7.0|^8.0|^9.0", + "illuminate/session": "^6.0|^7.0|^8.0|^9.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0", + "illuminate/view": "^6.0|^7.0|^8.0|^9.0", "php": ">=7.2.5" }, "require-dev": { - "illuminate/database": "^6.0|^7.0|^8.0", + "illuminate/database": "^6.0|^7.0|^8.0|^9.0", "mockery/mockery": "~1.0", - "phpunit/phpunit": "~8.5" + "phpunit/phpunit": "~8.5|^9.5.10" }, "type": "library", "extra": { @@ -3865,12 +3565,12 @@ } }, "autoload": { - "psr-4": { - "Collective\\Html\\": "src/" - }, "files": [ "src/helpers.php" - ] + ], + "psr-4": { + "Collective\\Html\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3892,46 +3592,56 @@ "issues": "https://github.com/LaravelCollective/html/issues", "source": "https://github.com/LaravelCollective/html" }, - "time": "2020-12-15T20:20:05+00:00" + "time": "2022-02-08T21:02:54+00:00" }, { "name": "league/commonmark", - "version": "1.6.7", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b" + "reference": "47b015bc4e50fd4438c1ffef6139a1fb65d2ab71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b", - "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/47b015bc4e50fd4438c1ffef6139a1fb65d2ab71", + "reference": "47b015bc4e50fd4438c1ffef6139a1fb65d2ab71", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "scrutinizer/ocular": "1.7.*" + "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.15" }, "require-dev": { - "cebe/markdown": "~1.0", - "commonmark/commonmark.js": "0.29.2", - "erusev/parsedown": "~1.0", + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "^1.4", - "phpstan/phpstan": "^0.12.90", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", - "scrutinizer/ocular": "^1.5", - "symfony/finder": "^4.2" + "michelf/php-markdown": "^1.4", + "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" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, - "bin": [ - "bin/commonmark" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.3-dev" + } + }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -3949,7 +3659,7 @@ "role": "Lead Developer" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", @@ -3963,6 +3673,7 @@ ], "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" @@ -3985,35 +3696,117 @@ "type": "tidelift" } ], - "time": "2022-01-13T17:18:13+00:00" + "time": "2022-02-26T21:24:45+00:00" }, { - "name": "league/csv", - "version": "9.7.4", + "name": "league/config", + "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/thephpleague/csv.git", - "reference": "002f55f649e7511710dc7154ff44c7be32c8195c" + "url": "https://github.com/thephpleague/config.git", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/002f55f649e7511710dc7154ff44c7be32c8195c", - "reference": "002f55f649e7511710dc7154ff44c7be32c8195c", + "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "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" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2021-08-14T12:15:32+00:00" + }, + { + "name": "league/csv", + "version": "9.8.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/csv.git", + "reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/9d2e0265c5d90f5dd601bc65ff717e05cec19b47", + "reference": "9d2e0265c5d90f5dd601bc65ff717e05cec19b47", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.3 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "ext-curl": "*", "ext-dom": "*", - "friendsofphp/php-cs-fixer": "^3.0", - "phpstan/phpstan": "^1.0", + "friendsofphp/php-cs-fixer": "^v3.4.0", + "phpstan/phpstan": "^1.3.0", "phpstan/phpstan-phpunit": "^1.0.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5" + "phpstan/phpstan-strict-rules": "^1.1.0", + "phpunit/phpunit": "^9.5.11" }, "suggest": { "ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes", @@ -4026,12 +3819,12 @@ } }, "autoload": { - "psr-4": { - "League\\Csv\\": "src" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "League\\Csv\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4046,7 +3839,7 @@ } ], "description": "CSV data manipulation made easy in PHP", - "homepage": "http://csv.thephpleague.com", + "homepage": "https://csv.thephpleague.com", "keywords": [ "convert", "csv", @@ -4069,58 +3862,52 @@ "type": "github" } ], - "time": "2021-11-30T07:09:34+00:00" + "time": "2022-01-04T00:13:07+00:00" }, { "name": "league/flysystem", - "version": "1.1.9", + "version": "3.0.12", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99" + "reference": "4744d96fb2456d9808be3ad596a2520b902996e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", - "reference": "094defdb4a7001845300334e7c1ee2335925ef99", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4744d96fb2456d9808be3ad596a2520b902996e2", + "reference": "4744d96fb2456d9808be3ad596a2520b902996e2", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, "conflict": { - "league/flysystem-sftp": "<1.0.6" + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "symfony/http-client": "<5.2" }, "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" + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.0", + "aws/aws-sdk-php": "^3.198.1", + "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": "^2.0", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4130,67 +3917,70 @@ "authors": [ { "name": "Frank de Jonge", - "email": "info@frenky.net" + "email": "info@frankdejonge.nl" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "File storage abstraction for PHP", "keywords": [ - "Cloud Files", "WebDAV", - "abstraction", "aws", "cloud", - "copy.com", - "dropbox", - "file systems", + "file", "files", "filesystem", "filesystems", "ftp", - "rackspace", - "remote", "s3", "sftp", "storage" ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" + "source": "https://github.com/thephpleague/flysystem/tree/3.0.12" }, "funding": [ { "url": "https://offset.earth/frankdejonge", - "type": "other" + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" } ], - "time": "2021-12-09T09:40:50+00:00" + "time": "2022-03-12T19:32:12+00:00" }, { "name": "league/geotools", - "version": "0.8.3", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/thephpleague/geotools.git", - "reference": "4869ab26f3b88417901274f51fc6fde7e3189b91" + "reference": "9ddb49c708408b95c37f53fda06ca791c6ce9244" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/geotools/zipball/4869ab26f3b88417901274f51fc6fde7e3189b91", - "reference": "4869ab26f3b88417901274f51fc6fde7e3189b91", + "url": "https://api.github.com/repos/thephpleague/geotools/zipball/9ddb49c708408b95c37f53fda06ca791c6ce9244", + "reference": "9ddb49c708408b95c37f53fda06ca791c6ce9244", "shasum": "" }, "require": { "cache/array-adapter": "^1.0", "ext-bcmath": "*", + "ext-json": "*", "php": "^7.3 || ^7.4 || ^8.0", "php-http/discovery": "^1.0", - "psr/cache": "^1.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0", "react/event-loop": "^1.0", - "react/promise": "^2.2", - "symfony/console": "^3.4 || ^4.4 || ^5.0", - "symfony/property-access": "^3.4 || ^4.4 || ^5.0", - "symfony/serializer": "^3.4 || ^4.4 || ^5.0", - "willdurand/geocoder": "^4.2" + "react/promise": "^2.8", + "symfony/console": "^4.4 || ^5.0 || ^6.0", + "symfony/property-access": "^4.4 || ^5.0 || ^6.0", + "symfony/serializer": "^4.4 || ^5.0 || ^6.0", + "willdurand/geocoder": "^4.5" }, "replace": { "toin0u/geotools": "*" @@ -4202,11 +3992,6 @@ "bin/geotools" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.7-dev" - } - }, "autoload": { "psr-4": { "League\\Geotools\\": "src", @@ -4246,27 +4031,27 @@ "issues": "https://github.com/thephpleague/geotools/issues", "source": "https://github.com/thephpleague/geotools" }, - "time": "2021-07-07T14:49:40+00:00" + "time": "2022-02-11T08:56:59+00:00" }, { "name": "league/iso3166", - "version": "3.0.0", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/thephpleague/iso3166.git", - "reference": "9976d382f270ad3f3df8a68719beb7a7179ffa1e" + "reference": "1a3ec7e6f1e4f16fce68dc239bafae217fbdcfef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/iso3166/zipball/9976d382f270ad3f3df8a68719beb7a7179ffa1e", - "reference": "9976d382f270ad3f3df8a68719beb7a7179ffa1e", + "url": "https://api.github.com/repos/thephpleague/iso3166/zipball/1a3ec7e6f1e4f16fce68dc239bafae217fbdcfef", + "reference": "1a3ec7e6f1e4f16fce68dc239bafae217fbdcfef", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { @@ -4303,7 +4088,7 @@ "issues": "https://github.com/thephpleague/iso3166/issues", "source": "https://github.com/thephpleague/iso3166" }, - "time": "2020-12-05T06:50:42+00:00" + "time": "2021-10-22T12:47:55+00:00" }, { "name": "league/mime-type-detection", @@ -4363,28 +4148,28 @@ }, { "name": "madnest/madzipper", - "version": "v1.1.1", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/madnest/madzipper.git", - "reference": "788211daf4555ecdacee341816720437d169c0cc" + "reference": "fd535f180cb12eda336fc3515a08b332286f0aaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/madnest/madzipper/zipball/788211daf4555ecdacee341816720437d169c0cc", - "reference": "788211daf4555ecdacee341816720437d169c0cc", + "url": "https://api.github.com/repos/madnest/madzipper/zipball/fd535f180cb12eda336fc3515a08b332286f0aaf", + "reference": "fd535f180cb12eda336fc3515a08b332286f0aaf", "shasum": "" }, "require": { "ext-zip": "*", - "illuminate/filesystem": "^7.0|^8.0", - "illuminate/support": "^7.0|^8.0", - "php": "^7.3|^8.0" + "illuminate/filesystem": "^9.0", + "illuminate/support": "^9.0", + "php": "^8.0" }, "require-dev": { "mockery/mockery": "^1.4.4", - "nunomaduro/collision": "^5.10", - "orchestra/testbench": "^6.8", + "nunomaduro/collision": "^6.0", + "orchestra/testbench": "^7.0", "phpunit/phpunit": "^9.5" }, "type": "library", @@ -4418,26 +4203,27 @@ "description": "Wannabe successor of Chumper/Zipper package for Laravel", "support": { "issues": "https://github.com/madnest/madzipper/issues", - "source": "https://github.com/madnest/madzipper/tree/v1.1.1" + "source": "https://github.com/madnest/madzipper/tree/v1.3.0" }, - "time": "2021-11-20T18:23:07+00:00" + "time": "2022-02-22T16:35:05+00:00" }, { "name": "markrogoyski/math-php", - "version": "v1.11.0", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/markrogoyski/math-php.git", - "reference": "894b01ab517ee0a7bd7f640f792e7ad436187f93" + "reference": "ca71ca97dc136e7bb9e9e1fe05782f343a5692d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/markrogoyski/math-php/zipball/894b01ab517ee0a7bd7f640f792e7ad436187f93", - "reference": "894b01ab517ee0a7bd7f640f792e7ad436187f93", + "url": "https://api.github.com/repos/markrogoyski/math-php/zipball/ca71ca97dc136e7bb9e9e1fe05782f343a5692d4", + "reference": "ca71ca97dc136e7bb9e9e1fe05782f343a5692d4", "shasum": "" }, "require": { - "php": ">=7.0.0" + "ext-json": "*", + "php": ">=7.2.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.0", @@ -4445,7 +4231,7 @@ "phploc/phploc": "*", "phpmd/phpmd": "^2.6", "phpstan/phpstan": "*", - "phpunit/phpunit": ">=6.0 <8.0", + "phpunit/phpunit": "^8.5", "squizlabs/php_codesniffer": "3.*" }, "type": "library", @@ -4470,10 +4256,6 @@ "homepage": "https://github.com/Beakerboy", "role": "Developer" }, - { - "name": "Jakob Sandberg", - "role": "Contributor" - }, { "name": "MathPHP Community of Contributors", "homepage": "https://github.com/markrogoyski/math-php/graphs/contributors" @@ -4496,22 +4278,22 @@ ], "support": { "issues": "https://github.com/markrogoyski/math-php/issues", - "source": "https://github.com/markrogoyski/math-php/tree/v1.11.0" + "source": "https://github.com/markrogoyski/math-php/tree/v2.5.0" }, - "time": "2021-05-09T05:40:47+00:00" + "time": "2021-11-22T05:14:07+00:00" }, { "name": "monolog/monolog", - "version": "2.3.5", + "version": "2.4.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + "reference": "d7fd7450628561ba697b7097d86db72662f54aef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", - "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7fd7450628561ba697b7097d86db72662f54aef", + "reference": "d7fd7450628561ba697b7097d86db72662f54aef", "shasum": "" }, "require": { @@ -4533,7 +4315,7 @@ "phpstan/phpstan": "^0.12.91", "phpunit/phpunit": "^8.5", "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", + "rollbar/rollbar": "^1.3 || ^2 || ^3", "ruflin/elastica": ">=0.90@dev", "swiftmailer/swiftmailer": "^5.3|^6.0" }, @@ -4585,7 +4367,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + "source": "https://github.com/Seldaek/monolog/tree/2.4.0" }, "funding": [ { @@ -4597,32 +4379,33 @@ "type": "tidelift" } ], - "time": "2021-10-01T21:08:31+00:00" + "time": "2022-03-14T12:44:37+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.10.3", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "c6a951b75d684fd43fbbd69617488e1e2e8924ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/c6a951b75d684fd43fbbd69617488e1e2e8924ba", + "reference": "c6a951b75d684fd43fbbd69617488e1e2e8924ba", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "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": { @@ -4647,7 +4430,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.3" }, "funding": [ { @@ -4655,29 +4438,29 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-02T14:16:47+00:00" }, { "name": "nabeel/vacentral", - "version": "2.0.5", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/nabeelio/vacentral-library.git", - "reference": "621c9f3129b7e2ae2416006c6fcfc6027fa04ba3" + "reference": "649364579e8ee6c51a3121298178886060df69d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nabeelio/vacentral-library/zipball/621c9f3129b7e2ae2416006c6fcfc6027fa04ba3", - "reference": "621c9f3129b7e2ae2416006c6fcfc6027fa04ba3", + "url": "https://api.github.com/repos/nabeelio/vacentral-library/zipball/649364579e8ee6c51a3121298178886060df69d1", + "reference": "649364579e8ee6c51a3121298178886060df69d1", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/guzzle": "~6.0", + "guzzlehttp/guzzle": ">= 6.0", "php": ">= 7.3" }, "require-dev": { - "phpunit/phpunit": "~9.0" + "phpunit/phpunit": ">= 9.0" }, "type": "library", "autoload": { @@ -4694,22 +4477,22 @@ ], "support": { "issues": "https://github.com/nabeelio/vacentral-library/issues", - "source": "https://github.com/nabeelio/vacentral-library/tree/2.0.5" + "source": "https://github.com/nabeelio/vacentral-library/tree/2.1.0" }, - "time": "2020-06-04T12:44:52+00:00" + "time": "2022-02-24T20:10:43+00:00" }, { "name": "nesbot/carbon", - "version": "2.56.0", + "version": "2.57.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "626ec8cbb724cd3c3400c3ed8f730545b744e3f4" + "reference": "4a54375c21eea4811dbd1149fe6b246517554e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/626ec8cbb724cd3c3400c3ed8f730545b744e3f4", - "reference": "626ec8cbb724cd3c3400c3ed8f730545b744e3f4", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4a54375c21eea4811dbd1149fe6b246517554e78", + "reference": "4a54375c21eea4811dbd1149fe6b246517554e78", "shasum": "" }, "require": { @@ -4792,7 +4575,154 @@ "type": "tidelift" } ], - "time": "2022-01-21T17:08:38+00:00" + "time": "2022-02-13T18:13:33+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.7", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "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" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.7" + }, + "time": "2022-01-24T11:29:14+00:00" }, { "name": "nikic/php-parser", @@ -4852,30 +4782,30 @@ }, { "name": "nwidart/laravel-modules", - "version": "8.2.0", + "version": "9.0.1", "source": { "type": "git", "url": "https://github.com/nWidart/laravel-modules.git", - "reference": "6ade5ec19e81a0e4807834886a2c47509d069cb7" + "reference": "5483801843f653df5ffd074da373508f4d3925c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/6ade5ec19e81a0e4807834886a2c47509d069cb7", - "reference": "6ade5ec19e81a0e4807834886a2c47509d069cb7", + "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/5483801843f653df5ffd074da373508f4d3925c9", + "reference": "5483801843f653df5ffd074da373508f4d3925c9", "shasum": "" }, "require": { "ext-json": "*", - "php": ">=7.3" + "php": ">=8.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" + "friendsofphp/php-cs-fixer": "^3.6", + "laravel/framework": "^9.0", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^7.0", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9.5", + "spatie/phpunit-snapshot-assertions": "^4.2" }, "type": "library", "extra": { @@ -4888,7 +4818,7 @@ } }, "branch-alias": { - "dev-master": "8.0-dev" + "dev-master": "9.0-dev" } }, "autoload": { @@ -4921,7 +4851,7 @@ ], "support": { "issues": "https://github.com/nWidart/laravel-modules/issues", - "source": "https://github.com/nWidart/laravel-modules/tree/8.2.0" + "source": "https://github.com/nWidart/laravel-modules/tree/9.0.1" }, "funding": [ { @@ -4929,7 +4859,7 @@ "type": "github" } ], - "time": "2020-11-11T09:24:22+00:00" + "time": "2022-02-28T13:17:36+00:00" }, { "name": "oomphinc/composer-installers-extender", @@ -4988,71 +4918,6 @@ }, "time": "2021-12-15T12:32:42+00:00" }, - { - "name": "opis/closure", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, - "files": [ - "functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" - }, - "time": "2022-01-27T09:35:39+00:00" - }, { "name": "php-http/discovery", "version": "1.14.1", @@ -5287,162 +5152,30 @@ }, "time": "2020-02-28T15:42:04+00:00" }, - { - "name": "pragmarx/version", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/antonioribeiro/version.git", - "reference": "19595ae0068e1862a7d16288ad5e41ab376e264f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/version/zipball/19595ae0068e1862a7d16288ad5e41ab376e264f", - "reference": "19595ae0068e1862a7d16288ad5e41ab376e264f", - "shasum": "" - }, - "require": { - "laravel/framework": ">=5.5.33", - "php": ">=7.0", - "pragmarx/yaml": "^1.0", - "symfony/process": "^3.3|^4.0|^5.0" - }, - "require-dev": { - "orchestra/testbench": "3.4.*|3.5.*|3.6.*|3.7.*|4.*|5.*|6.*", - "phpunit/phpunit": "~5|~6|~7|~8|~9" - }, - "type": "library", - "extra": { - "component": "package", - "laravel": { - "providers": [ - "PragmaRX\\Version\\Package\\ServiceProvider" - ], - "aliases": { - "Version": "PragmaRX\\Version\\Package\\Facade" - } - } - }, - "autoload": { - "psr-4": { - "PragmaRX\\Version\\Package\\": "src/package", - "PragmaRX\\Version\\Tests\\": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "description": "Take control over your Laravel app version", - "keywords": [ - "laravel", - "version", - "versioning" - ], - "support": { - "issues": "https://github.com/antonioribeiro/version/issues", - "source": "https://github.com/antonioribeiro/version/tree/v1.3.0" - }, - "time": "2020-12-16T00:40:26+00:00" - }, - { - "name": "pragmarx/yaml", - "version": "v1.2.1", - "source": { - "type": "git", - "url": "https://github.com/antonioribeiro/yaml.git", - "reference": "9f2b44c4a31f8a71bab77169205aee7184ae3ef4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/yaml/zipball/9f2b44c4a31f8a71bab77169205aee7184ae3ef4", - "reference": "9f2b44c4a31f8a71bab77169205aee7184ae3ef4", - "shasum": "" - }, - "require": { - "illuminate/support": ">=5.5.33", - "php": ">=7.0", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "orchestra/testbench": "3.5|^3.6|^4.0|^5.0", - "phpunit/phpunit": "^4.0|^6.4|^7.0|^8.0|^9.0" - }, - "suggest": { - "ext-yaml": "Required to use the PECL YAML." - }, - "type": "library", - "extra": { - "component": "package", - "laravel": { - "providers": [ - "PragmaRX\\Yaml\\Package\\ServiceProvider" - ], - "aliases": { - "Yaml": "PragmaRX\\Yaml\\Package\\Facade" - } - } - }, - "autoload": { - "psr-4": { - "PragmaRX\\Yaml\\Package\\": "src/package", - "PragmaRX\\Yaml\\Tests\\": "tests/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Antonio Carlos Ribeiro", - "email": "acr@antoniocarlosribeiro.com", - "role": "Creator & Designer" - } - ], - "description": "Load your Laravel config files using yaml", - "keywords": [ - "config", - "laravel", - "yaml" - ], - "support": { - "issues": "https://github.com/antonioribeiro/yaml/issues", - "source": "https://github.com/antonioribeiro/yaml/tree/v1.2.1" - }, - "time": "2020-05-21T19:46:28+00:00" - }, { "name": "prettus/l5-repository", - "version": "2.7.9", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/andersao/l5-repository.git", - "reference": "834d61f0d5d9b6ef5786980e0bf4900fffbccd76" + "reference": "bdaf12dcf1fcc2637ccbe06999f789a9ff522fea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andersao/l5-repository/zipball/834d61f0d5d9b6ef5786980e0bf4900fffbccd76", - "reference": "834d61f0d5d9b6ef5786980e0bf4900fffbccd76", + "url": "https://api.github.com/repos/andersao/l5-repository/zipball/bdaf12dcf1fcc2637ccbe06999f789a9ff522fea", + "reference": "bdaf12dcf1fcc2637ccbe06999f789a9ff522fea", "shasum": "" }, "require": { - "illuminate/config": "~5.0|~6.0|~7.0|^8.0", - "illuminate/console": "~5.0|~6.0|~7.0|^8.0", - "illuminate/database": "~5.0|~6.0|~7.0|^8.0", - "illuminate/filesystem": "~5.0|~6.0|~7.0|^8.0", - "illuminate/http": "~5.0|~6.0|~7.0|^8.0", - "illuminate/pagination": "~5.0|~6.0|~7.0|^8.0", - "illuminate/support": "~5.0|~6.0|~7.0|^8.0", - "illuminate/validation": "~5.0|~6.0|~7.0|^8.0", - "prettus/laravel-validation": "~1.1|~1.2" + "illuminate/config": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/console": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/database": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/filesystem": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/http": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/pagination": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/support": "~5.0|~6.0|~7.0|^8.0|^9.0", + "illuminate/validation": "~5.0|~6.0|~7.0|^8.0|^9.0", + "prettus/laravel-validation": "~1.1|~1.2|~1.3|~1.4" }, "suggest": { "league/fractal": "Required to use the Fractal Presenter (0.12.*).", @@ -5474,7 +5207,7 @@ "role": "Developer" } ], - "description": "Laravel 5|6|7|8 - Repositories to the database layer", + "description": "Laravel 5|6|7|8|9 - Repositories to the database layer", "homepage": "http://andersao.github.io/l5-repository", "keywords": [ "cache", @@ -5490,25 +5223,25 @@ "source": "https://github.com/andersao/l5-repository", "wiki": "https://github.com/andersao/l5-repository" }, - "time": "2021-10-14T23:03:30+00:00" + "time": "2022-02-21T11:19:35+00:00" }, { "name": "prettus/laravel-validation", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/andersao/laravel-validator.git", - "reference": "cce3c273c9d44f77de031dc4dedd261ab936c497" + "reference": "45d6b64e35d966aa0866d6f5fd22ecbb33ea41d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andersao/laravel-validator/zipball/cce3c273c9d44f77de031dc4dedd261ab936c497", - "reference": "cce3c273c9d44f77de031dc4dedd261ab936c497", + "url": "https://api.github.com/repos/andersao/laravel-validator/zipball/45d6b64e35d966aa0866d6f5fd22ecbb33ea41d9", + "reference": "45d6b64e35d966aa0866d6f5fd22ecbb33ea41d9", "shasum": "" }, "require": { - "illuminate/support": "~5.4|^6.0|^7.0|^8.0", - "illuminate/validation": "~5.4|^6.0|^7.0|^8.0", + "illuminate/support": "~5.4|^6.0|^7.0|^8.0|^9.0", + "illuminate/validation": "~5.4|^6.0|^7.0|^8.0|^9.0", "php": ">=5.4.0" }, "type": "library", @@ -5540,24 +5273,24 @@ "source": "https://github.com/andersao/laravel-validation", "wiki": "https://github.com/andersao/laravel-validation" }, - "time": "2020-09-21T20:20:45+00:00" + "time": "2022-02-21T11:18:30+00:00" }, { "name": "psr/cache", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -5577,7 +5310,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for caching libraries", @@ -5587,9 +5320,9 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/master" + "source": "https://github.com/php-fig/cache/tree/2.0.0" }, - "time": "2016-08-06T20:24:11+00:00" + "time": "2021-02-03T23:23:37+00:00" }, { "name": "psr/container", @@ -5689,6 +5422,113 @@ }, "time": "2019-01-08T18:20:26+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -5845,20 +5685,20 @@ }, { "name": "queueworker/sansdaemon", - "version": "v1.2.4", + "version": "v1.2.6", "source": { "type": "git", "url": "https://github.com/orobogenius/sansdaemon.git", - "reference": "b23ae9d22202bb2a59a5c3ce275c27fc00100060" + "reference": "65630b85afd276016c59578790ab6f110581234f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orobogenius/sansdaemon/zipball/b23ae9d22202bb2a59a5c3ce275c27fc00100060", - "reference": "b23ae9d22202bb2a59a5c3ce275c27fc00100060", + "url": "https://api.github.com/repos/orobogenius/sansdaemon/zipball/65630b85afd276016c59578790ab6f110581234f", + "reference": "65630b85afd276016c59578790ab6f110581234f", "shasum": "" }, "require": { - "illuminate/support": "^6.0|^7.0|^8.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0", "php": "^7.2|^8.0" }, "require-dev": { @@ -5896,9 +5736,9 @@ ], "support": { "issues": "https://github.com/orobogenius/sansdaemon/issues", - "source": "https://github.com/orobogenius/sansdaemon/tree/v1.2.4" + "source": "https://github.com/orobogenius/sansdaemon/tree/v1.2.6" }, - "time": "2021-02-12T11:09:45+00:00" + "time": "2022-03-08T14:35:10+00:00" }, { "name": "ralouphie/getallheaders", @@ -6088,12 +5928,12 @@ } }, "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6201,23 +6041,23 @@ }, { "name": "react/promise", - "version": "v2.8.0", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { @@ -6235,7 +6075,23 @@ "authors": [ { "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], "description": "A lightweight implementation of CommonJS Promises/A for PHP", @@ -6245,32 +6101,42 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.8.0" + "source": "https://github.com/reactphp/promise/tree/v2.9.0" }, - "time": "2020-05-12T15:16:56+00:00" + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-11T10:27:51+00:00" }, { "name": "santigarcor/laratrust", - "version": "6.3.2", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/santigarcor/laratrust.git", - "reference": "9ab3bfdc06afe18b17f69b77cb77291c36dae9f6" + "reference": "974c734450b51e74d09e94fe9ed12f6cdeecb749" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/santigarcor/laratrust/zipball/9ab3bfdc06afe18b17f69b77cb77291c36dae9f6", - "reference": "9ab3bfdc06afe18b17f69b77cb77291c36dae9f6", + "url": "https://api.github.com/repos/santigarcor/laratrust/zipball/974c734450b51e74d09e94fe9ed12f6cdeecb749", + "reference": "974c734450b51e74d09e94fe9ed12f6cdeecb749", "shasum": "" }, "require": { "kkszymanowski/traitor": "^0.2.0", - "laravel/framework": "~6.0|~7.0|~8.0", + "laravel/framework": "~6.0|~7.0|~8.0|^9.0", "php": ">=7.2" }, "require-dev": { "mockery/mockery": "^1.3.2", - "orchestra/testbench": "4.*|5.*|6.*", + "orchestra/testbench": "4.*|5.*|6.*|7.*", "phpunit/phpunit": "^7.5.15|^8.4|^9.0" }, "type": "library", @@ -6314,7 +6180,7 @@ ], "support": { "issues": "https://github.com/santigarcor/laratrust/issues", - "source": "https://github.com/santigarcor/laratrust/tree/6.3.2" + "source": "https://github.com/santigarcor/laratrust/tree/7.0.0" }, "funding": [ { @@ -6322,7 +6188,7 @@ "type": "github" } ], - "time": "2021-03-03T13:34:32+00:00" + "time": "2022-02-17T17:13:25+00:00" }, { "name": "seld/jsonlint", @@ -6488,22 +6354,305 @@ "time": "2016-05-28T13:26:32+00:00" }, { - "name": "spatie/valuestore", - "version": "1.2.5", + "name": "spatie/backtrace", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/spatie/valuestore.git", - "reference": "eafde51f0068bcbb605fdf589a952677ada74a33" + "url": "https://github.com/spatie/backtrace.git", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/valuestore/zipball/eafde51f0068bcbb605fdf589a952677ada74a33", - "reference": "eafde51f0068bcbb605fdf589a952677ada74a33", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, + "require-dev": { + "ext-json": "*", + "phpunit/phpunit": "^9.3", + "symfony/var-dumper": "^5.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Backtrace\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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": [ + "Backtrace", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/spatie", + "type": "github" + }, + { + "url": "https://spatie.be/open-source/support-us", + "type": "other" + } + ], + "time": "2021-11-09T10:57:15+00:00" + }, + { + "name": "spatie/flare-client-php", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/flare-client-php.git", + "reference": "ceab058852a1278d9f57a7b95f1c348e4956d866" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/ceab058852a1278d9f57a7b95f1c348e4956d866", + "reference": "ceab058852a1278d9f57a7b95f1c348e4956d866", + "shasum": "" + }, + "require": { + "illuminate/pipeline": "^8.0|^9.0", + "php": "^8.0", + "spatie/backtrace": "^1.2", + "symfony/http-foundation": "^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/process": "^5.2|^6.0", + "symfony/var-dumper": "^5.2|^6.0" + }, + "require-dev": { + "dms/phpunit-arraysubset-asserts": "^0.3.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/phpunit-snapshot-assertions": "^4.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/spatie/flare-client-php", + "keywords": [ + "exception", + "flare", + "reporting", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-client-php/issues", + "source": "https://github.com/spatie/flare-client-php/tree/1.1.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-03-11T13:21:28+00:00" + }, + { + "name": "spatie/ignition", + "version": "1.2.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/ignition.git", + "reference": "ec58c125c15eecaa20180f01ef9667d41a568ba8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/ignition/zipball/ec58c125c15eecaa20180f01ef9667d41a568ba8", + "reference": "ec58c125c15eecaa20180f01ef9667d41a568ba8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "^2.0", + "php": "^8.0", + "spatie/flare-client-php": "^1.1", + "symfony/console": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.4", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for PHP applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "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" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-03-11T13:28:02+00:00" + }, + { + "name": "spatie/laravel-ignition", + "version": "1.0.9", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ignition.git", + "reference": "d7b223300d511145eea87fdabae1663c7c0088aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/d7b223300d511145eea87fdabae1663c7c0088aa", + "reference": "d7b223300d511145eea87fdabae1663c7c0088aa", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/support": "^8.77|^9.0", + "monolog/monolog": "^2.3", + "php": "^8.0", + "spatie/flare-client-php": "^1.0.1", + "spatie/ignition": "^1.2.4", + "symfony/console": "^5.0|^6.0", + "symfony/var-dumper": "^5.0|^6.0" + }, + "require-dev": { + "filp/whoops": "^2.14", + "livewire/livewire": "^2.8|dev-develop", + "mockery/mockery": "^1.4", + "nunomaduro/larastan": "^1.0", + "orchestra/testbench": "^6.23|^7.0", + "pestphp/pest": "^1.20", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "spatie/laravel-ray": "^1.27" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\LaravelIgnition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare" + } + } + }, + "autoload": { + "psr-4": { + "Spatie\\LaravelIgnition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Spatie", + "email": "info@spatie.be", + "role": "Developer" + } + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://flareapp.io/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "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://github.com/spatie", + "type": "github" + } + ], + "time": "2022-03-11T14:19:27+00:00" + }, + { + "name": "spatie/valuestore", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/valuestore.git", + "reference": "85144129c7c4611c0e95ef9558cac20fba12cb48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/valuestore/zipball/85144129c7c4611c0e95ef9558cac20fba12cb48", + "reference": "85144129c7c4611c0e95ef9558cac20fba12cb48", + "shasum": "" + }, + "require": { + "php": "^8.0|^8.1" + }, "require-dev": { "phpunit/phpunit": "^9.3" }, @@ -6540,7 +6689,7 @@ ], "support": { "issues": "https://github.com/spatie/valuestore/issues", - "source": "https://github.com/spatie/valuestore/tree/1.2.5" + "source": "https://github.com/spatie/valuestore/tree/1.3.1" }, "funding": [ { @@ -6552,29 +6701,28 @@ "type": "github" } ], - "time": "2020-11-30T16:21:03+00:00" + "time": "2021-12-03T16:51:45+00:00" }, { "name": "staudenmeir/belongs-to-through", - "version": "v2.11.2", + "version": "v2.12.1", "source": { "type": "git", "url": "https://github.com/staudenmeir/belongs-to-through.git", - "reference": "32d03527163a3edd7f88e4b74b03575e4bdb5db7" + "reference": "8316d274db603f63b16bb1c67379b0fa73209d98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/belongs-to-through/zipball/32d03527163a3edd7f88e4b74b03575e4bdb5db7", - "reference": "32d03527163a3edd7f88e4b74b03575e4bdb5db7", + "url": "https://api.github.com/repos/staudenmeir/belongs-to-through/zipball/8316d274db603f63b16bb1c67379b0fa73209d98", + "reference": "8316d274db603f63b16bb1c67379b0fa73209d98", "shasum": "" }, "require": { - "illuminate/database": "^8.0", - "php": "^7.3|^8.0" + "illuminate/database": "^9.0", + "php": "^8.0.2" }, "require-dev": { - "phpunit/phpunit": "^9.3", - "scrutinizer/ocular": "^1.8" + "phpunit/phpunit": "^9.5" }, "type": "library", "autoload": { @@ -6599,7 +6747,7 @@ "description": "Laravel Eloquent BelongsToThrough relationships", "support": { "issues": "https://github.com/staudenmeir/belongs-to-through/issues", - "source": "https://github.com/staudenmeir/belongs-to-through/tree/v2.11.2" + "source": "https://github.com/staudenmeir/belongs-to-through/tree/v2.12.1" }, "funding": [ { @@ -6607,32 +6755,30 @@ "type": "custom" } ], - "time": "2021-08-19T18:23:06+00:00" + "time": "2022-03-10T21:14:19+00:00" }, { "name": "staudenmeir/eloquent-has-many-deep", - "version": "v1.14.3", + "version": "v1.15", "source": { "type": "git", "url": "https://github.com/staudenmeir/eloquent-has-many-deep.git", - "reference": "c44115684aa831b2b74fec8440f6e811602186ed" + "reference": "54a1a84cc38625a708c1fc1d1ab06db830c307cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/c44115684aa831b2b74fec8440f6e811602186ed", - "reference": "c44115684aa831b2b74fec8440f6e811602186ed", + "url": "https://api.github.com/repos/staudenmeir/eloquent-has-many-deep/zipball/54a1a84cc38625a708c1fc1d1ab06db830c307cf", + "reference": "54a1a84cc38625a708c1fc1d1ab06db830c307cf", "shasum": "" }, "require": { - "illuminate/database": "^8.0", - "php": "^7.3|^8.0" + "illuminate/database": "^9.0", + "php": "^8.0.2" }, "require-dev": { - "illuminate/pagination": "^8.0", - "laravel/homestead": "^11.0|^12.0", - "phpunit/phpunit": "^9.3", - "scrutinizer/ocular": "^1.8", - "staudenmeir/eloquent-eager-limit": "^1.6" + "illuminate/pagination": "^9.0", + "phpunit/phpunit": "^9.5", + "staudenmeir/eloquent-eager-limit": "^1.7" }, "type": "library", "autoload": { @@ -6653,7 +6799,7 @@ "description": "Laravel Eloquent HasManyThrough relationships with unlimited levels", "support": { "issues": "https://github.com/staudenmeir/eloquent-has-many-deep/issues", - "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.14.3" + "source": "https://github.com/staudenmeir/eloquent-has-many-deep/tree/v1.15" }, "funding": [ { @@ -6661,126 +6807,46 @@ "type": "custom" } ], - "time": "2021-08-21T16:45:45+00:00" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", - "shasum": "" - }, - "require": { - "egulias/email-validator": "^2.0|^3.1", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.4" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], - "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", - "type": "tidelift" - } - ], - "abandoned": "symfony/mailer", - "time": "2021-10-18T15:26:12+00:00" + "time": "2022-02-07T19:52:36+00:00" }, { "name": "symfony/console", - "version": "v5.4.3", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" + "reference": "3bebf4108b9e07492a2a4057d207aa5a77d146b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "url": "https://api.github.com/repos/symfony/console/zipball/3bebf4108b9e07492a2a4057d207aa5a77d146b1", + "reference": "3bebf4108b9e07492a2a4057d207aa5a77d146b1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "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" + "symfony/string": "^5.4|^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" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.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" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -6820,7 +6886,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v6.0.5" }, "funding": [ { @@ -6836,25 +6902,24 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-02-25T10:48:52+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "b0a190285cd95cb019237851205b8140ef6e368e" + "reference": "1955d595c12c111629cc814d3f2a2ff13580508a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/b0a190285cd95cb019237851205b8140ef6e368e", - "reference": "b0a190285cd95cb019237851205b8140ef6e368e", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/1955d595c12c111629cc814d3f2a2ff13580508a", + "reference": "1955d595c12c111629cc814d3f2a2ff13580508a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -6886,7 +6951,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.3" + "source": "https://github.com/symfony/css-selector/tree/v6.0.3" }, "funding": [ { @@ -6902,7 +6967,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6973,27 +7038,27 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5" + "reference": "20343b3bad7ebafa38138ddcb97290a24722b57b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5", - "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/20343b3bad7ebafa38138ddcb97290a24722b57b", + "reference": "20343b3bad7ebafa38138ddcb97290a24722b57b", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/var-dumper": "^5.4|^6.0" }, "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" + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -7024,7 +7089,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.3" + "source": "https://github.com/symfony/error-handler/tree/v6.0.3" }, "funding": [ { @@ -7040,44 +7105,42 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^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/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": "^4.4|^5.0|^6.0" + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -7109,7 +7172,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" }, "funding": [ { @@ -7125,7 +7188,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -7208,23 +7271,22 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.3", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" + "reference": "52b888523545b0b4049ab9ce48766802484d7046" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b888523545b0b4049ab9ce48766802484d7046", + "reference": "52b888523545b0b4049ab9ce48766802484d7046", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.8" }, "type": "library", "autoload": { @@ -7252,7 +7314,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.3" + "source": "https://github.com/symfony/filesystem/tree/v6.0.6" }, "funding": [ { @@ -7268,26 +7330,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/finder", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "url": "https://api.github.com/repos/symfony/finder/zipball/8661b74dbabc23223f38c9b99d3f8ade71170430", + "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -7315,7 +7375,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.3" + "source": "https://github.com/symfony/finder/tree/v6.0.3" }, "funding": [ { @@ -7331,20 +7391,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2022-01-26T17:23:29+00:00" }, { "name": "symfony/flex", - "version": "v1.18.3", + "version": "v1.18.5", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "d40a6b176b70ea323af2b08507319d1c417520fd" + "reference": "10e438f53a972439675dc720706f0cd5c0ed94f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/d40a6b176b70ea323af2b08507319d1c417520fd", - "reference": "d40a6b176b70ea323af2b08507319d1c417520fd", + "url": "https://api.github.com/repos/symfony/flex/zipball/10e438f53a972439675dc720706f0cd5c0ed94f1", + "reference": "10e438f53a972439675dc720706f0cd5c0ed94f1", "shasum": "" }, "require": { @@ -7380,7 +7440,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.18.3" + "source": "https://github.com/symfony/flex/tree/v1.18.5" }, "funding": [ { @@ -7396,33 +7456,194 @@ "type": "tidelift" } ], - "time": "2022-01-27T10:24:58+00:00" + "time": "2022-02-16T17:26:46+00:00" }, { - "name": "symfony/http-foundation", - "version": "v5.4.3", + "name": "symfony/http-client", + "version": "v6.0.5", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "ef409ff341a565a3663157d4324536746d49a0c7" + "url": "https://github.com/symfony/http-client.git", + "reference": "a8f87328930932c455cffd048f965d1223d91915" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ef409ff341a565a3663157d4324536746d49a0c7", - "reference": "ef409ff341a565a3663157d4324536746d49a0c7", + "url": "https://api.github.com/repos/symfony/http-client/zipball/a8f87328930932c455cffd048f965d1223d91915", + "reference": "a8f87328930932c455cffd048f965d1223d91915", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/http-client-contracts": "^3", + "symfony/service-contracts": "^1.0|^2|^3" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "3.0" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-client/tree/v6.0.5" + }, + "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-27T08:47:28+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "265f03fed057044a8e4dc159aa33596d0f48ed3f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/265f03fed057044a8e4dc159aa33596d0f48ed3f", + "reference": "265f03fed057044a8e4dc159aa33596d0f48ed3f", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.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": "2021-11-03T13:44:55+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "a000fcf2298a1bc79a1dcff22608792506534719" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a000fcf2298a1bc79a1dcff22608792506534719", + "reference": "a000fcf2298a1bc79a1dcff22608792506534719", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.1" }, "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" + "symfony/cache": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -7453,7 +7674,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.3" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.6" }, "funding": [ { @@ -7469,67 +7690,64 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-03-05T21:04:00+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.4", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "49f40347228c773688a0488feea0175aa7f4d268" + "reference": "f9e49ad9fe16895b24cd7a09dc28d3364282e21a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/49f40347228c773688a0488feea0175aa7f4d268", - "reference": "49f40347228c773688a0488feea0175aa7f4d268", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9e49ad9fe16895b24cd7a09dc28d3364282e21a", + "reference": "f9e49ad9fe16895b24cd7a09dc28d3364282e21a", "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" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" }, "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", + "symfony/cache": "<5.4", + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/browser-kit": "^5.4|^6.0", - "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/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^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/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, @@ -7565,7 +7783,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.4" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.6" }, "funding": [ { @@ -7581,42 +7799,179 @@ "type": "tidelift" } ], - "time": "2022-01-29T18:08:07+00:00" + "time": "2022-03-05T21:19:20+00:00" }, { - "name": "symfony/mime", - "version": "v5.4.3", + "name": "symfony/mailer", + "version": "v6.0.5", "source": { "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f" + "url": "https://github.com/symfony/mailer.git", + "reference": "0f4772db6521a1beb44529aa2c0c1e56f671be8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/e1503cfb5c9a225350f549d3bb99296f4abfb80f", - "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f", + "url": "https://api.github.com/repos/symfony/mailer/zipball/0f4772db6521a1beb44529aa2c0c1e56f671be8f", + "reference": "0f4772db6521a1beb44529aa2c0c1e56f671be8f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "egulias/email-validator": "^2.1.10|^3", + "php": ">=8.0.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<5.4" + }, + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.0.5" + }, + "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-25T10:48:52+00:00" + }, + { + "name": "symfony/mailgun-mailer", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailgun-mailer.git", + "reference": "332442e27d4718a7764dbf06751e9ef1377b9ccd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/332442e27d4718a7764dbf06751e9ef1377b9ccd", + "reference": "332442e27d4718a7764dbf06751e9ef1377b9ccd", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/mailer": "^5.4|^6.0" + }, + "require-dev": { + "symfony/http-client": "^5.4|^6.0" + }, + "type": "symfony-mailer-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\Bridge\\Mailgun\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Mailgun Mailer Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailgun-mailer/tree/v6.0.3" + }, + "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" + }, + { + "name": "symfony/mime", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "2cd9601efd040e56f43360daa68f3c6b0534923a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/2cd9601efd040e56f43360daa68f3c6b0534923a", + "reference": "2cd9601efd040e56f43360daa68f3c6b0534923a", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<5.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" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "type": "library", "autoload": { @@ -7648,7 +8003,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.3" + "source": "https://github.com/symfony/mime/tree/v6.0.3" }, "funding": [ { @@ -7664,11 +8019,11 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -7700,12 +8055,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7730,7 +8085,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -7830,7 +8185,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -7891,7 +8246,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -7911,7 +8266,7 @@ }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", @@ -7978,7 +8333,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.25.0" }, "funding": [ { @@ -7998,7 +8353,7 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -8065,7 +8420,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" }, "funding": [ { @@ -8085,7 +8440,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -8149,7 +8504,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -8169,7 +8524,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -8201,12 +8556,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8232,7 +8587,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -8252,7 +8607,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -8308,7 +8663,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" }, "funding": [ { @@ -8328,7 +8683,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -8387,7 +8742,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -8405,98 +8760,18 @@ ], "time": "2021-06-05T21:20:04+00:00" }, - { - "name": "symfony/polyfill-php74", - "version": "v1.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php74.git", - "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", - "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php74\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php74/tree/v1.24.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": "2021-02-19T12:13:01+00:00" - }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -8550,7 +8825,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -8566,11 +8841,11 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -8629,7 +8904,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.0" }, "funding": [ { @@ -8649,21 +8924,20 @@ }, { "name": "symfony/process", - "version": "v5.4.3", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "553f50487389a977eb31cf6b37faae56da00f753" + "reference": "1ccceccc6497e96f4f646218f04b97ae7d9fa7a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/553f50487389a977eb31cf6b37faae56da00f753", - "reference": "553f50487389a977eb31cf6b37faae56da00f753", + "url": "https://api.github.com/repos/symfony/process/zipball/1ccceccc6497e96f4f646218f04b97ae7d9fa7a1", + "reference": "1ccceccc6497e96f4f646218f04b97ae7d9fa7a1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -8691,7 +8965,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.3" + "source": "https://github.com/symfony/process/tree/v6.0.5" }, "funding": [ { @@ -8707,30 +8981,28 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-01-30T18:19:12+00:00" }, { "name": "symfony/property-access", - "version": "v5.4.3", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "4bb27fab0c8b0cabdff8cc24ed4019bfbb380e96" + "reference": "e23f2c9a4f339c351546b12f29c8b122e2fc2f74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/4bb27fab0c8b0cabdff8cc24ed4019bfbb380e96", - "reference": "4bb27fab0c8b0cabdff8cc24ed4019bfbb380e96", + "url": "https://api.github.com/repos/symfony/property-access/zipball/e23f2c9a4f339c351546b12f29c8b122e2fc2f74", + "reference": "e23f2c9a4f339c351546b12f29c8b122e2fc2f74", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", - "symfony/property-info": "^5.2|^6.0" + "php": ">=8.0.2", + "symfony/property-info": "^5.4|^6.0" }, "require-dev": { - "symfony/cache": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0" }, "suggest": { "psr/cache-implementation": "To cache access methods." @@ -8772,7 +9044,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.3" + "source": "https://github.com/symfony/property-access/tree/v6.0.5" }, "funding": [ { @@ -8788,40 +9060,38 @@ "type": "tidelift" } ], - "time": "2022-01-12T18:55:10+00:00" + "time": "2022-02-04T19:03:38+00:00" }, { "name": "symfony/property-info", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "bcc2b6904cbcf16b2e5d618da16117cd8e132f9a" + "reference": "46e4e6d254f80d103689f2bb103b52a6f5ac2fe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/bcc2b6904cbcf16b2e5d618da16117cd8e132f9a", - "reference": "bcc2b6904cbcf16b2e5d618da16117cd8e132f9a", + "url": "https://api.github.com/repos/symfony/property-info/zipball/46e4e6d254f80d103689f2bb103b52a6f5ac2fe2", + "reference": "46e4e6d254f80d103689f2bb103b52a6f5ac2fe2", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16", - "symfony/string": "^5.1|^6.0" + "php": ">=8.0.2", + "symfony/string": "^5.4|^6.0" }, "conflict": { - "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/reflection-docblock": "<5.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.10.4", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^5.2", "phpstan/phpdoc-parser": "^1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "suggest": { "phpdocumentor/reflection-docblock": "To use the PHPDoc", @@ -8863,7 +9133,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.3" + "source": "https://github.com/symfony/property-info/tree/v6.0.3" }, "funding": [ { @@ -8879,41 +9149,39 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/routing", - "version": "v5.4.3", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "44b29c7a94e867ccde1da604792f11a469958981" + "reference": "a738b152426ac7fcb94bdab8188264652238bef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/44b29c7a94e867ccde1da604792f11a469958981", - "reference": "44b29c7a94e867ccde1da604792f11a469958981", + "url": "https://api.github.com/repos/symfony/routing/zipball/a738b152426ac7fcb94bdab8188264652238bef1", + "reference": "a738b152426ac7fcb94bdab8188264652238bef1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "conflict": { "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" }, "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" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -8953,7 +9221,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.3" + "source": "https://github.com/symfony/routing/tree/v6.0.5" }, "funding": [ { @@ -8969,57 +9237,55 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-31T19:46:53+00:00" }, { "name": "symfony/serializer", - "version": "v5.4.3", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "13961b5b54691cbbca9c47f7d1a5b5c8f07dae6e" + "reference": "ba979f0e66df001e2c30e98d9249eb9994d3589c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/13961b5b54691cbbca9c47f7d1a5b5c8f07dae6e", - "reference": "13961b5b54691cbbca9c47f7d1a5b5c8f07dae6e", + "url": "https://api.github.com/repos/symfony/serializer/zipball/ba979f0e66df001e2c30e98d9249eb9994d3589c", + "reference": "ba979f0e66df001e2c30e98d9249eb9994d3589c", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<4.4", + "symfony/dependency-injection": "<5.4", "symfony/property-access": "<5.4", - "symfony/property-info": "<5.3.13", - "symfony/uid": "<5.3", - "symfony/yaml": "<4.4" + "symfony/property-info": "<5.4", + "symfony/uid": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/form": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", - "symfony/property-info": "^5.3.13|^6.0", - "symfony/uid": "^5.3|^6.0", - "symfony/validator": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0", - "symfony/var-exporter": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/property-info": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0", + "symfony/var-exporter": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "psr/cache-implementation": "For using the metadata cache.", @@ -9056,7 +9322,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v5.4.3" + "source": "https://github.com/symfony/serializer/tree/v6.0.6" }, "funding": [ { @@ -9072,7 +9338,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T17:24:58+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/service-contracts", @@ -9159,43 +9425,42 @@ }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/522144f0c4c004c80d56fa47e40e17028e2eefc2", + "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2", "shasum": "" }, "require": { - "php": ">=7.2.5", + "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", - "symfony/polyfill-php80": "~1.15" + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": ">=3.0" + "symfony/translation-contracts": "<2.0" }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0|^6.0" + "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" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -9225,7 +9490,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v6.0.3" }, "funding": [ { @@ -9241,52 +9506,50 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/translation", - "version": "v5.4.3", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a9dd7403232c61e87e27fb306bbcd1627f245d70" + "reference": "f6639cb9b5e0c57fe31e3263b900a77eedb0c908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a9dd7403232c61e87e27fb306bbcd1627f245d70", - "reference": "a9dd7403232c61e87e27fb306bbcd1627f245d70", + "url": "https://api.github.com/repos/symfony/translation/zipball/f6639cb9b5e0c57fe31e3263b900a77eedb0c908", + "reference": "f6639cb9b5e0c57fe31e3263b900a77eedb0c908", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^2.3" + "symfony/translation-contracts": "^2.3|^3.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/console": "<5.3", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" + "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" + "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^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.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.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": "^4.4|^5.0|^6.0" + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -9322,7 +9585,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.3" + "source": "https://github.com/symfony/translation/tree/v6.0.6" }, "funding": [ { @@ -9338,24 +9601,24 @@ "type": "tidelift" } ], - "time": "2022-01-07T00:28:17+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e" + "reference": "1b6ea5a7442af5a12dba3dbd6d71034b5b234e77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e", - "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/1b6ea5a7442af5a12dba3dbd6d71034b5b234e77", + "reference": "1b6ea5a7442af5a12dba3dbd6d71034b5b234e77", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "suggest": { "symfony/translation-implementation": "" @@ -9363,7 +9626,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -9400,7 +9663,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.0.0" }, "funding": [ { @@ -9416,36 +9679,35 @@ "type": "tidelift" } ], - "time": "2021-08-17T14:20:01+00:00" + "time": "2021-09-07T12:43:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.3", + "version": "v6.0.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4" + "reference": "38358405ae948963c50a3aae3dfea598223ba15e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/970a01f208bf895c5f327ba40b72288da43adec4", - "reference": "970a01f208bf895c5f327ba40b72288da43adec4", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38358405ae948963c50a3aae3dfea598223ba15e", + "reference": "38358405ae948963c50a3aae3dfea598223ba15e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "symfony/console": "<5.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", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -9489,7 +9751,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.3" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.6" }, "funding": [ { @@ -9505,32 +9767,31 @@ "type": "tidelift" } ], - "time": "2022-01-17T16:30:37+00:00" + "time": "2022-03-02T12:58:14+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e80f87d2c9495966768310fc531b487ce64237a2" + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e80f87d2c9495966768310fc531b487ce64237a2", - "reference": "e80f87d2c9495966768310fc531b487ce64237a2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e77f3ea0b21141d771d4a5655faa54f692b34af5", + "reference": "e77f3ea0b21141d771d4a5655faa54f692b34af5", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.3" + "symfony/console": "<5.4" }, "require-dev": { - "symfony/console": "^5.3|^6.0" + "symfony/console": "^5.4|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -9564,7 +9825,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.3" + "source": "https://github.com/symfony/yaml/tree/v6.0.3" }, "funding": [ { @@ -9580,52 +9841,7 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:32:32+00:00" - }, - { - "name": "theiconic/php-ga-measurement-protocol", - "version": "v2.9.0", - "source": { - "type": "git", - "url": "https://github.com/theiconic/php-ga-measurement-protocol.git", - "reference": "6136c2f2ef159045402ef985843db0ad0f136125" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theiconic/php-ga-measurement-protocol/zipball/6136c2f2ef159045402ef985843db0ad0f136125", - "reference": "6136c2f2ef159045402ef985843db0ad0f136125", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.0 || ^7.0", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "4.7.*", - "satooshi/php-coveralls": "1.0.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "TheIconic\\Tracking\\GoogleAnalytics\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "THE ICONIC ENGINEERING TEAM", - "email": "engineering@theiconic.com.au" - } - ], - "description": "Send data to Google Analytics from the server using PHP. This library fully implements GA measurement protocol.", - "support": { - "issues": "https://github.com/theiconic/php-ga-measurement-protocol/issues", - "source": "https://github.com/theiconic/php-ga-measurement-protocol/tree/v2.9.0" - }, - "time": "2020-09-24T23:37:47+00:00" + "time": "2022-01-26T17:23:29+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -9814,16 +10030,16 @@ }, { "name": "voku/portable-ascii", - "version": "1.6.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { @@ -9860,7 +10076,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { @@ -9884,7 +10100,7 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { "name": "webmozart/assert", @@ -10002,50 +10218,6 @@ }, "time": "2021-03-09T07:19:24+00:00" }, - { - "name": "wildbit/swiftmailer-postmark", - "version": "3.3.0", - "source": { - "type": "git", - "url": "https://github.com/wildbit/swiftmailer-postmark.git", - "reference": "44ccab7834de8b220d292647ecb2cb683f9962ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wildbit/swiftmailer-postmark/zipball/44ccab7834de8b220d292647ecb2cb683f9962ee", - "reference": "44ccab7834de8b220d292647ecb2cb683f9962ee", - "shasum": "" - }, - "require": { - "guzzlehttp/guzzle": "^6.0|^7.0", - "swiftmailer/swiftmailer": "^6.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "Postmark\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Postmark", - "email": "support@postmarkapp.com" - } - ], - "description": "A Swiftmailer Transport for Postmark.", - "support": { - "issues": "https://github.com/wildbit/swiftmailer-postmark/issues", - "source": "https://github.com/wildbit/swiftmailer-postmark/tree/3.3.0" - }, - "time": "2020-09-10T10:54:20+00:00" - }, { "name": "willdurand/geocoder", "version": "4.5.0", @@ -10112,16 +10284,16 @@ "packages-dev": [ { "name": "barryvdh/laravel-debugbar", - "version": "v3.6.6", + "version": "v3.6.7", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "f92fe967b40b36ad1ee8ed2fd59c05ae67a1ebba" + "reference": "b96f9820aaf1ff9afe945207883149e1c7afb298" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/f92fe967b40b36ad1ee8ed2fd59c05ae67a1ebba", - "reference": "f92fe967b40b36ad1ee8ed2fd59c05ae67a1ebba", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/b96f9820aaf1ff9afe945207883149e1c7afb298", + "reference": "b96f9820aaf1ff9afe945207883149e1c7afb298", "shasum": "" }, "require": { @@ -10135,7 +10307,7 @@ }, "require-dev": { "mockery/mockery": "^1.3.3", - "orchestra/testbench-dusk": "^4|^5|^6", + "orchestra/testbench-dusk": "^4|^5|^6|^7", "phpunit/phpunit": "^8.5|^9.0", "squizlabs/php_codesniffer": "^3.5" }, @@ -10181,7 +10353,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.6" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.7" }, "funding": [ { @@ -10193,221 +10365,7 @@ "type": "github" } ], - "time": "2021-12-21T18:20:10+00:00" - }, - { - "name": "barryvdh/laravel-ide-helper", - "version": "v2.12.1", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "999167d4c21e2ae748847f7c0e4565ae45f5c9f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/999167d4c21e2ae748847f7c0e4565ae45f5c9f9", - "reference": "999167d4c21e2ae748847f7c0e4565ae45f5c9f9", - "shasum": "" - }, - "require": { - "barryvdh/reflection-docblock": "^2.0.6", - "composer/composer": "^1.10.23 || ^2.1.9", - "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" - }, - "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" - }, - "suggest": { - "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Barryvdh\\LaravelIdeHelper\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", - "keywords": [ - "autocomplete", - "codeintel", - "helper", - "ide", - "laravel", - "netbeans", - "phpdoc", - "phpstorm", - "sublime" - ], - "support": { - "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.12.1" - }, - "funding": [ - { - "url": "https://fruitcake.nl", - "type": "custom" - }, - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2022-01-24T21:36:43+00:00" - }, - { - "name": "barryvdh/reflection-docblock", - "version": "v2.0.6", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", - "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "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" - } - }, - "autoload": { - "psr-0": { - "Barryvdh": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" - }, - "time": "2018-12-13T10:34:14+00:00" - }, - { - "name": "bpocallaghan/generators", - "version": "7.0.2", - "source": { - "type": "git", - "url": "https://github.com/bpocallaghan/generators.git", - "reference": "50204ac64dcdc0209b93baa1a46b3291da730c3b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bpocallaghan/generators/zipball/50204ac64dcdc0209b93baa1a46b3291da730c3b", - "reference": "50204ac64dcdc0209b93baa1a46b3291da730c3b", - "shasum": "" - }, - "require": { - "laravel/framework": "^8.0", - "php": ">=7.3", - "symfony/console": "^5.0" - }, - "require-dev": { - "orchestra/testbench": "6.*" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Bpocallaghan\\Generators\\GeneratorsServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Bpocallaghan\\Generators\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ben-Piet O'Callaghan", - "email": "bpocallaghan@gmail.com", - "homepage": "http://bpocallaghan.co.za", - "role": "Developer" - } - ], - "description": "Custom Laravel File Generators with config and publishable stubs.", - "keywords": [ - "commands", - "config", - "customization", - "generators", - "laravel", - "stubs" - ], - "support": { - "issues": "https://github.com/bpocallaghan/generators/issues", - "source": "https://github.com/bpocallaghan/generators/tree/7.0.2" - }, - "funding": [ - { - "url": "https://www.patreon.com/bpocallaghan", - "type": "patreon" - } - ], - "time": "2021-04-01T21:38:31+00:00" + "time": "2022-02-09T07:52:32+00:00" }, { "name": "doctrine/annotations", @@ -10483,29 +10441,30 @@ }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "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" }, "type": "library", "autoload": { @@ -10532,7 +10491,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -10548,7 +10507,60 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+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" + } + ], + "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" }, { "name": "filp/whoops", @@ -10623,52 +10635,52 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.4.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad" + "reference": "7705d5a985132a40282d18a176eb9a4a0497747c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", - "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/7705d5a985132a40282d18a176eb9a4a0497747c", + "reference": "7705d5a985132a40282d18a176eb9a4a0497747c", "shasum": "" }, "require": { "composer/semver": "^3.2", - "composer/xdebug-handler": "^2.0", - "doctrine/annotations": "^1.12", + "composer/xdebug-handler": "^3.0.3", + "doctrine/annotations": "^1.13", "ext-json": "*", "ext-tokenizer": "*", - "php": "^7.2.5 || ^8.0", + "php": "^7.4 || ^8.0", "php-cs-fixer/diff": "^2.0", - "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0", - "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0", - "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0", - "symfony/finder": "^4.4.20 || ^5.0 || ^6.0", - "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.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.23", - "symfony/polyfill-php81": "^1.23", - "symfony/process": "^4.4.20 || ^5.0 || ^6.0", - "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0" + "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.8", + "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": "^1.1 || ^2.0", - "phpunit/phpunit": "^8.5.21 || ^9.5", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", "phpunitgoodpractices/polyfill": "^1.5", "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^5.2.4 || ^6.0", - "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0", + "symfony/yaml": "^5.4 || ^6.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -10700,7 +10712,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.7.0" }, "funding": [ { @@ -10708,7 +10720,7 @@ "type": "github" } ], - "time": "2021-12-11T16:25:08+00:00" + "time": "2022-03-07T16:59:59+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10763,25 +10775,26 @@ }, { "name": "maximebf/debugbar", - "version": "v1.17.3", + "version": "v1.18.0", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c" + "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e8ac3499af0ea5b440908e06cc0abe5898008b3c", - "reference": "e8ac3499af0ea5b440908e06cc0abe5898008b3c", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6", + "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6", "shasum": "" }, "require": { "php": "^7.1|^8", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^2.6|^3|^4|^5" + "symfony/var-dumper": "^2.6|^3|^4|^5|^6" }, "require-dev": { - "phpunit/phpunit": "^7.5.20 || ^9.4.2" + "phpunit/phpunit": "^7.5.20 || ^9.4.2", + "twig/twig": "^1.38|^2.7|^3.0" }, "suggest": { "kriswallsmith/assetic": "The best way to manage assets", @@ -10822,9 +10835,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.3" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.0" }, - "time": "2021-10-19T12:33:27+00:00" + "time": "2021-12-27T18:49:48+00:00" }, { "name": "mockery/mockery", @@ -10900,37 +10913,37 @@ }, { "name": "nunomaduro/collision", - "version": "v5.11.0", + "version": "v6.1.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" + "reference": "df09e21a5e5d5a7d51a8b9ecd44d3dd150d97fec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/df09e21a5e5d5a7d51a8b9ecd44d3dd150d97fec", + "reference": "df09e21a5e5d5a7d51a8b9ecd44d3dd150d97fec", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.14.3", - "php": "^7.3 || ^8.0", - "symfony/console": "^5.0" + "facade/ignition-contracts": "^1.0.2", + "filp/whoops": "^2.14.5", + "php": "^8.0.0", + "symfony/console": "^6.0.2" }, "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" + "brianium/paratest": "^6.4.1", + "laravel/framework": "^9.0", + "nunomaduro/larastan": "^1.0.2", + "nunomaduro/mock-final-classes": "^1.1.0", + "orchestra/testbench": "^7.0.0", + "phpunit/phpunit": "^9.5.11" }, "type": "library", "extra": { + "branch-alias": { + "dev-develop": "6.x-dev" + }, "laravel": { "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" @@ -10983,7 +10996,7 @@ "type": "patreon" } ], - "time": "2022-01-10T16:22:52+00:00" + "time": "2022-01-18T17:49:08+00:00" }, { "name": "phar-io/manifest", @@ -11047,16 +11060,16 @@ }, { "name": "phar-io/version", - "version": "3.1.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/15a90844ad40f127afd244c0cad228de2a80052a", - "reference": "15a90844ad40f127afd244c0cad228de2a80052a", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -11092,9 +11105,9 @@ "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.1.1" + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2022-02-07T21:56:48+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-cs-fixer/diff", @@ -11377,16 +11390,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.10", + "version": "9.2.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", - "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", "shasum": "" }, "require": { @@ -11442,7 +11455,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" }, "funding": [ { @@ -11450,7 +11463,7 @@ "type": "github" } ], - "time": "2021-12-05T09:12:13+00:00" + "time": "2022-03-07T09:28:20+00:00" }, { "name": "phpunit/php-file-iterator", @@ -11695,16 +11708,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.13", + "version": "9.5.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743" + "reference": "1b5856028273bfd855e60a887278857d872ec67a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/597cb647654ede35e43b137926dfdfef0fb11743", - "reference": "597cb647654ede35e43b137926dfdfef0fb11743", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1b5856028273bfd855e60a887278857d872ec67a", + "reference": "1b5856028273bfd855e60a887278857d872ec67a", "shasum": "" }, "require": { @@ -11720,7 +11733,7 @@ "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.7", + "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", @@ -11782,7 +11795,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.18" }, "funding": [ { @@ -11794,7 +11807,7 @@ "type": "github" } ], - "time": "2022-01-24T07:33:35+00:00" + "time": "2022-03-08T06:52:28+00:00" }, { "name": "sebastian/cli-parser", @@ -12302,16 +12315,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.3", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -12354,7 +12367,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -12362,7 +12375,7 @@ "type": "github" } ], - "time": "2021-06-11T13:31:12+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", @@ -12868,23 +12881,21 @@ }, { "name": "symfony/options-resolver", - "version": "v5.4.3", + "version": "v6.0.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8" + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/cc1147cb11af1b43f503ac18f31aa3bec213aba8", - "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d", + "reference": "51f7006670febe4cbcbae177cbffe93ff833250d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.1|^3" }, "type": "library", "autoload": { @@ -12917,7 +12928,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.3" + "source": "https://github.com/symfony/options-resolver/tree/v6.0.3" }, "funding": [ { @@ -12933,24 +12944,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.3", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "395220730edceb6bd745236ccb5c9125c748f779" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/395220730edceb6bd745236ccb5c9125c748f779", - "reference": "395220730edceb6bd745236ccb5c9125c748f779", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/service-contracts": "^1|^2|^3" }, "type": "library", @@ -12979,7 +12990,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.3" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -12995,7 +13006,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "theseer/tokenizer", @@ -13054,7 +13065,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.3", + "php": ">=8.0", "ext-json": "*", "ext-mbstring": "*", "ext-simplexml": "*", @@ -13063,5 +13074,5 @@ "ext-intl": "*" }, "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.2.0" } diff --git a/config/app.php b/config/app.php index ed024654..d28b5cd2 100755 --- a/config/app.php +++ b/config/app.php @@ -2,9 +2,7 @@ /** * DO NOT EDIT THIS OR ANY OF THE CONFIG FILES DIRECTLY - * - * Set your override options in the config.php file that's in the root of - * your install. Otherwise, any changes here will get overridden in an update! + * IF YOU DO, YOU NEED TO RESTORE THOSE CHANGES AFTER AN UPDATE */ use Carbon\Carbon; @@ -66,10 +64,8 @@ return [ Collective\Html\HtmlServiceProvider::class, Laracasts\Flash\FlashServiceProvider::class, Prettus\Repository\Providers\RepositoryServiceProvider::class, - Irazasyed\LaravelGAMP\LaravelGAMPServiceProvider::class, Igaster\LaravelTheme\themeServiceProvider::class, Nwidart\Modules\LaravelModulesServiceProvider::class, - Anhskohbo\NoCaptcha\NoCaptchaServiceProvider::class, /* * Application Service Providers... @@ -109,7 +105,6 @@ return [ 'Lang' => Illuminate\Support\Facades\Lang::class, 'Log' => Illuminate\Support\Facades\Log::class, 'Mail' => Illuminate\Support\Facades\Mail::class, - 'NoCaptcha' => Anhskohbo\NoCaptcha\Facades\NoCaptcha::class, 'Notification' => Illuminate\Support\Facades\Notification::class, 'Password' => Illuminate\Support\Facades\Password::class, 'Queue' => Illuminate\Support\Facades\Queue::class, @@ -122,10 +117,8 @@ return [ 'Session' => Illuminate\Support\Facades\Session::class, 'Storage' => Illuminate\Support\Facades\Storage::class, 'Theme' => Igaster\LaravelTheme\Facades\Theme::class, - 'Updater' => Codedge\Updater\UpdaterFacade::class, 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, - 'Version' => PragmaRX\Version\Package\Facade::class, 'View' => Illuminate\Support\Facades\View::class, 'Yaml' => Symfony\Component\Yaml\Yaml::class, diff --git a/config/captcha.php b/config/captcha.php deleted file mode 100644 index 87378ee0..00000000 --- a/config/captcha.php +++ /dev/null @@ -1,23 +0,0 @@ - env('CAPTCHA_ENABLED', false), - 'sitekey' => env('CAPTCHA_SITEKEY', ''), - 'secret' => env('CAPTCHA_SECRET', ''), - - // Attributes can be found here: - // https://developers.google.com/recaptcha/docs/display#render_param - 'attributes' => [ - 'data-theme' => env('CAPTCHA_DATATHEME', 'light'), - ], - - 'options' => [ - 'timeout' => env('CAPTCHA_TIMEOUT', '2.0'), - ], -]; diff --git a/config/database.php b/config/database.php index 0ff7d1cb..faf88831 100755 --- a/config/database.php +++ b/config/database.php @@ -20,8 +20,7 @@ return [ 'strict' => false, 'engine' => null, 'options' => [ - PDO::ATTR_EMULATE_PREPARES => env('DB_EMULATE_PREPARES', false), - //PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => get_truth_state(env('DB_EMULATE_PREPARES', false)), ], 'dump' => [ 'timeout' => 60 * 5, // 5 minute timeout @@ -29,7 +28,7 @@ return [ ], 'sqlite' => [ 'driver' => 'sqlite', - 'database' => storage_path('db.sqlite'), + 'database' => env('DB_DATABASE', storage_path('db.sqlite')), 'timezone' => '+00:00', 'prefix' => '', 'prefix_indexes' => true, diff --git a/config/phpvms.php b/config/phpvms.php index 3f194f9b..8becc88d 100644 --- a/config/phpvms.php +++ b/config/phpvms.php @@ -93,12 +93,13 @@ return [ * under settings, for the display units */ 'internal_units' => [ - 'altitude' => 'feet', - 'distance' => 'nmi', - 'fuel' => 'lbs', - 'mass' => 'lbs', - 'velocity' => 'knots', - 'volume' => 'gallons', + 'altitude' => 'feet', + 'distance' => 'nmi', + 'fuel' => 'lbs', + 'mass' => 'lbs', + 'temperature' => 'celsius', + 'velocity' => 'knots', + 'volume' => 'gallons', ], /* diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 00000000..c0832997 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,56 @@ +# +# Run with either `make docker-test` or the following Docker command: +# docker-compose -f docker-compose.yml -f docker-compose.local.yml up +# +--- +services: + # This is overriding the docker-compose.yaml file to have a localized version + # of the contianer that you can use for building/testing + app: + build: + context: . + environment: + DB_HOST: mysql + REDIS_HOST: redis + volumes: + - ./:/var/www +# - ./bootstrap:/var/www/bootstrap +# - ./config:/var/www/config +# - ./modules:/var/www/modules +# - ./public:/var/www/public +# - ./resources:/var/www/resources +# - ./storage:/var/www/storage +# - ./tests:/var/www/tests +# - ./resources/docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf +# - ./composer.json:/var/www/composer.json +# - ./composer-lock.json:/var/www/composer-lock.json +# - ./env.php:/var/www/env.php + depends_on: + - mysql + - redis + + nginx: + image: nginx:1.15.12-alpine + command: /bin/sh -c "exec nginx -g 'daemon off;'" + volumes: + - ./:/var/www + - ./resources/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf + ports: + - 80:80 + depends_on: + - app + + mysql: + image: mysql:5.7 + command: "--innodb_use_native_aio=0" + environment: + MYSQL_DATABASE: phpvms + MYSQL_USER: phpvms + MYSQL_PASSWORD: phpvms + MYSQL_ROOT_PASSWORD: + MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' + volumes: + - ./storage/docker/mysql:/var/lib/mysql + - ./resources/docker/mysql:/etc/mysql/conf.d + ports: + - 3306:3306 diff --git a/docker-compose.local.yml b/docker-compose.local.yml deleted file mode 100644 index 69992405..00000000 --- a/docker-compose.local.yml +++ /dev/null @@ -1,31 +0,0 @@ -# -# Run with either `make docker-test` or the following Docker command: -# docker-compose -f docker-compose.yml -f docker-compose.local.yml up -# ---- -version: '3' -services: - # This is overriding the docker-compose.yaml file to have a localized version - # of the contianer that you can use for building/testing - app: - build: - context: . - environment: - DB_HOST: mysql - REDIS_HOST: redis - volumes: - - ./app:/var/www/app - - ./bootstrap:/var/www/bootstrap - - ./config:/var/www/config - - ./modules:/var/www/modules - - ./public:/var/www/public - - ./resources:/var/www/resources - - ./storage:/var/www/storage - - ./tests:/var/www/tests - - ./composer.json:/var/www/composer.json - - ./composer-lock.json:/var/www/composer-lock.json - #- ./env.php:/var/www/env.php - - ./resources/docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf - depends_on: - - mysql - - redis diff --git a/docker-compose.yml b/docker-compose.yml index 8bfe5fd8..75e36356 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,4 @@ --- -version: '3' services: app: image: nabeelio/phpvms diff --git a/phpunit.xml b/phpunit.xml index 234d54c5..086e9448 100755 --- a/phpunit.xml +++ b/phpunit.xml @@ -22,6 +22,7 @@ + @@ -40,5 +41,9 @@ + + + + diff --git a/public/index.php b/public/index.php index edbeeab4..dce620dd 100755 --- a/public/index.php +++ b/public/index.php @@ -9,6 +9,10 @@ use Illuminate\Contracts\Http\Kernel; use Illuminate\Http\Request; +if (!defined('DS')) { + define('DS', DIRECTORY_SEPARATOR); +} + /** * NOTE!! * @@ -17,13 +21,13 @@ use Illuminate\Http\Request; * * https://docs.phpvms.net/installation/uploading */ -$path_to_phpvms_folder = __DIR__.'/../'; -if (file_exists($path_to_phpvms_folder.'bootstrap/autoload.php')) { +$path_to_phpvms_folder = __DIR__.DS.'..'.DS; +if (file_exists($path_to_phpvms_folder.'bootstrap'.DS.'autoload.php')) { // noop } // Look up one more folder up (outside of the Laravel root) and in the `phpvms` subfolder -elseif (file_exists($path_to_phpvms_folder.'phpvms/bootstrap/autoload.php')) { +elseif (file_exists($path_to_phpvms_folder.'phpvms'.DS.'bootstrap'.DS.'autoload.php')) { $path_to_phpvms_folder = $path_to_phpvms_folder.'phpvms'; } @@ -33,8 +37,8 @@ else { exit(); } -require $path_to_phpvms_folder.'/bootstrap/autoload.php'; -$app = require_once $path_to_phpvms_folder.'/bootstrap/app.php'; +require $path_to_phpvms_folder.DS.'bootstrap'.DS.'autoload.php'; +$app = require_once $path_to_phpvms_folder.DS.'bootstrap'.DS.'app.php'; /* |-------------------------------------------------------------------------- @@ -47,8 +51,8 @@ $app = require_once $path_to_phpvms_folder.'/bootstrap/app.php'; | */ -if (file_exists($path_to_phpvms_folder.'/storage/framework/maintenance.php')) { - require $path_to_phpvms_folder.'/storage/framework/maintenance.php'; +if (file_exists($path_to_phpvms_folder.DS.'storage'.DS.'framework'.DS.'maintenance.php')) { + require $path_to_phpvms_folder.DS.'storage'.DS.'framework'.DS.'maintenance.php'; } $app->setPublicPath(__DIR__); diff --git a/resources/docker/php/Dockerfile b/resources/docker/php/Dockerfile deleted file mode 100644 index 05651f1e..00000000 --- a/resources/docker/php/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM php:7.4-fpm-alpine - -RUN apk add make gmp-dev - -# Copy any config files in -COPY ext-opcache.ini $PHP_INI_DIR/conf.d/ - -RUN ln -sf /dev/stderr /var/log/fpm-error.log - -RUN docker-php-ext-install \ - bcmath \ - calendar \ - gmp \ - intl \ - opcache \ - pdo_mysql diff --git a/resources/stubs/installer/env.stub b/resources/stubs/installer/env.stub index 70d7ff29..bc0027bb 100644 --- a/resources/stubs/installer/env.stub +++ b/resources/stubs/installer/env.stub @@ -33,7 +33,6 @@ DB_DATABASE='$DB_DATABASE$' DB_USERNAME='$DB_USERNAME$' DB_PASSWORD='$DB_PASSWORD$' DB_PREFIX='$DB_PREFIX$' -DB_EMULATE_PREPARES=$DB_EMULATE_PREPARES$ DB_SOCKET= ## CACHE SETTINGS diff --git a/resources/views/admin/dashboard/index.blade.php b/resources/views/admin/dashboard/index.blade.php index e806d784..06fabb5d 100644 --- a/resources/views/admin/dashboard/index.blade.php +++ b/resources/views/admin/dashboard/index.blade.php @@ -30,27 +30,28 @@ @endcomponent +
- {{--@include('admin.dashboard.pirep_chart')--}} + {{-- @include('admin.dashboard.pirep_chart') --}}
- + {{-- Intentionally Left Blank --}}
-
- + {{-- Intentionally Left Blank --}}
- + {{-- Intentionally Left Blank --}}
@endsection @section('scripts') + @parent + +@endsection diff --git a/resources/views/admin/pireps/fields.blade.php b/resources/views/admin/pireps/fields.blade.php index 376b683c..ee720527 100644 --- a/resources/views/admin/pireps/fields.blade.php +++ b/resources/views/admin/pireps/fields.blade.php @@ -205,6 +205,36 @@ +
+
+ {{ Form::label('distance', 'Distance:') }} +
+
+ {{ Form::number('distance', null, [ + 'class' => 'form-control', + 'min' => 0, + 'step' => '0.01' + ]) }} +

{{ $errors->first('distance') }}

+
+
+
+ +
+ {{ Form::label('distance', 'Planned Distance:') }} +
+
+ {{ Form::number('planned_distance', null, [ + 'class' => 'form-control', + 'min' => 0, + 'step' => '0.01' + ]) }} +

{{ $errors->first('planned_distance') }}

+
+
+
+ +
diff --git a/resources/views/admin/pireps/show_fields.blade.php b/resources/views/admin/pireps/show_fields.blade.php index 556063b4..f33ae9d7 100644 --- a/resources/views/admin/pireps/show_fields.blade.php +++ b/resources/views/admin/pireps/show_fields.blade.php @@ -62,6 +62,10 @@ Flight Level {{ $pirep->level }} + + Distance + {{ $pirep->distance }} + Route {{ $pirep->route }} diff --git a/resources/views/layouts/default/app.blade.php b/resources/views/layouts/default/app.blade.php index 7529faf8..6ff14e51 100644 --- a/resources/views/layouts/default/app.blade.php +++ b/resources/views/layouts/default/app.blade.php @@ -22,13 +22,8 @@ {{-- Start of the required files in the head block --}} - - - + @yield('css') + @yield('scripts_head') {{-- End of the required stuff in the head block --}} diff --git a/resources/views/layouts/default/auth/register.blade.php b/resources/views/layouts/default/auth/register.blade.php index a393a337..a74869ea 100644 --- a/resources/views/layouts/default/auth/register.blade.php +++ b/resources/views/layouts/default/auth/register.blade.php @@ -97,14 +97,11 @@ @endforeach @endif - @if(config('captcha.enabled')) - -
- {!! NoCaptcha::display(config('captcha.attributes')) !!} -
- @if ($errors->has('g-recaptcha-response')) -

{{ $errors->first('g-recaptcha-response') }}

+ @if($captcha['enabled'] === true) + +
+ @if ($errors->has('h-captcha-response')) +

{{ $errors->first('h-captcha-response') }}

@endif @endif @@ -158,7 +155,9 @@ @endsection @section('scripts') - {!! NoCaptcha::renderJs(config('app.locale')) !!} + @if ($captcha['enabled']) + + @endif