From 6a142a4c3345cd3d24aa31b64f6b1033cd6ae2f2 Mon Sep 17 00:00:00 2001 From: Ivan Gabriele Date: Sat, 15 Jul 2023 15:41:26 +0200 Subject: [PATCH] feat: finalize project info detection --- .eslintrc | 4 +- .vscode/launch.json | 5 +- .vscode/tasks.json | 2 +- output.json | 1554 +++++++++++++++++ package.json | 26 +- src/commands/addOrRemoveCurrentDocument.ts | 17 +- src/commands/sendCurrentDocumentOrStack.ts | 16 +- src/constants.ts | 2 + src/extension.ts | 36 +- src/libs/DocumentInfo.ts | 41 + src/libs/server.ts | 61 + src/libs/stackManager.ts | 2 +- src/types.ts | 23 +- .../__snapshots__/formatPrompt.test.ts.snap | 18 - src/utils/__tests__/formatPrompt.test.ts | 32 - src/utils/formatPrompt.ts | 31 +- src/utils/getCurrentDocumentInfo.ts | 26 - src/utils/getCurrentDocumentPath.ts | 12 + src/utils/getCurrentWorkspaceInfo.ts | 42 +- src/utils/getProjectFrameworks.ts | 29 + src/utils/getProjectName.ts | 9 + .../getSourceCodeDocumentLanguagesStat.ts | 40 + .../getSourceCodeDocumentMainLanguages.ts | 33 + src/utils/getSourceCodeDocumentPaths.ts | 50 + src/utils/startWebSocketServer.ts | 30 - src/utils/updateStackStatusBarItem.ts | 45 +- src/utils/updateStateStatusBarItem.ts | 4 +- yarn.lock | 18 +- 28 files changed, 2018 insertions(+), 190 deletions(-) create mode 100644 output.json create mode 100644 src/libs/DocumentInfo.ts create mode 100644 src/libs/server.ts delete mode 100644 src/utils/__tests__/__snapshots__/formatPrompt.test.ts.snap delete mode 100644 src/utils/__tests__/formatPrompt.test.ts delete mode 100644 src/utils/getCurrentDocumentInfo.ts create mode 100644 src/utils/getCurrentDocumentPath.ts create mode 100644 src/utils/getProjectFrameworks.ts create mode 100644 src/utils/getProjectName.ts create mode 100644 src/utils/getSourceCodeDocumentLanguagesStat.ts create mode 100644 src/utils/getSourceCodeDocumentMainLanguages.ts create mode 100644 src/utils/getSourceCodeDocumentPaths.ts delete mode 100644 src/utils/startWebSocketServer.ts diff --git a/.eslintrc b/.eslintrc index bff8f65..ef0f5e0 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,6 +7,8 @@ "rules": { "no-console": ["warn", { "allow": ["error", "info", "warn"] }], - "import/no-extraneous-dependencies": "off" + "import/no-extraneous-dependencies": "off", + + "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }] } } diff --git a/.vscode/launch.json b/.vscode/launch.json index 453c1da..5d4cd98 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -7,7 +7,10 @@ "configurations": [ { "name": "Run Extension", - "args": ["--extensionDevelopmentPath=${workspaceRoot}"], + "args": ["--disable-extensions", "--extensionDevelopmentPath=${workspaceRoot}"], + "env": { + "IS_DEBUG": "true" + }, "outFiles": ["${workspaceRoot}/build/**/*.js"], "preLaunchTask": "${defaultBuildTask}", "request": "launch", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 623b5d8..5bd80f7 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -3,7 +3,7 @@ "tasks": [ { "type": "npm", - "script": "watch", + "script": "build", "group": { "kind": "build", "isDefault": true diff --git a/output.json b/output.json new file mode 100644 index 0000000..c028e83 --- /dev/null +++ b/output.json @@ -0,0 +1,1554 @@ +[ + "__init__.py", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/MonitorFishApplication.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/AJPConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/AJPProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/ApiClient.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/ClockConfiguration.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/DatabaseProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/HostProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/JpaConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/MapperConfiguration.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/MonitorenvProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/OIDCProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/ProtectedPathsAPIProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/RequestLoggingConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/RestTemplateConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/SchedulingConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/SecurityConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/SentryConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/SuperUserAPIProperties.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/SwaggerConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/config/UseCase.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/CodeType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/CommunicationMeans.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/PNOAndLANAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/PNOAndLANCatches.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/PendingAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/SilenceAlertPeriod.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/SilencedAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/AlertType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/AlertTypeMapping.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/FrenchEEZFishingAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/IHasImplementation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/MissingFARAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/PNOAndLANWeightToleranceAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/ThreeMilesTrawlingAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/alerts/type/TwelveMilesFishingAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/authorization/UserAuthorization.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/Beacon.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionActionPropertyName.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionComment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionCommentUserType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionNotification.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionNotificationRecipientFunction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionNotificationType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionNotifications.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionResumeAndDetails.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconMalfunctionWithDetails.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/BeaconStatus.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/EndOfBeaconMalfunctionReason.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/ForeignFMC.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/Stage.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/VesselBeaconMalfunctionsResume.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/VesselBeaconMalfunctionsResumeAndHistory.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/VesselStatus.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/control_objective/ControlObjective.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/district/District.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/facade/Facade.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/facade/FacadeArea.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/fao_area/FAOArea.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/fleet_segment/FleetSegment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/gear/Gear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/gear/GearCodeGroup.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/health/Health.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Gear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/LastPosition.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/last_position/Species.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/Catch.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/EffortTargetSpeciesGroup.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/Gear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/Haul.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/IHasImplementation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookMessage.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookMessageTypeMapping.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookMessagesAndAlerts.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookOperationType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookOperationTypeMapping.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookSoftware.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/LogbookTransmissionFormat.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/RETReturnErrorCode.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/Voyage.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/VoyageDatesAndTripNumber.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/Acknowledge.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/COE.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/COX.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/CRO.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/DEP.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/DIS.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/EOF.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/FAR.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/LAN.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/LogbookMessageValue.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/NotImplemented.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/PNO.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/logbook/messages/RTP.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/ControlResource.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/ControlUnit.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/Mission.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/MissionAndActions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/MissionSource.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/MissionType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission/MultiPolygon.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/ControlCheck.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/ControlOrigin.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/Controller.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/ControlsSummary.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/FleetSegment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/FlightGoal.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/GearControl.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/GearInfraction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/Infraction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/InfractionCategory.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/InfractionType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/LogbookInfraction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/MissionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/MissionActionType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/OtherInfraction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/SpeciesControl.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/SpeciesInfraction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/port/Port.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/position/Position.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/position/PositionType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/CurrentAndArchivedReportings.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/IHasImplementation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/InfractionSuspicion.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/InfractionSuspicionOrObservationType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/Observation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/Reporting.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/ReportingActor.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/ReportingType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/ReportingTypeMapping.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/reporting/ReportingValue.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/risk_factor/VesselRiskFactor.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/InputSource.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/Rule.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/type/IHasImplementation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/type/PNOAndLANWeightTolerance.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/type/RuleType.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/type/RuleTypeMapping.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/species/Species.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/species/SpeciesAndSpeciesGroups.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/species/SpeciesGroup.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/Vessel.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/VesselIdentifier.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/VesselInformation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/vessel/VesselTrackDepth.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CodeNotFoundException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CouldNotDeleteException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CouldNotFindException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CouldNotUpdateBeaconMalfunctionException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CouldNotUpdateControlObjectiveException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/CouldNotUpdateFleetSegmentException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/EntityConversionException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/NAFMessageParsingException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/NatinfCodeNotFoundException.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/NoERSMessagesFound.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/exceptions/NoLogbookFishingTripFound.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/helpers/GeoHelpers.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/ERSMapper.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/NAFCode.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/NAFMessageMapper.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/ReportingMapper.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/RuleMapper.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/BeaconMalfunctionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/BeaconMalfunctionCommentsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/BeaconMalfunctionNotificationsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/BeaconMalfunctionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/BeaconRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/ControlObjectivesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/ControlUnitRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/DistrictRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/FAOAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/FacadeAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/FleetSegmentRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/ForeignFMCRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/GearCodeGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/GearRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/InfractionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/LastPositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/LogbookRawMessageRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/LogbookReportRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/MetricsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/MissionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/MissionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/PNOAndLANAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/PendingAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/PortRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/PositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/ReportingRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/RiskFactorsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/RuleRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/SilencedAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/SpeciesGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/SpeciesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/UserAuthorizationRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/repositories/VesselRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/DeleteSilencedOperationalAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/ExecuteRules.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/GetOperationalAlerts.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/GetSilencedAlerts.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/SilenceOperationalAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/ValidateOperationalAlert.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/rules/ExecutePnoAndLanWeightToleranceRule.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/authorization/DeleteUser.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/authorization/GetAuthorizedUser.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/authorization/GetIsAuthorizedUser.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/authorization/SaveUser.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/ArchiveBeaconMalfunctions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetAllBeaconMalfunctions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetAllForeignFMCs.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetBeaconMalfunction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/RequestNotification.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/SaveBeaconMalfunctionComment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/UpdateBeaconMalfunction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/AddControlObjective.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/AddControlObjectiveYear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/DeleteControlObjective.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/GetControlObjectiveYearEntries.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/GetControlObjectivesOfYear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_objective/UpdateControlObjective.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/control_units/GetAllControlUnits.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/dtos/CreateOrUpdateFleetSegmentFields.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/dtos/VoyageRequest.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fao_areas/ComputeFAOAreasFromCoordinates.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fao_areas/ComputeVesselFAOAreas.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fao_areas/GetFAOAreas.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/AddFleetSegmentYear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/ComputeFleetSegments.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/CreateFleetSegment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/DeleteFleetSegment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/GetAllFleetSegmentsByYear.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/GetFleetSegmentYearEntries.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/UpdateFleetSegment.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/Utils.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/gear/GetAllGears.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/healthcheck/GetHealthcheck.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/infraction/GetFishingAndSecurityInfractions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/AddMissionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/DeleteMissionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetMissionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetMissionActionFacade.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetMissionActions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetVesselControls.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/UpdateMissionAction.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/missions/GetAllMissions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/port/GetActivePorts.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/AddReporting.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/ArchiveReporting.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/ArchiveReportings.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/DeleteReporting.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/DeleteReportings.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/GetAllCurrentReportings.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/GetInfractionSuspicionWithDMLAndSeaFront.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/UpdateReporting.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/reporting/UpdatedInfractionSuspicionOrObservation.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/species/GetAllSpeciesAndSpeciesGroups.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetLastPositions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetLogbookMessages.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVessel.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselBeaconMalfunctions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselPositions.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselReportings.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselRiskFactor.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/GetVesselVoyage.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/ParseAndSavePosition.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/vessel/SearchVessels.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/domain/utils.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/ControllersExceptionHandler.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/BeaconMalfunctionController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ControlObjectiveController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/DataReferentialController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/FaoAreaController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/FleetSegmentController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ForeignFMCsController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/InfractionController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/MissionActionsController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/MissionController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/OperationalAlertController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/PortController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ReportingController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/UserAuthorizationController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/AddControlObjectiveDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/AddMissionActionDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/CreateOrUpdateFleetSegmentDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/CreateReportingDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/SaveBeaconMalfunctionCommentDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/SilenceOperationalAlertDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/UpdateBeaconMalfunctionDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/UpdateControlObjectiveDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/input/UpdateReportingDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/AlertDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ApiError.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionActionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionCommentDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionNotificationDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionNotificationsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionResumeAndDetailsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionWithDetailsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/BeaconMalfunctionsResumeAndHistoryDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ControlObjectiveDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ControlsSummaryDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/CurrentAndArchivedReportingDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/FleetSegmentDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ForeignFMCDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearControlDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/GearLastPositionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/HealthDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/InfractionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/InfractionSuspicionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/LastPositionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/LogbookMessageDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/LogbookMessagesAndAlertsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/MissingParameterApiError.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/MissionActionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/MissionWithActionsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ObservationDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/PendingAlertDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/PortDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/PositionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ReportingDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/ReportingValueDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/RiskFactorDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/SilencedAlertDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/SpeciesAndSpeciesGroupsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/SpeciesDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/SpeciesGroupDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/SpeciesLastPositionDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/UserAuthorizationDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/VesselAndPositionsDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/VesselBeaconMalfunctionResumeDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/VesselDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/VesselIdentityDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/outputs/VoyageDataOutput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/HealthcheckController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/PositionsController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/PublicBeaconMalfunctionController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/SpaController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/UserManagementController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/VersionController.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/input/AddUserDataInput.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/ApiKeyCheckFilter.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/BffFilterConfig.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/LoggedMessage.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/MutableHttpServletRequest.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/UserAuthorizationCheckFilter.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/input/UserInfo.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/cache/CaffeineConfiguration.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/BeaconEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/BeaconMalfunctionActionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/BeaconMalfunctionCommentEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/BeaconMalfunctionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/BeaconMalfunctionNotificationEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/ControlObjectivesEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/DistrictEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/FAOAreasEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/FacadeAreaEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/FleetSegmentEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/ForeignFmcEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/GearCodeGroupEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/GearEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/InfractionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/LastPositionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/LogbookRawMessageEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/LogbookReportEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/MissionActionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/PendingAlertEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/PnoAndLanAlertEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/PortEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/PositionEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/ReportingEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/RiskFactorsEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/RuleEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/SilencedAlertEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/SpeciesEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/SpeciesGroupEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/UserAuthorizationEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/entities/VesselEntity.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionCommentsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionNotificationsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaControlObjectivesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaDistrictRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFAOAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFacadeAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFleetSegmentRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaForeignFMCRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaGearCodeGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaGearRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaInfractionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLogbookRawMessageRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLogbookReportRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaMissionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPNOAndLANAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPendingAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPortRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaReportingRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaRiskFactorsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaRuleRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSilencedAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSpeciesGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSpeciesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaUserAuthorizationRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaVesselRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBBeaconMalfunctionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBBeaconMalfunctionCommentsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBBeaconMalfunctionNotificationsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBBeaconMalfunctionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBBeaconRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBControlObjectivesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBDistrictRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBFAOAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBFacadeAreasRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBFleetSegmentRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBForeignFMCRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBGearCodeGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBGearRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBInfractionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBLastPositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBLogbookRawMessageRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBLogbookReportRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBMissionActionsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBPNOAndLANAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBPendingAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBPortRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBPositionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBReportingRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBRiskFactorsRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBRuleRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBSilencedAlertRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBSpeciesGroupRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBSpeciesRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBUserAuthorizationRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/DBVesselRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/interfaces/VoyageTripNumberAndDates.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/monitorenv/APIControlUnitRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/monitorenv/APIMissionRepository.kt", + "backend/src/main/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/monitorenv/input/MissionDataResponse.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/beacon_malfunctions/VesselBeaconMalfunctionsResumeUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/mission_actions/MissionActionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/entities/rules/type/PNOAndLANWeightToleranceUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/helpers/GeoHelpersUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/ERSMapperUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/NAFMessageMapperUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/PendingAlertMapperUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/ReportingMapperUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/mappers/RuleMapperUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/AddControlObjectiveYearUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/AddReportingUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/ExecuteRulesUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetAllCurrentReportingsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetFAOAreasUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetInfractionSuspicionWithDMLAndSeaFrontUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetLogbookMessagesUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetOperationalAlertsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetSilencedAlertsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetVesselPositionsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetVesselReportingsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetVesselUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/GetVesselVoyageUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/SearchVesselsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/SilenceOperationalAlertUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/UpdateControlObjectiveUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/UpdateReportingUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/ValidateOperationalAlertUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/alert/rules/ExecutePnoAndLanWeightToleranceRuleUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/authorization/GetIsAuthorizedUserUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/ArchiveBeaconMalfunctionsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetAllBeaconMalfunctionsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetBeaconMalfunctionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/GetVesselBeaconMalfunctionsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/RequestNotificationUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/beacon_malfunction/UpdateBeaconMalfunctionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/faoAreas/ComputeFAOAreasFromCoordinatesUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/faoAreas/ComputeVesselFAOAreasUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/ComputeFleetSegmentsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/UpdateFleetSegmentUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/fleet_segment/UtilsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/AddMissionActionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/DeleteMissionActionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetMissionActionFacadeUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/GetVesselControlsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/mission_actions/UpdateMissionActionUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/missions/GetAllMissionsUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/domain/use_cases/missions/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/SecurityConfigITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/BeaconMalfunctionControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ControlObjectiveControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/DataReferentialControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/FaoAreaControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/FleetSegmentControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ForeignFMCsControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/InfractionControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/MissionActionsControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/MissionsControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/OperationalAlertControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/PortControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/ReportingControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/UserAuthorizationControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/bff/VesselControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/HealthcheckControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/PositionsControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/PublicBeaconMalfunctionControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/public_api/UserManagementControllerITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/ApiKeyCheckFilterUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/BffFilterConfigITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/api/security/UserAuthorizationCheckFilterUTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/AbstractDBTests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionActionsRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionCommentsRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionNotificationsRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconMalfunctionsRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaBeaconRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaControlObjectivesRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaDistrictRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFAOAreasRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFacadeAreasRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaFleetSegmentRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaForeignFMCRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaGearRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaInfractionRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLastPositionRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLogbookRawMessageRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaLogbookReportRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaMissionActionRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPNOAndLANAlertRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPendingAlertRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPortRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaPositionRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaReportingRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaRiskFactorsRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaRuleRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSilencedAlertRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSpeciesGroupRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaSpeciesRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaUserAuthorisationRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/JpaVesselRepositoryITests.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/database/repositories/TestUtils.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/monitorenv/APIMissionRepositoryITest.kt", + "backend/src/test/kotlin/fr/gouv/cnsp/monitorfish/infrastructure/monitorenv/TestUtils.kt", + "datascience/__init__.py", + "datascience/config.py", + "datascience/dam-si-jupyter-config.py", + "datascience/docs/source/conf.py", + "datascience/main.py", + "datascience/setup.py", + "datascience/src/__init__.py", + "datascience/src/db_config.py", + "datascience/src/pipeline/__init__.py", + "datascience/src/pipeline/emails/__init__.py", + "datascience/src/pipeline/entities/__init__.py", + "datascience/src/pipeline/entities/beacon_malfunctions.py", + "datascience/src/pipeline/entities/missions.py", + "datascience/src/pipeline/entities/monitorfish_healthcheck.py", + "datascience/src/pipeline/exceptions/__init__.py", + "datascience/src/pipeline/exceptions/monitorfish_health_error.py", + "datascience/src/pipeline/flows/__init__.py", + "datascience/src/pipeline/flows/admin_areas.py", + "datascience/src/pipeline/flows/anchorages.py", + "datascience/src/pipeline/flows/beacons.py", + "datascience/src/pipeline/flows/control_anteriority.py", + "datascience/src/pipeline/flows/control_units.py", + "datascience/src/pipeline/flows/controls.py", + "datascience/src/pipeline/flows/controls_open_data.py", + "datascience/src/pipeline/flows/current_segments.py", + "datascience/src/pipeline/flows/districts.py", + "datascience/src/pipeline/flows/enrich_positions.py", + "datascience/src/pipeline/flows/export_species.py", + "datascience/src/pipeline/flows/facade_areas.py", + "datascience/src/pipeline/flows/fao_areas.py", + "datascience/src/pipeline/flows/fishing_gear_codes.py", + "datascience/src/pipeline/flows/foreign_fmcs.py", + "datascience/src/pipeline/flows/infractions.py", + "datascience/src/pipeline/flows/init_species_groups.py", + "datascience/src/pipeline/flows/isscaap_codes.py", + "datascience/src/pipeline/flows/last_positions.py", + "datascience/src/pipeline/flows/logbook.py", + "datascience/src/pipeline/flows/missing_far_alerts.py", + "datascience/src/pipeline/flows/missing_trip_numbers.py", + "datascience/src/pipeline/flows/missions.py", + "datascience/src/pipeline/flows/notify_beacon_malfunctions.py", + "datascience/src/pipeline/flows/ports.py", + "datascience/src/pipeline/flows/position_alerts.py", + "datascience/src/pipeline/flows/refresh_materialized_view.py", + "datascience/src/pipeline/flows/regulations.py", + "datascience/src/pipeline/flows/regulations_checkup.py", + "datascience/src/pipeline/flows/regulations_open_data.py", + "datascience/src/pipeline/flows/risk_factor.py", + "datascience/src/pipeline/flows/scrape_legipeche.py", + "datascience/src/pipeline/flows/species.py", + "datascience/src/pipeline/flows/update_beacon_malfunctions.py", + "datascience/src/pipeline/flows/vessels.py", + "datascience/src/pipeline/flows_config.py", + "datascience/src/pipeline/generic_tasks.py", + "datascience/src/pipeline/helpers/__init__.py", + "datascience/src/pipeline/helpers/controls.py", + "datascience/src/pipeline/helpers/country_codes.py", + "datascience/src/pipeline/helpers/dates.py", + "datascience/src/pipeline/helpers/emails.py", + "datascience/src/pipeline/helpers/fao_areas.py", + "datascience/src/pipeline/helpers/segments.py", + "datascience/src/pipeline/helpers/spatial.py", + "datascience/src/pipeline/helpers/vessels.py", + "datascience/src/pipeline/parsers/__init__.py", + "datascience/src/pipeline/parsers/ers/__init__.py", + "datascience/src/pipeline/parsers/ers/childless_parsers.py", + "datascience/src/pipeline/parsers/ers/ers.py", + "datascience/src/pipeline/parsers/ers/log_parsers.py", + "datascience/src/pipeline/parsers/flux/__init__.py", + "datascience/src/pipeline/parsers/flux/childless_parsers.py", + "datascience/src/pipeline/parsers/flux/flux.py", + "datascience/src/pipeline/parsers/flux/log_parsers.py", + "datascience/src/pipeline/parsers/flux/utils.py", + "datascience/src/pipeline/parsers/utils.py", + "datascience/src/pipeline/processing.py", + "datascience/src/pipeline/scraping/__init__.py", + "datascience/src/pipeline/scraping/legipeche/__init__.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/__init__.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/items.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/middlewares.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/pipelines.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/settings.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/spiders/__init__.py", + "datascience/src/pipeline/scraping/legipeche/legipeche/spiders/legipeche_spider.py", + "datascience/src/pipeline/shared_tasks/__init__.py", + "datascience/src/pipeline/shared_tasks/__pycache__/__init.py", + "datascience/src/pipeline/shared_tasks/alerts.py", + "datascience/src/pipeline/shared_tasks/control_flow.py", + "datascience/src/pipeline/shared_tasks/datagouv.py", + "datascience/src/pipeline/shared_tasks/dates.py", + "datascience/src/pipeline/shared_tasks/facades.py", + "datascience/src/pipeline/shared_tasks/healthcheck.py", + "datascience/src/pipeline/shared_tasks/infrastructure.py", + "datascience/src/pipeline/shared_tasks/positions.py", + "datascience/src/pipeline/shared_tasks/risk_factors.py", + "datascience/src/pipeline/shared_tasks/segments.py", + "datascience/src/pipeline/shared_tasks/vessels.py", + "datascience/src/pipeline/utils.py", + "datascience/src/read_query.py", + "datascience/src/utils/__init__.py", + "datascience/src/utils/anonymization.py", + "datascience/src/utils/database.py", + "datascience/src/utils/graphs.py", + "datascience/src/utils/update_test_data.py", + "datascience/src/utils/xml_analysis.py", + "datascience/tests/__init__.py", + "datascience/tests/conftest.py", + "datascience/tests/mocks.py", + "datascience/tests/test_db_config.py", + "datascience/tests/test_main.py", + "datascience/tests/test_pipeline/__init__.py", + "datascience/tests/test_pipeline/test_entities/__init__.py", + "datascience/tests/test_pipeline/test_entities/test_beacon_malfunctions.py", + "datascience/tests/test_pipeline/test_flows/__init__.py", + "datascience/tests/test_pipeline/test_flows/test_beacons.py", + "datascience/tests/test_pipeline/test_flows/test_control_anteriority.py", + "datascience/tests/test_pipeline/test_flows/test_control_units.py", + "datascience/tests/test_pipeline/test_flows/test_controls.py", + "datascience/tests/test_pipeline/test_flows/test_controls_open_data.py", + "datascience/tests/test_pipeline/test_flows/test_current_segments.py", + "datascience/tests/test_pipeline/test_flows/test_districts.py", + "datascience/tests/test_pipeline/test_flows/test_enrich_positions.py", + "datascience/tests/test_pipeline/test_flows/test_fishing_gear_codes.py", + "datascience/tests/test_pipeline/test_flows/test_foreign_fmcs.py", + "datascience/tests/test_pipeline/test_flows/test_infractions.py", + "datascience/tests/test_pipeline/test_flows/test_last_positions.py", + "datascience/tests/test_pipeline/test_flows/test_logbook.py", + "datascience/tests/test_pipeline/test_flows/test_missing_far_alerts.py", + "datascience/tests/test_pipeline/test_flows/test_missing_trip_numbers.py", + "datascience/tests/test_pipeline/test_flows/test_missions.py", + "datascience/tests/test_pipeline/test_flows/test_notify_beacon_malfunctions.py", + "datascience/tests/test_pipeline/test_flows/test_ports.py", + "datascience/tests/test_pipeline/test_flows/test_position_alerts.py", + "datascience/tests/test_pipeline/test_flows/test_refresh_materialized_views.py", + "datascience/tests/test_pipeline/test_flows/test_regulations_checkup.py", + "datascience/tests/test_pipeline/test_flows/test_regulations_open_data.py", + "datascience/tests/test_pipeline/test_flows/test_risk_factor.py", + "datascience/tests/test_pipeline/test_flows/test_species.py", + "datascience/tests/test_pipeline/test_flows/test_update_beacon_malfunctions.py", + "datascience/tests/test_pipeline/test_flows/test_vessels.py", + "datascience/tests/test_pipeline/test_flows_config.py", + "datascience/tests/test_pipeline/test_helpers/__init__.py", + "datascience/tests/test_pipeline/test_helpers/test_controls.py", + "datascience/tests/test_pipeline/test_helpers/test_dates.py", + "datascience/tests/test_pipeline/test_helpers/test_emails.py", + "datascience/tests/test_pipeline/test_helpers/test_fao_areas.py", + "datascience/tests/test_pipeline/test_helpers/test_segments.py", + "datascience/tests/test_pipeline/test_helpers/test_spatial.py", + "datascience/tests/test_pipeline/test_helpers/test_vessels.py", + "datascience/tests/test_pipeline/test_parsers/__init__.py", + "datascience/tests/test_pipeline/test_parsers/test_ers.py", + "datascience/tests/test_pipeline/test_parsers/test_flux.py", + "datascience/tests/test_pipeline/test_parsers/test_utils.py", + "datascience/tests/test_pipeline/test_processing.py", + "datascience/tests/test_pipeline/test_shared_tasks/__init__.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_alerts.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_control_flow.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_datagouv.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_dates.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_healthcheck.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_positions.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_risk_factors.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_segments.py", + "datascience/tests/test_pipeline/test_shared_tasks/test_vessels.py", + "datascience/tests/test_pipeline/test_utils.py", + "frontend/config/cypress.config.ts", + "frontend/config/fileTransformer.js", + "frontend/config/jest.config.js", + "frontend/config/jest.global.js", + "frontend/cypress/e2e/alerts.spec.ts", + "frontend/cypress/e2e/backoffice/control_objectives.spec.ts", + "frontend/cypress/e2e/backoffice/fleet_segments.spec.ts", + "frontend/cypress/e2e/backoffice/new_regulation.spec.ts", + "frontend/cypress/e2e/backoffice/regulatory_zone_list.spec.ts", + "frontend/cypress/e2e/backoffice/update_regulation.spec.ts", + "frontend/cypress/e2e/beacon_malfunction.spec.ts", + "frontend/cypress/e2e/external_monitorfish.spec.ts", + "frontend/cypress/e2e/favorite_vessel.spec.ts", + "frontend/cypress/e2e/interest_point.spec.ts", + "frontend/cypress/e2e/layers_sidebar.spec.ts", + "frontend/cypress/e2e/map_menu_tools.spec.ts", + "frontend/cypress/e2e/measurement.spec.ts", + "frontend/cypress/e2e/missions/controls_overlay.spec.ts", + "frontend/cypress/e2e/missions/missions_labels.spec.ts", + "frontend/cypress/e2e/missions/missions_map_button.spec.ts", + "frontend/cypress/e2e/missions/missions_overlay.spec.ts", + "frontend/cypress/e2e/reporting.spec.ts", + "frontend/cypress/e2e/side_window/alert_list.spec.ts", + "frontend/cypress/e2e/side_window/beacon_malfunction/board.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/action_list.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/air_control.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/air_surveillance.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/land_control.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/main_form.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/observation.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/sea_control.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/sea_control_edition.spec.ts", + "frontend/cypress/e2e/side_window/mission_form/utils.ts", + "frontend/cypress/e2e/side_window/mission_list/filter_bar.spec.ts", + "frontend/cypress/e2e/side_window/mission_list/sea_front_filter.spec.ts", + "frontend/cypress/e2e/side_window/mission_list/utils.ts", + "frontend/cypress/e2e/side_window/reporting_list.spec.ts", + "frontend/cypress/e2e/utils/customDayjs.ts", + "frontend/cypress/e2e/utils/getLocalizedDayjs.ts", + "frontend/cypress/e2e/utils/getUtcDateInMultipleFormats.ts", + "frontend/cypress/e2e/utils/getUtcizedDayjs.ts", + "frontend/cypress/e2e/vessel_sidebar/control_buttons.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/controls.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/ers_vms.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/fishing.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/identity.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/offline_management.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/reporting.spec.ts", + "frontend/cypress/e2e/vessel_sidebar/resume.spec.ts", + "frontend/cypress/e2e/vessels/vessel_filters.spec.ts", + "frontend/cypress/e2e/vessels/vessel_labels.spec.ts", + "frontend/cypress/e2e/vessels/vessel_search.spec.ts", + "frontend/cypress/e2e/vessels/vessel_track.spec.ts", + "frontend/cypress/e2e/vessels/vessel_visibility.spec.ts", + "frontend/cypress/e2e/vessels/vessels_list.spec.ts", + "frontend/cypress/support/commands.ts", + "frontend/cypress/support/commands/dragTo.ts", + "frontend/cypress/support/commands/getComputedStyle.ts", + "frontend/cypress/support/commands/loadPath.ts", + "frontend/cypress/support/e2e.ts", + "frontend/public/env.js", + "frontend/src/App.tsx", + "frontend/src/api/APIWorker.tsx", + "frontend/src/api/BackofficeMode.tsx", + "frontend/src/api/__tests__/getEnvironmentVariable.test.ts", + "frontend/src/api/alert.ts", + "frontend/src/api/authorization.ts", + "frontend/src/api/beaconMalfunction.ts", + "frontend/src/api/constants.ts", + "frontend/src/api/controlObjective.ts", + "frontend/src/api/controlUnit.ts", + "frontend/src/api/faoAreas.ts", + "frontend/src/api/fleetSegment.ts", + "frontend/src/api/foreignFmc.ts", + "frontend/src/api/gear.ts", + "frontend/src/api/gearCode.ts", + "frontend/src/api/geoserver.js", + "frontend/src/api/healthcheck.ts", + "frontend/src/api/index.ts", + "frontend/src/api/infraction.ts", + "frontend/src/api/mission.ts", + "frontend/src/api/missionAction.ts", + "frontend/src/api/port.ts", + "frontend/src/api/reporting.ts", + "frontend/src/api/species.ts", + "frontend/src/api/specy.ts", + "frontend/src/api/utils.ts", + "frontend/src/api/vessel.ts", + "frontend/src/auth/getOIDCConfig.ts", + "frontend/src/auth/getOIDCUser.ts", + "frontend/src/constants/constants.js", + "frontend/src/constants/index.ts", + "frontend/src/context/AuthorizationContext.ts", + "frontend/src/context/NamespaceContext.ts", + "frontend/src/coordinates.test.ts", + "frontend/src/coordinates.ts", + "frontend/src/domain/actions.ts", + "frontend/src/domain/entities/alerts/constants.ts", + "frontend/src/domain/entities/alerts/index.ts", + "frontend/src/domain/entities/alerts/types.ts", + "frontend/src/domain/entities/authorization/constants.ts", + "frontend/src/domain/entities/authorization/types.ts", + "frontend/src/domain/entities/backoffice.js", + "frontend/src/domain/entities/beaconMalfunction/constants.tsx", + "frontend/src/domain/entities/beaconMalfunction/index.ts", + "frontend/src/domain/entities/beaconMalfunction/types.ts", + "frontend/src/domain/entities/controlUnits/utils.ts", + "frontend/src/domain/entities/controls.ts", + "frontend/src/domain/entities/errors.ts", + "frontend/src/domain/entities/estimatedPosition.js", + "frontend/src/domain/entities/global.js", + "frontend/src/domain/entities/interestPointLine.js", + "frontend/src/domain/entities/interestPoints.js", + "frontend/src/domain/entities/layers/__tests__/index.test.ts", + "frontend/src/domain/entities/layers/__tests__/mocks/index.ts", + "frontend/src/domain/entities/layers/constants.ts", + "frontend/src/domain/entities/layers/index.ts", + "frontend/src/domain/entities/layers/types.ts", + "frontend/src/domain/entities/logbook/__tests__/__mocks__/logbookMessages.ts", + "frontend/src/domain/entities/logbook/__tests__/index.test.ts", + "frontend/src/domain/entities/logbook/constants.ts", + "frontend/src/domain/entities/logbook/index.ts", + "frontend/src/domain/entities/logbook/species.ts", + "frontend/src/domain/entities/logbook/types.ts", + "frontend/src/domain/entities/map/constants.ts", + "frontend/src/domain/entities/mission/__tests__/getMissionStatus.test.ts", + "frontend/src/domain/entities/mission/filters/__tests__/seaFrontFilterFunction.test.ts", + "frontend/src/domain/entities/mission/filters/administrationFilterFunction.ts", + "frontend/src/domain/entities/mission/filters/seaFrontFilterFunction.ts", + "frontend/src/domain/entities/mission/filters/unitFilterFunction.ts", + "frontend/src/domain/entities/mission/hooks/useGetFilteredMissionsQuery.ts", + "frontend/src/domain/entities/mission/index.ts", + "frontend/src/domain/entities/mission/types.ts", + "frontend/src/domain/entities/mission/utils.ts", + "frontend/src/domain/entities/missionLabelLine.ts", + "frontend/src/domain/entities/regulation/__tests__/index.test.ts", + "frontend/src/domain/entities/regulation/__tests__/mocks/index.ts", + "frontend/src/domain/entities/regulation/index.ts", + "frontend/src/domain/entities/reporting.ts", + "frontend/src/domain/entities/seaFront/constants.ts", + "frontend/src/domain/entities/sideWindow/constants.ts", + "frontend/src/domain/entities/sideWindow/types.ts", + "frontend/src/domain/entities/vessel/label/index.ts", + "frontend/src/domain/entities/vessel/label/types.ts", + "frontend/src/domain/entities/vessel/riskFactor/index.ts", + "frontend/src/domain/entities/vessel/riskFactor/types.ts", + "frontend/src/domain/entities/vessel/track/__tests__/__mocks__/vesselTrack.ts", + "frontend/src/domain/entities/vessel/track/__tests__/index.test.ts", + "frontend/src/domain/entities/vessel/track/constants.ts", + "frontend/src/domain/entities/vessel/track/index.ts", + "frontend/src/domain/entities/vessel/types.ts", + "frontend/src/domain/entities/vessel/vessel.ts", + "frontend/src/domain/entities/vesselLabelLine.ts", + "frontend/src/domain/entities/vesselTrack.js", + "frontend/src/domain/entities/vesselTrackDepth.ts", + "frontend/src/domain/shared_slices/Alert.ts", + "frontend/src/domain/shared_slices/BeaconMalfunction.ts", + "frontend/src/domain/shared_slices/Control.ts", + "frontend/src/domain/shared_slices/DisplayedComponent.ts", + "frontend/src/domain/shared_slices/DisplayedError.ts", + "frontend/src/domain/shared_slices/Draw.ts", + "frontend/src/domain/shared_slices/FavoriteVessel.ts", + "frontend/src/domain/shared_slices/Filter.ts", + "frontend/src/domain/shared_slices/FishingActivities.ts", + "frontend/src/domain/shared_slices/FleetSegment.ts", + "frontend/src/domain/shared_slices/Gear.ts", + "frontend/src/domain/shared_slices/Global.ts", + "frontend/src/domain/shared_slices/Infraction.ts", + "frontend/src/domain/shared_slices/InterestPoint.ts", + "frontend/src/domain/shared_slices/Layer.ts", + "frontend/src/domain/shared_slices/Map.ts", + "frontend/src/domain/shared_slices/Measurement.ts", + "frontend/src/domain/shared_slices/Mission.ts", + "frontend/src/domain/shared_slices/Regulatory.ts", + "frontend/src/domain/shared_slices/Reporting.ts", + "frontend/src/domain/shared_slices/SideWindow.ts", + "frontend/src/domain/shared_slices/Species.ts", + "frontend/src/domain/shared_slices/Vessel.ts", + "frontend/src/domain/types/ForeignFmc.ts", + "frontend/src/domain/types/Gear.ts", + "frontend/src/domain/types/GeoJSON.ts", + "frontend/src/domain/types/controlObjective.ts", + "frontend/src/domain/types/controlResource.ts", + "frontend/src/domain/types/controlUnit.ts", + "frontend/src/domain/types/env.ts", + "frontend/src/domain/types/filter.ts", + "frontend/src/domain/types/fishingActivities.ts", + "frontend/src/domain/types/fleetSegment.ts", + "frontend/src/domain/types/geoserver.ts", + "frontend/src/domain/types/healthcheck.ts", + "frontend/src/domain/types/interestPoint.ts", + "frontend/src/domain/types/layer.ts", + "frontend/src/domain/types/map.ts", + "frontend/src/domain/types/missionAction.ts", + "frontend/src/domain/types/port.ts", + "frontend/src/domain/types/regulation.ts", + "frontend/src/domain/types/reporting.ts", + "frontend/src/domain/types/specy.ts", + "frontend/src/domain/use_cases/alert/getOperationalAlerts.ts", + "frontend/src/domain/use_cases/alert/getSilencedAlerts.ts", + "frontend/src/domain/use_cases/alert/reactivateSilencedAlert.ts", + "frontend/src/domain/use_cases/alert/silenceAlert.ts", + "frontend/src/domain/use_cases/alert/validateAlert.ts", + "frontend/src/domain/use_cases/authorization/getCurrentUserAuthorization.ts", + "frontend/src/domain/use_cases/beaconMalfunction/archiveBeaconMalfunctions.ts", + "frontend/src/domain/use_cases/beaconMalfunction/getAllBeaconMalfunctions.js", + "frontend/src/domain/use_cases/beaconMalfunction/getVesselBeaconMalfunctions.ts", + "frontend/src/domain/use_cases/beaconMalfunction/openBeaconMalfunction.js", + "frontend/src/domain/use_cases/beaconMalfunction/openBeaconMalfunctionInKanban.ts", + "frontend/src/domain/use_cases/beaconMalfunction/saveBeaconMalfunctionCommentFromKanban.js", + "frontend/src/domain/use_cases/beaconMalfunction/sendNotification.ts", + "frontend/src/domain/use_cases/beaconMalfunction/updateBeaconMalfunctionFromKanban.js", + "frontend/src/domain/use_cases/controlObjective/addControlObjective.ts", + "frontend/src/domain/use_cases/controlObjective/addControlObjectiveYear.js", + "frontend/src/domain/use_cases/controlObjective/deleteControlObjective.js", + "frontend/src/domain/use_cases/controlObjective/updateControlObjective.js", + "frontend/src/domain/use_cases/draw/addFeatureToDrawedFeature.ts", + "frontend/src/domain/use_cases/draw/eraseDrawedGeometries.ts", + "frontend/src/domain/use_cases/draw/setGeometry.ts", + "frontend/src/domain/use_cases/error/displayOrLogError.ts", + "frontend/src/domain/use_cases/error/retry.ts", + "frontend/src/domain/use_cases/faoAreas/getFAOAreas.js", + "frontend/src/domain/use_cases/fleetSegment/addFleetSegmentYear.ts", + "frontend/src/domain/use_cases/fleetSegment/createFleetSegment.ts", + "frontend/src/domain/use_cases/fleetSegment/deleteFleetSegment.ts", + "frontend/src/domain/use_cases/fleetSegment/getFleetSegmentsYearEntries.ts", + "frontend/src/domain/use_cases/fleetSegment/updateFleetSegment.ts", + "frontend/src/domain/use_cases/gearCode/getAllGearCodes.js", + "frontend/src/domain/use_cases/healthcheck/getHealthcheck.js", + "frontend/src/domain/use_cases/infraction/getFishingInfractions.ts", + "frontend/src/domain/use_cases/interestPoint/saveInterestPointFeature.js", + "frontend/src/domain/use_cases/layer/administrative/getAdministrativeZoneGeometry.js", + "frontend/src/domain/use_cases/layer/administrative/getAdministrativeZones.ts", + "frontend/src/domain/use_cases/layer/administrative/getZonesAndSubZonesPromises.js", + "frontend/src/domain/use_cases/layer/administrative/showAdministrativeZone.ts", + "frontend/src/domain/use_cases/layer/administrative/utils.ts", + "frontend/src/domain/use_cases/layer/hideLayer.js", + "frontend/src/domain/use_cases/layer/regulation/__tests__/__mocks__/regulatoryZones.ts", + "frontend/src/domain/use_cases/layer/regulation/__tests__/searchRegulatoryLayers.test.ts", + "frontend/src/domain/use_cases/layer/regulation/closeRegulatoryZoneMetadata.ts", + "frontend/src/domain/use_cases/layer/regulation/createOrUpdateRegulation.js", + "frontend/src/domain/use_cases/layer/regulation/getAllRegulatoryLayers.js", + "frontend/src/domain/use_cases/layer/regulation/getAllRegulatoryLayersByRegTerritory.js", + "frontend/src/domain/use_cases/layer/regulation/getGeometryWithoutRegulationReference.js", + "frontend/src/domain/use_cases/layer/regulation/getRegulatoryLayersToAdd.ts", + "frontend/src/domain/use_cases/layer/regulation/removeRegulatoryZoneFromMySelection.js", + "frontend/src/domain/use_cases/layer/regulation/resetRegulation.js", + "frontend/src/domain/use_cases/layer/regulation/searchRegulatoryLayers.ts", + "frontend/src/domain/use_cases/layer/regulation/showRegulationToEdit.js", + "frontend/src/domain/use_cases/layer/regulation/showRegulatoryTopic.ts", + "frontend/src/domain/use_cases/layer/regulation/showRegulatoryZone.js", + "frontend/src/domain/use_cases/layer/regulation/showRegulatoryZoneMetadata.ts", + "frontend/src/domain/use_cases/layer/regulation/updateRegulation.js", + "frontend/src/domain/use_cases/layer/regulation/updateTopicForAllZones.js", + "frontend/src/domain/use_cases/layer/zoomInLayer.js", + "frontend/src/domain/use_cases/map/clickOnMapFeature.ts", + "frontend/src/domain/use_cases/map/fitMultiPolygonToExtent.ts", + "frontend/src/domain/use_cases/map/getCoordinatesExtent.ts", + "frontend/src/domain/use_cases/measurement/saveMeasurement.js", + "frontend/src/domain/use_cases/mission/addControlCoordinates.ts", + "frontend/src/domain/use_cases/mission/addMissionZone.ts", + "frontend/src/domain/use_cases/mission/closeDraw.ts", + "frontend/src/domain/use_cases/mission/getLastControlCircleGeometry.ts", + "frontend/src/domain/use_cases/mission/getMission.ts", + "frontend/src/domain/use_cases/mission/getVesselControls.ts", + "frontend/src/domain/use_cases/mission/index.ts", + "frontend/src/domain/use_cases/mission/validateMissionZone.ts", + "frontend/src/domain/use_cases/reporting/addReporting.ts", + "frontend/src/domain/use_cases/reporting/archiveReporting.js", + "frontend/src/domain/use_cases/reporting/archiveReportings.js", + "frontend/src/domain/use_cases/reporting/deleteReporting.ts", + "frontend/src/domain/use_cases/reporting/deleteReportings.js", + "frontend/src/domain/use_cases/reporting/getAllCurrentReportings.ts", + "frontend/src/domain/use_cases/reporting/updateReporting.ts", + "frontend/src/domain/use_cases/sideWindow/index.ts", + "frontend/src/domain/use_cases/sideWindow/openPath.ts", + "frontend/src/domain/use_cases/species/getAllSpecies.js", + "frontend/src/domain/use_cases/species/getUniqueSpeciesAndDistricts.js", + "frontend/src/domain/use_cases/vessel/addVesselListFilterZone.ts", + "frontend/src/domain/use_cases/vessel/applyFilterAndSetVessels.ts", + "frontend/src/domain/use_cases/vessel/getFilteredVessels.ts", + "frontend/src/domain/use_cases/vessel/getFleetSegments.ts", + "frontend/src/domain/use_cases/vessel/getVesselLogbook.ts", + "frontend/src/domain/use_cases/vessel/getVesselReportings.ts", + "frontend/src/domain/use_cases/vessel/hideVesselTrack.ts", + "frontend/src/domain/use_cases/vessel/navigateToFishingActivity.js", + "frontend/src/domain/use_cases/vessel/searchVessels.ts", + "frontend/src/domain/use_cases/vessel/showVessel.ts", + "frontend/src/domain/use_cases/vessel/showVesselFromBeaconMalfunctionsKanban.js", + "frontend/src/domain/use_cases/vessel/showVesselTrack.ts", + "frontend/src/domain/use_cases/vessel/showVesselsLastPosition.ts", + "frontend/src/domain/use_cases/vessel/unselectVessel.ts", + "frontend/src/domain/use_cases/vessel/updateDefaultVesselTrackDepth.ts", + "frontend/src/domain/use_cases/vessel/updateSelectedVesselTrackRequest.ts", + "frontend/src/domain/use_cases/vessel/updateVesselTracks.js", + "frontend/src/errors/NoControlsFoundError.js", + "frontend/src/errors/NoDEPFoundError.js", + "frontend/src/errors/NoLogbookMessagesFoundError.js", + "frontend/src/errors/NoPositionsFoundError.js", + "frontend/src/errors/NoVesselsInFilterError.js", + "frontend/src/features/Backoffice/ControlObjectiveList/SeaFrontControlObjectives.tsx", + "frontend/src/features/Backoffice/ControlObjectiveList/index.tsx", + "frontend/src/features/Backoffice/SectionTitle.js", + "frontend/src/features/Backoffice/constants.js", + "frontend/src/features/Backoffice/edit_regulation/AuthorizedRadioButtonGroup.js", + "frontend/src/features/Backoffice/edit_regulation/ConfirmRegulationModal.js", + "frontend/src/features/Backoffice/edit_regulation/EditRegulation.tsx", + "frontend/src/features/Backoffice/edit_regulation/InfoBox.js", + "frontend/src/features/Backoffice/edit_regulation/InfoPoint.js", + "frontend/src/features/Backoffice/edit_regulation/Tag.js", + "frontend/src/features/Backoffice/edit_regulation/custom_form/CustomDatePicker.js", + "frontend/src/features/Backoffice/edit_regulation/custom_form/CustomSelectComponent.js", + "frontend/src/features/Backoffice/edit_regulation/custom_form/MenuItem.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/Always.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/DateRange.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/DayPicker.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/DayTimeCheckbox.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodAnnualRecurrence.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodDate.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodDateRanges.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodDates.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodForm.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodSection.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/FishingPeriodTimeSection.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/HolidayCheckbox.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/TimeInterval.js", + "frontend/src/features/Backoffice/edit_regulation/fishing_period/WeekDays.js", + "frontend/src/features/Backoffice/edit_regulation/gear_regulation/GearRegulation.js", + "frontend/src/features/Backoffice/edit_regulation/gear_regulation/RegulatedGear.js", + "frontend/src/features/Backoffice/edit_regulation/gear_regulation/RegulatedGears.js", + "frontend/src/features/Backoffice/edit_regulation/identification/CreateRegulationTopicForm.js", + "frontend/src/features/Backoffice/edit_regulation/identification/RegulationGeometryLine.js", + "frontend/src/features/Backoffice/edit_regulation/identification/RegulationLawTypeLine.js", + "frontend/src/features/Backoffice/edit_regulation/identification/RegulationLayerZoneLine.js", + "frontend/src/features/Backoffice/edit_regulation/identification/RegulationRegionLine.js", + "frontend/src/features/Backoffice/edit_regulation/identification/RegulationTopicLine.js", + "frontend/src/features/Backoffice/edit_regulation/index.js", + "frontend/src/features/Backoffice/edit_regulation/regulatory_text/RegulatoryText.js", + "frontend/src/features/Backoffice/edit_regulation/regulatory_text/RegulatoryTextSection.js", + "frontend/src/features/Backoffice/edit_regulation/regulatory_text/RemoveRegulationModal.js", + "frontend/src/features/Backoffice/edit_regulation/species_regulation/RegulatedSpecies.js", + "frontend/src/features/Backoffice/edit_regulation/species_regulation/SpeciesRegulation.js", + "frontend/src/features/Backoffice/fleet_segments/FleetSegments.tsx", + "frontend/src/features/Backoffice/fleet_segments/FleetSegmentsTable.tsx", + "frontend/src/features/Backoffice/fleet_segments/NewFleetSegmentModal.tsx", + "frontend/src/features/Backoffice/index.tsx", + "frontend/src/features/Backoffice/list_regulation/LawType.js", + "frontend/src/features/Backoffice/list_regulation/RegulatoryTopicInput.js", + "frontend/src/features/Backoffice/list_regulation/SearchRegulations.tsx", + "frontend/src/features/Backoffice/menu/Menu.tsx", + "frontend/src/features/Backoffice/slice.ts", + "frontend/src/features/Backoffice/tableCells.js", + "frontend/src/features/Healthcheck/index.tsx", + "frontend/src/features/MainWindow.tsx", + "frontend/src/features/MapButtons/AlertsMapButton.tsx", + "frontend/src/features/MapButtons/BeaconMalfunctionsMapButton.tsx", + "frontend/src/features/MapButtons/FavoriteVessels/FavoriteVessel.tsx", + "frontend/src/features/MapButtons/FavoriteVessels/index.tsx", + "frontend/src/features/MapButtons/InterestPoints/EditInterestPoint.tsx", + "frontend/src/features/MapButtons/InterestPoints/index.tsx", + "frontend/src/features/MapButtons/LayersSidebar/AdministrativeZones/AdministrativeZone.tsx", + "frontend/src/features/MapButtons/LayersSidebar/AdministrativeZones/AdministrativeZonesGroup.tsx", + "frontend/src/features/MapButtons/LayersSidebar/AdministrativeZones/index.tsx", + "frontend/src/features/MapButtons/LayersSidebar/BaseMaps/BaseMap.tsx", + "frontend/src/features/MapButtons/LayersSidebar/BaseMaps/index.tsx", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/RegulatoryTopic.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/RegulatoryZone.tsx", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/RegulatoryZoneMetadata.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/index.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/CodeAndName.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/OutdatedRegulatoryReferences.tsx", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/RegulatoryMetadata.style.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/fishingPeriod/index.tsx", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/gearRegulation/GearRegulationDisplayed.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/gearRegulation/GearsOrGearCategories.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/gearRegulation/RegulatedGears.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/identification/IdentificationDisplayed.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/otherInfo/OtherInfoDisplayed.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/regulatoryReferences/RegulatoryReferencesDisplayed.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/speciesRegulation/RegulatedSpecies.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/metadata/speciesRegulation/SpeciesRegulationDisplayed.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearch.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchInput.tsx", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchResultLawType.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchResultList.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchResultTopic.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchResultZone.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/RegulatoryLayerSearchResultZones.js", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/constants.ts", + "frontend/src/features/MapButtons/LayersSidebar/RegulatoryZones/search/slice.ts", + "frontend/src/features/MapButtons/LayersSidebar/index.tsx", + "frontend/src/features/MapButtons/Measurements/CustomCircleRange.tsx", + "frontend/src/features/MapButtons/Measurements/index.tsx", + "frontend/src/features/MapButtons/Missions/index.tsx", + "frontend/src/features/MapButtons/VesselFilters/Filter.js", + "frontend/src/features/MapButtons/VesselFilters/FilterParameters.js", + "frontend/src/features/MapButtons/VesselFilters/FilterTag.js", + "frontend/src/features/MapButtons/VesselFilters/Filters.js", + "frontend/src/features/MapButtons/VesselFilters/SaveVesselFiltersModal.js", + "frontend/src/features/MapButtons/VesselFilters/TagIconType.js", + "frontend/src/features/MapButtons/VesselFilters/TagList.js", + "frontend/src/features/MapButtons/VesselFilters/index.tsx", + "frontend/src/features/MapButtons/VesselLabels/EditVesselLabels.js", + "frontend/src/features/MapButtons/VesselLabels/VesselLabelSelection.tsx", + "frontend/src/features/MapButtons/VesselLabels/index.tsx", + "frontend/src/features/MapButtons/VesselVisibility/EditVesselVisibility.tsx", + "frontend/src/features/MapButtons/VesselVisibility/LastPositionsSlider.tsx", + "frontend/src/features/MapButtons/VesselVisibility/ShowVesselEstimatedPositions.js", + "frontend/src/features/MapButtons/VesselVisibility/TrackDepthRadio.js", + "frontend/src/features/MapButtons/VesselVisibility/index.tsx", + "frontend/src/features/MapButtons/index.tsx", + "frontend/src/features/MapButtons/shared/MapToolBox.tsx", + "frontend/src/features/MapButtons/shared/MapToolButton.tsx", + "frontend/src/features/MapButtons/shared/RightMenuOnHoverArea.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/EditReporting.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/PendingAlertRow.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/PendingAlertsList.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/ReportingList/constants.ts", + "frontend/src/features/SideWindow/AlertListAndReportingList/ReportingList/index.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/ReportingList/utils.ts", + "frontend/src/features/SideWindow/AlertListAndReportingList/SilenceAlertMenu.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/SilencedAlertsList.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/constants.ts", + "frontend/src/features/SideWindow/AlertListAndReportingList/index.tsx", + "frontend/src/features/SideWindow/AlertListAndReportingList/utils.ts", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionCard.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionDetails.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionDetailsFollowUp.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionDetailsFollowUpItem.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionDetailsFollowUpRow.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/BeaconMalfunctionsDetailsFollowUpNotification.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/Draggable.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/Droppable.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/SendNotification.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/StageColumn.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/StageColumnHeader.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/VesselStatusSelect.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/VesselStatusSelectValue.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/beaconMalfunctions.tsx", + "frontend/src/features/SideWindow/BeaconMalfunctionBoard/index.tsx", + "frontend/src/features/SideWindow/Menu/index.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/AirControlForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/AirSurveillanceForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/LandControlForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/ObservationForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/SeaControlForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/index.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/schemas.ts", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/ControlQualityField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FleetSegmentsField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikCoordinatesPicker.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikMultiInfractionPicker/Infraction.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikMultiInfractionPicker/InfractionForm.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikMultiInfractionPicker/index.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikPortSelect.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/FormikRevalidationEffect.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/GearsField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/LicencesAndLogbookField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/SpeciesField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/VesselField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/VesselFleetSegmentsField.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/constants.ts", + "frontend/src/features/SideWindow/MissionForm/ActionForm/shared/utils.ts", + "frontend/src/features/SideWindow/MissionForm/ActionForm/utils.ts", + "frontend/src/features/SideWindow/MissionForm/ActionList/Item.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionList/__tests__/formatDateLabel.test.ts", + "frontend/src/features/SideWindow/MissionForm/ActionList/index.tsx", + "frontend/src/features/SideWindow/MissionForm/ActionList/utils.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/FormikDoubleDatePicker.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/FormikLocationPicker.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/FormikMultiControlUnitPicker/ControlUnitSelect.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/FormikMultiControlUnitPicker/index.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/FormikMultiControlUnitPicker/utils.ts", + "frontend/src/features/SideWindow/MissionForm/MainForm/constants.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/index.tsx", + "frontend/src/features/SideWindow/MissionForm/MainForm/schemas.ts", + "frontend/src/features/SideWindow/MissionForm/constants.tsx", + "frontend/src/features/SideWindow/MissionForm/index.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/DeletionConfirmationDialog.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/DraftCancellationConfirmationDialog.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FieldGroup.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FieldsetGroup.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FieldsetGroupSeparator.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FormBody.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FormHead.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/FormikIsValidEffect.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/TitleSourceTag.tsx", + "frontend/src/features/SideWindow/MissionForm/shared/TitleStatusTag.tsx", + "frontend/src/features/SideWindow/MissionForm/types.ts", + "frontend/src/features/SideWindow/MissionForm/utils.tsx", + "frontend/src/features/SideWindow/MissionList/FilterBar.tsx", + "frontend/src/features/SideWindow/MissionList/constants.ts", + "frontend/src/features/SideWindow/MissionList/index.tsx", + "frontend/src/features/SideWindow/MissionList/types.ts", + "frontend/src/features/SideWindow/MissionList/utils.tsx", + "frontend/src/features/SideWindow/SideWindowLauncher.tsx", + "frontend/src/features/SideWindow/SideWindowSubMenu.tsx", + "frontend/src/features/SideWindow/SideWindowSubMenuLink.tsx", + "frontend/src/features/SideWindow/SubMenu/Item.tsx", + "frontend/src/features/SideWindow/SubMenu/index.tsx", + "frontend/src/features/SideWindow/constants.ts", + "frontend/src/features/SideWindow/index.tsx", + "frontend/src/features/SideWindow/utils.ts", + "frontend/src/features/VesselList/DownloadVesselListModal.js", + "frontend/src/features/VesselList/VesselListFilters.tsx", + "frontend/src/features/VesselList/VesselListTable.tsx", + "frontend/src/features/VesselList/dataFormatting.js", + "frontend/src/features/VesselList/index.tsx", + "frontend/src/features/VesselList/slice.ts", + "frontend/src/features/VesselList/tableCells.tsx", + "frontend/src/features/VesselList/tableSort.ts", + "frontend/src/features/VesselSearch/VesselSearchResult.tsx", + "frontend/src/features/VesselSearch/VesselSearchResultItem.tsx", + "frontend/src/features/VesselSearch/__tests__/mocks/index.ts", + "frontend/src/features/VesselSearch/__tests__/removeDuplicatedFoundVessels.test.ts", + "frontend/src/features/VesselSearch/constants.ts", + "frontend/src/features/VesselSearch/index.tsx", + "frontend/src/features/VesselSearch/utils.ts", + "frontend/src/features/VesselSidebar/Body.tsx", + "frontend/src/features/VesselSidebar/Controls/Control.tsx", + "frontend/src/features/VesselSidebar/Controls/Controls.style.tsx", + "frontend/src/features/VesselSidebar/Controls/ControlsSummary.tsx", + "frontend/src/features/VesselSidebar/Controls/GearOnboard.tsx", + "frontend/src/features/VesselSidebar/Controls/Infraction.tsx", + "frontend/src/features/VesselSidebar/Controls/InfractionsSummary.tsx", + "frontend/src/features/VesselSidebar/Controls/LastControl.tsx", + "frontend/src/features/VesselSidebar/Controls/LawReminders.tsx", + "frontend/src/features/VesselSidebar/Controls/YearControls.tsx", + "frontend/src/features/VesselSidebar/Controls/YearsToControlList.tsx", + "frontend/src/features/VesselSidebar/Controls/index.tsx", + "frontend/src/features/VesselSidebar/Identity/index.tsx", + "frontend/src/features/VesselSidebar/Reportings/Archived/YearReportings.tsx", + "frontend/src/features/VesselSidebar/Reportings/Archived/index.tsx", + "frontend/src/features/VesselSidebar/Reportings/Current/ConfirmDeletionModal.tsx", + "frontend/src/features/VesselSidebar/Reportings/Current/CreateOrEditReporting.tsx", + "frontend/src/features/VesselSidebar/Reportings/Current/ReportingForm.tsx", + "frontend/src/features/VesselSidebar/Reportings/Current/index.tsx", + "frontend/src/features/VesselSidebar/Reportings/Current/utils.ts", + "frontend/src/features/VesselSidebar/Reportings/ReportingCard.tsx", + "frontend/src/features/VesselSidebar/Reportings/index.tsx", + "frontend/src/features/VesselSidebar/Summary/index.tsx", + "frontend/src/features/VesselSidebar/Tabs.tsx", + "frontend/src/features/VesselSidebar/UpdatingVesselLoader.js", + "frontend/src/features/VesselSidebar/VesselSidebarHeader/VesselName.tsx", + "frontend/src/features/VesselSidebar/VesselSidebarHeader/index.tsx", + "frontend/src/features/VesselSidebar/actions/TrackRequest/DateRange.js", + "frontend/src/features/VesselSidebar/actions/TrackRequest/DateRangeRadio.tsx", + "frontend/src/features/VesselSidebar/actions/TrackRequest/ExportTrack.tsx", + "frontend/src/features/VesselSidebar/actions/TrackRequest/PositionsTable.tsx", + "frontend/src/features/VesselSidebar/actions/TrackRequest/constants.ts", + "frontend/src/features/VesselSidebar/actions/TrackRequest/index.tsx", + "frontend/src/features/VesselSidebar/actions/TrackRequest/utils.ts", + "frontend/src/features/VesselSidebar/actions/VesselSidebarActionButton.tsx", + "frontend/src/features/VesselSidebar/actions/animate_to_track/index.tsx", + "frontend/src/features/VesselSidebar/actions/hide_non_selected_vessels/index.tsx", + "frontend/src/features/VesselSidebar/actions/show_fishing_activities/index.tsx", + "frontend/src/features/VesselSidebar/beacon_malfunctions/VesselBeaconMalfunctions.tsx", + "frontend/src/features/VesselSidebar/beacon_malfunctions/details/BeaconMalfunctionDetails.tsx", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/BeaconMalfunctionBody.js", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/BeaconMalfunctionCard.tsx", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/BeaconMalfunctionsResume.js", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/BeaconMalfunctionsResumeAndHistory.js", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/CurrentBeaconMalfunction.js", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/CurrentBeaconMalfunctionBody.js", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/YearBeaconMalfunctions.tsx", + "frontend/src/features/VesselSidebar/beacon_malfunctions/resume/YearsToBeaconMalfunctionList.tsx", + "frontend/src/features/VesselSidebar/common_styles/YearList.style.tsx", + "frontend/src/features/VesselSidebar/common_styles/common.style.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/CustomDatesShowedInfo.js", + "frontend/src/features/VesselSidebar/fishing_activities/FishingActivitiesSummary.js", + "frontend/src/features/VesselSidebar/fishing_activities/VesselFishingActivities.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/COEMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/COXMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/CROMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/DEPMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/DISMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/EOFMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/FARMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/Haul.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/LANMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/LogbookMessage.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/LogbookMessageSpecy.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/LogbookMessages.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/NotImplementedMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/PNOMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/RTPMessage.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/SpecyCatchDetail.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages/index.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/DEPMessageResume.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/DISMessageResume.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/FARMessageResume.tsx", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/LANMessageResume.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/LogbookMessageResumeHeader.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/PNOMessageResume.js", + "frontend/src/features/VesselSidebar/fishing_activities/logbook_messages_resumes/SpeciesAndWeightChart.js", + "frontend/src/features/VesselSidebar/index.tsx", + "frontend/src/features/VesselSidebar/risk_factor/RiskFactorBox.tsx", + "frontend/src/features/VesselSidebar/risk_factor/RiskFactorCursor.js", + "frontend/src/features/VesselSidebar/risk_factor/RiskFactorExplanationModal.js", + "frontend/src/features/VesselSidebar/risk_factor/RiskFactorExplanationSchema.js", + "frontend/src/features/VesselSidebar/risk_factor/RiskFactorResume.js", + "frontend/src/features/VesselSidebar/risk_factor/details/DetectabilityRiskFactorDetails.js", + "frontend/src/features/VesselSidebar/risk_factor/details/ImpactRiskFactorDetails.js", + "frontend/src/features/VesselSidebar/risk_factor/details/ProbabilityRiskFactorDetails.tsx", + "frontend/src/features/VesselSidebar/warnings/AlertWarning.tsx", + "frontend/src/features/VesselSidebar/warnings/BeaconMalfunctionWarning.tsx", + "frontend/src/features/commonComponents/ErrorToastNotification.tsx", + "frontend/src/features/commonComponents/MapPropertyTrigger.tsx", + "frontend/src/features/commonComponents/StyledModalHeader.js", + "frontend/src/features/commonStyles/Backoffice.style.js", + "frontend/src/features/commonStyles/Buttons.style.js", + "frontend/src/features/commonStyles/Circle.style.ts", + "frontend/src/features/commonStyles/FishingPeriod.style.js", + "frontend/src/features/commonStyles/Input.style.js", + "frontend/src/features/commonStyles/MapButton.style.ts", + "frontend/src/features/commonStyles/MapComponent.style.tsx", + "frontend/src/features/commonStyles/Text.style.js", + "frontend/src/features/commonStyles/icons/ChevronIcon.style.ts", + "frontend/src/features/commonStyles/icons/CloseIcon.style.js", + "frontend/src/features/commonStyles/icons/EditIcon.style.js", + "frontend/src/features/commonStyles/icons/HideIcon.style.js", + "frontend/src/features/commonStyles/icons/REGPaperIcon.style.js", + "frontend/src/features/commonStyles/icons/ShowIcon.style.js", + "frontend/src/features/commonStyles/icons/VesselListSVG.js", + "frontend/src/features/coordinates/DDCoordinatesInput.tsx", + "frontend/src/features/coordinates/DMDCoordinatesInput.tsx", + "frontend/src/features/coordinates/DMSCoordinatesInput.tsx", + "frontend/src/features/coordinates/SetCoordinates.tsx", + "frontend/src/features/fleet_segments/FleetSegments.js", + "frontend/src/features/icons/flags.js", + "frontend/src/features/map/BaseMap.tsx", + "frontend/src/features/map/Map.js", + "frontend/src/features/map/MapHistory.js", + "frontend/src/features/map/MapMenu.js", + "frontend/src/features/map/MapVesselClickAndAnimationHandler.tsx", + "frontend/src/features/map/controls/LayerDetailsBox.tsx", + "frontend/src/features/map/controls/MapAttributionsBox.js", + "frontend/src/features/map/controls/MapCoordinatesBox.js", + "frontend/src/features/map/draw/DrawModal.tsx", + "frontend/src/features/map/layers/AdministrativeLayers.tsx", + "frontend/src/features/map/layers/BaseLayer.tsx", + "frontend/src/features/map/layers/DrawLayer.tsx", + "frontend/src/features/map/layers/FilterLayer.js", + "frontend/src/features/map/layers/InterestPointLayer.js", + "frontend/src/features/map/layers/MeasurementLayer.js", + "frontend/src/features/map/layers/Mission/HoveredMissionLayer.tsx", + "frontend/src/features/map/layers/Mission/MissionLayer/index.tsx", + "frontend/src/features/map/layers/Mission/MissionLayer/styles.ts", + "frontend/src/features/map/layers/Mission/MissionsLabelsLayer/MissionsLabelsLayer.tsx", + "frontend/src/features/map/layers/Mission/MissionsLabelsLayer/utils.ts", + "frontend/src/features/map/layers/Mission/SelectedMissionActionsLayer/index.tsx", + "frontend/src/features/map/layers/Mission/SelectedMissionActionsLayer/styles.ts", + "frontend/src/features/map/layers/Mission/SelectedMissionLayer.tsx", + "frontend/src/features/map/layers/Mission/constants.ts", + "frontend/src/features/map/layers/RegulatoryLayerSearch.tsx", + "frontend/src/features/map/layers/RegulatoryLayers.tsx", + "frontend/src/features/map/layers/RegulatoryPreviewLayer.tsx", + "frontend/src/features/map/layers/Vessel/VesselAlertAndBeaconMalfunctionLayer.js", + "frontend/src/features/map/layers/Vessel/VesselAlertLayer.js", + "frontend/src/features/map/layers/Vessel/VesselBeaconMalfunctionLayer.js", + "frontend/src/features/map/layers/Vessel/VesselEstimatedPositionLayer.js", + "frontend/src/features/map/layers/Vessel/VesselInfractionSuspicionLayer.js", + "frontend/src/features/map/layers/Vessel/VesselSelectedLayer.js", + "frontend/src/features/map/layers/Vessel/VesselsLabelsLayer.tsx", + "frontend/src/features/map/layers/Vessel/VesselsLayer/index.tsx", + "frontend/src/features/map/layers/Vessel/VesselsTracksLayer.tsx", + "frontend/src/features/map/layers/Vessel/style.ts", + "frontend/src/features/map/layers/hooks/useGetLineFeatureIdToCoordinates.ts", + "frontend/src/features/map/layers/hooks/useIsZooming.ts", + "frontend/src/features/map/layers/styles/administrativeLayer.style.ts", + "frontend/src/features/map/layers/styles/dottedLayer.style.ts", + "frontend/src/features/map/layers/styles/draw.style.ts", + "frontend/src/features/map/layers/styles/interestPoint.style.js", + "frontend/src/features/map/layers/styles/isForbiddenPeriod.test.ts", + "frontend/src/features/map/layers/styles/isForbiddenPeriod.ts", + "frontend/src/features/map/layers/styles/labelLine.style.ts", + "frontend/src/features/map/layers/styles/measurement.style.js", + "frontend/src/features/map/layers/styles/regulatoryLayer.style.ts", + "frontend/src/features/map/layers/styles/regulatoryPreview.style.js", + "frontend/src/features/map/layers/styles/utils.test.ts", + "frontend/src/features/map/layers/styles/utils.ts", + "frontend/src/features/map/layers/styles/utils/webgl.ts", + "frontend/src/features/map/layers/styles/vesselEstimatedPosition.style.js", + "frontend/src/features/map/layers/styles/vesselTrack.style.js", + "frontend/src/features/map/layers/utils.ts", + "frontend/src/features/map/overlays/CloseVesselTrackOverlay.js", + "frontend/src/features/map/overlays/ControlOverlay/ControlDetails.tsx", + "frontend/src/features/map/overlays/ControlOverlay/constants.ts", + "frontend/src/features/map/overlays/ControlOverlay/index.tsx", + "frontend/src/features/map/overlays/FishingActivityOverlay.js", + "frontend/src/features/map/overlays/InterestPointOverlay.tsx", + "frontend/src/features/map/overlays/MapMenuOverlay.js", + "frontend/src/features/map/overlays/MeasurementOverlay.js", + "frontend/src/features/map/overlays/MissionOverlay/MissionDetails.tsx", + "frontend/src/features/map/overlays/MissionOverlay/MissionStatusLabel.tsx", + "frontend/src/features/map/overlays/MissionOverlay/constants.ts", + "frontend/src/features/map/overlays/MissionOverlay/index.tsx", + "frontend/src/features/map/overlays/MissionUnitLabelOverlay/MissionUnitLabel.tsx", + "frontend/src/features/map/overlays/MissionUnitLabelOverlay/index.tsx", + "frontend/src/features/map/overlays/Overlay/index.ts", + "frontend/src/features/map/overlays/Overlay/types.ts", + "frontend/src/features/map/overlays/SelectedControlOverlay/index.tsx", + "frontend/src/features/map/overlays/SelectedMissionOverlay/index.tsx", + "frontend/src/features/map/overlays/TrackTypeOverlay/TrackTypeCard.tsx", + "frontend/src/features/map/overlays/TrackTypeOverlay/index.tsx", + "frontend/src/features/map/overlays/VesselCardOverlay/VesselCard.tsx", + "frontend/src/features/map/overlays/VesselCardOverlay/constants.ts", + "frontend/src/features/map/overlays/VesselCardOverlay/index.tsx", + "frontend/src/features/map/overlays/VesselEstimatedPositionOverlay/VesselEstimatedPositionCard.js", + "frontend/src/features/map/overlays/VesselEstimatedPositionOverlay/index.js", + "frontend/src/features/map/overlays/VesselLabelOverlay/VesselLabel.tsx", + "frontend/src/features/map/overlays/VesselLabelOverlay/index.tsx", + "frontend/src/features/map/overlays/VesselTrackOverlay/VesselTrackCard.js", + "frontend/src/features/map/overlays/VesselTrackOverlay/index.js", + "frontend/src/features/map/overlays/map_menu/TrackRangeModal.js", + "frontend/src/features/preview_filtered_vessels/PreviewFilteredVessels.js", + "frontend/src/hooks/authorization/useGetUserAuthorization.ts", + "frontend/src/hooks/authorization/useIsSuperUser.ts", + "frontend/src/hooks/fishingPeriod/usePopArrayInFishingPeriod.js", + "frontend/src/hooks/fishingPeriod/usePushArrayInFishingPeriod.js", + "frontend/src/hooks/fishingPeriod/useSetFishingPeriod.js", + "frontend/src/hooks/fishingPeriod/useUpdateArrayInFishingPeriod.js", + "frontend/src/hooks/useBackofficeAppDispatch.ts", + "frontend/src/hooks/useBackofficeAppSelector.ts", + "frontend/src/hooks/useClickOutside.js", + "frontend/src/hooks/useClickOutsideWhenOpened.js", + "frontend/src/hooks/useClickOutsideWhenOpenedAndExecute.ts", + "frontend/src/hooks/useClickOutsideWhenOpenedAndNotInSelector.js", + "frontend/src/hooks/useClickOutsideWhenOpenedWithinRef.js", + "frontend/src/hooks/useDeepCompareCallback.ts", + "frontend/src/hooks/useDeepCompareEffect.ts", + "frontend/src/hooks/useEscapeFromKeyboard.js", + "frontend/src/hooks/useEscapeFromKeyboardAndExecute.ts", + "frontend/src/hooks/useForceUpdate.ts", + "frontend/src/hooks/useListenForDrawing.ts", + "frontend/src/hooks/useListenForScroll.ts", + "frontend/src/hooks/useMainAppDispatch.ts", + "frontend/src/hooks/useMainAppSelector.ts", + "frontend/src/hooks/useMoveOverlayWhenDragging.js", + "frontend/src/hooks/useMoveOverlayWhenZooming.js", + "frontend/src/hooks/useSaveInLocalStorage.js", + "frontend/src/hooks/useTable/Table.tsx", + "frontend/src/hooks/useTable/TableBody.tsx", + "frontend/src/hooks/useTable/TableCell.tsx", + "frontend/src/hooks/useTable/TableHead.tsx", + "frontend/src/hooks/useTable/TableHeadNext.tsx", + "frontend/src/hooks/useTable/TableRow.tsx", + "frontend/src/hooks/useTable/__tests__/getArrayPathFromStringPath.test.ts", + "frontend/src/hooks/useTable/__tests__/normalizeSearchQuery.test.ts", + "frontend/src/hooks/useTable/__tests__/useTable.test.tsx", + "frontend/src/hooks/useTable/index.tsx", + "frontend/src/hooks/useTable/types.ts", + "frontend/src/hooks/useTable/utils.ts", + "frontend/src/hooks/useWindowResize.tsx", + "frontend/src/index.tsx", + "frontend/src/libs/ApiError.ts", + "frontend/src/libs/DisplayedError.ts", + "frontend/src/libs/FormError.ts", + "frontend/src/libs/FrontendError.ts", + "frontend/src/pages/BackofficePage.tsx", + "frontend/src/pages/HomePage.tsx", + "frontend/src/pages/LandingPage.tsx", + "frontend/src/pages/UnsupportedBrowserPage.tsx", + "frontend/src/react-app-env.d.ts", + "frontend/src/router.tsx", + "frontend/src/store/index.ts", + "frontend/src/store/reducers.ts", + "frontend/src/store/redux-persist.d.ts", + "frontend/src/types.test.ts", + "frontend/src/types.ts", + "frontend/src/ui/FrontendErrorBoundary.tsx", + "frontend/src/ui/LoadingSpinnerWall.tsx", + "frontend/src/ui/NoRsuiteOverrideWrapper.tsx", + "frontend/src/ui/Nouislider/index.tsx", + "frontend/src/ui/Nouislider/utils.ts", + "frontend/src/ui/card-table/CardTable.tsx", + "frontend/src/ui/card-table/CardTableBody.tsx", + "frontend/src/ui/card-table/CardTableColumnTitle.tsx", + "frontend/src/ui/card-table/CardTableFilters.tsx", + "frontend/src/ui/card-table/CardTableHeader.tsx", + "frontend/src/ui/card-table/CardTableRow.tsx", + "frontend/src/ui/card-table/EmptyCardTable.tsx", + "frontend/src/ui/card-table/FilterTableInput.tsx", + "frontend/src/ui/card-table/RowVerticalSeparator.tsx", + "frontend/src/ui/formiks/FormikFilterTagBar.tsx", + "frontend/src/ui/icons/constants.ts", + "frontend/src/ui/icons/index.tsx", + "frontend/src/ui/shared/icons/flags.js", + "frontend/src/ui/shared/locale_frFR.js", + "frontend/src/ui/shared/trigger-ci-test.js", + "frontend/src/ui/styled.d.ts", + "frontend/src/ui/theme.ts", + "frontend/src/utils.js", + "frontend/src/utils.test.ts", + "frontend/src/utils/__tests__/capitalizeFirstLetter.test.ts", + "frontend/src/utils/__tests__/cleanInputString.test.ts", + "frontend/src/utils/__tests__/deleteListItems.test.ts", + "frontend/src/utils/__tests__/downloadAsCsv.test.ts", + "frontend/src/utils/__tests__/getLocalstorageProperty.test.ts", + "frontend/src/utils/__tests__/getOptionsFromLabelledEnum.test.ts", + "frontend/src/utils/__tests__/getOptionsFromStrings.test.ts", + "frontend/src/utils/__tests__/includesSome.test.ts", + "frontend/src/utils/__tests__/isArray.test.ts", + "frontend/src/utils/__tests__/isNumeric.test.ts", + "frontend/src/utils/__tests__/isObject.test.ts", + "frontend/src/utils/__tests__/nullify.test.ts", + "frontend/src/utils/__tests__/pushToObjectAtIndex.ts", + "frontend/src/utils/__tests__/undefinedize.test.ts", + "frontend/src/utils/__tests__/updateListItemsProp.test.ts", + "frontend/src/utils/__tests__/validateNonEmptyFormValues.test.ts", + "frontend/src/utils/__tests__/validateRequiredFormValues.test.ts", + "frontend/src/utils/capitalizeFirstLetter.ts", + "frontend/src/utils/cleanInputString.ts", + "frontend/src/utils/deleteListItems.ts", + "frontend/src/utils/downloadAsCsv.ts", + "frontend/src/utils/getLocalstorageProperty.ts", + "frontend/src/utils/getOptionsFromLabelledEnum.ts", + "frontend/src/utils/getOptionsFromStrings.ts", + "frontend/src/utils/includesSome.ts", + "frontend/src/utils/isArray.ts", + "frontend/src/utils/isBrowserSupported.ts", + "frontend/src/utils/isNumeric.ts", + "frontend/src/utils/isObject.ts", + "frontend/src/utils/mapToProp.ts", + "frontend/src/utils/normalizeRtkBaseQuery.ts", + "frontend/src/utils/nullify.ts", + "frontend/src/utils/pluralize.ts", + "frontend/src/utils/pushToObjectAtIndex.ts", + "frontend/src/utils/sortByAscendingValue.ts", + "frontend/src/utils/stopMouseEventPropagation.ts", + "frontend/src/utils/undefinedize.ts", + "frontend/src/utils/updateListItemsProp.ts", + "frontend/src/utils/validateNonEmptyFormValues.ts", + "frontend/src/utils/validateRequiredFormValues.ts", + "frontend/src/workers/MonitorFishWebWorker.js", + "frontend/src/workers/MonitorFishWorker.js" +] \ No newline at end of file diff --git a/package.json b/package.json index 31a3a4d..f2836b4 100644 --- a/package.json +++ b/package.json @@ -11,11 +11,12 @@ "main": "./dist/extension.js", "scripts": { "build": "rollup -c", - "bundle": "(rm -Rf *.vsix || true) && vsce package --yarn", + "bundle": "yarn clean && yarn build && (rm -Rf *.vsix || true) && vsce package --yarn", "clean": "rm -Rf ./dist", "release": "semantic-release && vsce publish --yarn", - "test:unit": "jest --config ./config/jest.config.js", - "watch": "yarn clean && yarn build" + "test:lint": "eslint .", + "test:type": "tsc --noEmit", + "test:unit": "jest --config ./config/jest.config.js" }, "devDependencies": { "@ivangabriele/eslint-config-typescript-base": "7.1.1", @@ -47,6 +48,7 @@ "eslint-plugin-sort-destructure-keys": "1.5.0", "eslint-plugin-sort-keys-fix": "1.1.2", "eslint-plugin-typescript-sort-keys": "2.3.0", + "globby": "13.2.2", "jest": "29.6.1", "mocha": "10.2.0", "prettier": "2.8.8", @@ -70,11 +72,11 @@ "contributes": { "commands": [ { - "command": "extension.openai-forge.addOrRemoveCurrentDocument", + "command": "openai-forge.addOrRemoveCurrentDocument", "title": "OpenAI Forge: Add/Remove current document to/from the stack" }, { - "command": "extension.openai-forge.sendCurrentDocument", + "command": "openai-forge.sendCurrentDocument", "title": "OpenAI Forge: Send current document or documents stack" } ], @@ -90,14 +92,24 @@ }, "keybindings": [ { - "command": "extension.openai-forge.addOrRemoveCurrentDocument", + "command": "openai-forge.addOrRemoveCurrentDocument", "key": "alt+f a", "when": "editorTextFocus" }, { - "command": "extension.openai-forge.sendCurrentDocument", + "command": "openai-forge.addOrRemoveCurrentDocument", + "key": "alt+f alt+a", + "when": "editorTextFocus" + }, + { + "command": "openai-forge.sendCurrentDocument", "key": "alt+f s", "when": "editorTextFocus" + }, + { + "command": "openai-forge.sendCurrentDocument", + "key": "alt+f alt+s", + "when": "editorTextFocus" } ] }, diff --git a/src/commands/addOrRemoveCurrentDocument.ts b/src/commands/addOrRemoveCurrentDocument.ts index 3317222..1ce32ba 100644 --- a/src/commands/addOrRemoveCurrentDocument.ts +++ b/src/commands/addOrRemoveCurrentDocument.ts @@ -1,19 +1,26 @@ +import { DocumentInfo } from '../libs/DocumentInfo' import { stackManager } from '../libs/stackManager' -import { getCurrentDocumentInfo } from '../utils/getCurrentDocumentInfo' +import { getCurrentDocumentPath } from '../utils/getCurrentDocumentPath' import { updateStackStatusBarItem } from '../utils/updateStackStatusBarItem' -export function addOrRemoveCurrentDocument() { - const currentDocumentInfo = getCurrentDocumentInfo() +type AddOrRemoveCurrentDocumentArgs = { + absolutePath: string +} + +export function addOrRemoveCurrentDocument(args?: AddOrRemoveCurrentDocumentArgs) { + const currentDocumentAbsolutePath = args ? args.absolutePath : getCurrentDocumentPath() const isCurrentDocumentSelected = stackManager.documentInfos.some( - ({ absolutePath }) => absolutePath === currentDocumentInfo.absolutePath, + ({ absolutePath }) => absolutePath === currentDocumentAbsolutePath, ) if (!isCurrentDocumentSelected) { + const currentDocumentInfo = new DocumentInfo() + stackManager.documentInfos = [...stackManager.documentInfos, currentDocumentInfo] } else { stackManager.documentInfos = stackManager.documentInfos.filter( - ({ absolutePath }) => absolutePath !== currentDocumentInfo.absolutePath, + ({ absolutePath }) => absolutePath !== currentDocumentAbsolutePath, ) } diff --git a/src/commands/sendCurrentDocumentOrStack.ts b/src/commands/sendCurrentDocumentOrStack.ts index 1e6195f..7e1cd80 100644 --- a/src/commands/sendCurrentDocumentOrStack.ts +++ b/src/commands/sendCurrentDocumentOrStack.ts @@ -1,22 +1,26 @@ +import { workspace } from 'vscode' + +import { DocumentInfo } from '../libs/DocumentInfo' import { stackManager } from '../libs/stackManager' import { WebSocketDataAction, type WebSocketData } from '../types' import { formatPrompt } from '../utils/formatPrompt' -import { getCurrentDocumentInfo } from '../utils/getCurrentDocumentInfo' import { getCurrentWorkspaceInfo } from '../utils/getCurrentWorkspaceInfo' import type { WebSocket } from 'ws' -export function sendCurrentDocument(webSocket: WebSocket) { - const currentWorkspaceInfo = getCurrentWorkspaceInfo() +export async function sendCurrentDocument(webSocket: WebSocket) { + const excludeProjectInfo = workspace.getConfiguration('openai-forge').get('promt.excludeProjectInfo') + + const currentWorkspaceInfo = !excludeProjectInfo ? await getCurrentWorkspaceInfo() : undefined const currentOrStackDocumentInfos = stackManager.documentInfos.length ? stackManager.documentInfos - : [getCurrentDocumentInfo()] + : [new DocumentInfo()] - const promptMessage = formatPrompt(currentWorkspaceInfo, currentOrStackDocumentInfos) + const message = await formatPrompt(currentWorkspaceInfo, currentOrStackDocumentInfos) const webSocketData: WebSocketData = { action: WebSocketDataAction.ASK, - message: promptMessage, + message, } webSocket.send(JSON.stringify(webSocketData)) diff --git a/src/constants.ts b/src/constants.ts index d3f3eca..e579fd2 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,6 +1,7 @@ import { State } from './types' export const STATE_ICON: Record = { + [State.FAILED]: 'error', [State.RUNNING]: 'radio-tower', [State.STARTING]: 'gear-spin', [State.STOPPED]: 'circle-slash', @@ -8,6 +9,7 @@ export const STATE_ICON: Record = { } export const STATE_LABEL: Record = { + [State.FAILED]: 'Failed', [State.RUNNING]: '', [State.STARTING]: 'Starting...', [State.STOPPED]: 'Stopped', diff --git a/src/extension.ts b/src/extension.ts index 6d4c93d..408464a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -2,9 +2,10 @@ import { type ExtensionContext, workspace, commands } from 'vscode' import { addOrRemoveCurrentDocument } from './commands/addOrRemoveCurrentDocument' import { sendCurrentDocument } from './commands/sendCurrentDocumentOrStack' +import { server } from './libs/server' import { stateManager } from './libs/stateManager' +import { getCurrentWorkspaceInfo } from './utils/getCurrentWorkspaceInfo' import { handleError } from './utils/handleError' -import { startWebSocketServer } from './utils/startWebSocketServer' import { updateStackStatusBarItem } from './utils/updateStackStatusBarItem' import { updateStateStatusBarItem } from './utils/updateStateStatusBarItem' @@ -17,32 +18,39 @@ export async function activate(context: ExtensionContext) { return } - // ------------------------------------------------------------------------- - // Status Bar Items - - updateStateStatusBarItem() - updateStackStatusBarItem() - - // ------------------------------------------------------------------------- - // WebSocket Server - - startWebSocketServer() - // ------------------------------------------------------------------------- // Commands const addOrRemoveCurrentDocumentDisposable = commands.registerCommand( - 'extension.openai-forge.addOrRemoveCurrentDocument', + 'openai-forge.addOrRemoveCurrentDocument', addOrRemoveCurrentDocument, ) - const sendCurrentDocumentDisposable = commands.registerCommand('extension.openai-forge.sendCurrentDocument', () => { + const sendCurrentDocumentDisposable = commands.registerCommand('openai-forge.sendCurrentDocument', () => { stateManager.clients.forEach(sendCurrentDocument) }) context.subscriptions.push(addOrRemoveCurrentDocumentDisposable) context.subscriptions.push(sendCurrentDocumentDisposable) + + // ------------------------------------------------------------------------- + // Status Bar Items + + updateStateStatusBarItem() + updateStackStatusBarItem() + + // ------------------------------------------------------------------------- + // WebSocket Server + + server.start() + + const workspaceInfo = await getCurrentWorkspaceInfo() + + console.log(JSON.stringify(workspaceInfo, null, 2)) } catch (err) { handleError(err) + + server.stop() + updateStackStatusBarItem(true) } } diff --git a/src/libs/DocumentInfo.ts b/src/libs/DocumentInfo.ts new file mode 100644 index 0000000..d450375 --- /dev/null +++ b/src/libs/DocumentInfo.ts @@ -0,0 +1,41 @@ +import path from 'path' +import { Uri, window, workspace } from 'vscode' + +import { InternalError } from './InternalError' +import { UserError } from './UserError' +import { getWorkspaceRootPath } from '../utils/getWorkspaceRootPath' + +export class DocumentInfo { + #absolutePath: string + #relativePath: string + + constructor() { + const editor = window.activeTextEditor + if (!editor) { + throw new UserError('No active text editor.') + } + + const workspaceRootPath = getWorkspaceRootPath() + + this.#absolutePath = editor.document.uri.fsPath + this.#relativePath = path.relative(workspaceRootPath, this.#absolutePath) + } + + get absolutePath(): string { + return this.#absolutePath + } + + get relativePath(): string { + return this.#relativePath + } + + async getSource(): Promise { + try { + const textDocument = await workspace.openTextDocument(Uri.file(this.absolutePath)) + + return textDocument.getText() + } catch (err) { + throw new InternalError(`Error reading document: ${this.absolutePath}`, err) + } + } +} diff --git a/src/libs/server.ts b/src/libs/server.ts new file mode 100644 index 0000000..511d9a3 --- /dev/null +++ b/src/libs/server.ts @@ -0,0 +1,61 @@ +import { WebSocketServer } from 'ws' + +import { InternalError } from './InternalError' +import { stateManager } from './stateManager' +import { State } from '../types' +import { updateStateStatusBarItem } from '../utils/updateStateStatusBarItem' + +class Server { + #webSocketServer: WebSocketServer | undefined + + start() { + try { + if (this.#webSocketServer) { + return + } + + this.#webSocketServer = new WebSocketServer({ port: 4242 }) + + this.#webSocketServer.on('connection', webSocket => { + stateManager.clients.add(webSocket) + updateStateStatusBarItem() + + // webSocket.on('message', message => { + // console.debug(`New message received: ${message}.`) + // }) + + webSocket.on('close', () => { + stateManager.clients.delete(webSocket) + updateStateStatusBarItem() + }) + }) + + stateManager.state = State.RUNNING + updateStateStatusBarItem() + } catch (err) { + throw new InternalError('WebSocket server failed to start.', err) + } + } + + stop() { + try { + if (!this.#webSocketServer) { + return + } + + this.#webSocketServer.close(err => { + if (err) { + throw new InternalError('WebSocket server failed to stop.', err) + } + + this.#webSocketServer = undefined + stateManager.state = State.STOPPED + updateStateStatusBarItem() + }) + } catch (err) { + throw new InternalError('WebSocket server failed to stop.', err) + } + } +} + +export const server = new Server() diff --git a/src/libs/stackManager.ts b/src/libs/stackManager.ts index c2eeaa4..7747ec1 100644 --- a/src/libs/stackManager.ts +++ b/src/libs/stackManager.ts @@ -1,4 +1,4 @@ -import type { DocumentInfo } from '../types' +import type { DocumentInfo } from './DocumentInfo' class StackManager { #documentInfos: DocumentInfo[] = [] diff --git a/src/types.ts b/src/types.ts index c112ef2..3947cc2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,21 +1,28 @@ -export type DocumentInfo = { - absolutePath: string - relativePath: string - source: string -} - export enum ProjectFramework { + NEXT_JS = 'Next.js', REACT = 'React', TAURI = 'Tauri', } export enum ProjectLanguage { + C_SHARP = 'C#', + DART = 'Dart', + ELIXIR = 'Elixir', + GO = 'Go', + HASKELL = 'Haskell', + JAVA = 'Java', JAVASCRIPT = 'JavaScript', + KOTLIN = 'Kotlin', + PHP = 'PHP', + PYTHON = 'Python', + RUBY = 'Ruby', RUST = 'Rust', + SCALA = 'Scala', TYPESCRIPT = 'TypeScript', } export enum State { + 'FAILED' = 'FAILED', 'RUNNING' = 'RUNNING', 'STARTING' = 'STARTING', 'STOPPED' = 'STOPPED', @@ -23,11 +30,11 @@ export enum State { } export type WorkspaceInfo = { + frameworks: ProjectFramework[] languages: ProjectLanguage[] - mainFramework: ProjectFramework | undefined name: string rootPath: string - subFrameworks: ProjectFramework[] + sourceCodeDocumentsLength: number } export enum WebSocketDataAction { diff --git a/src/utils/__tests__/__snapshots__/formatPrompt.test.ts.snap b/src/utils/__tests__/__snapshots__/formatPrompt.test.ts.snap deleted file mode 100644 index fb2fea6..0000000 --- a/src/utils/__tests__/__snapshots__/formatPrompt.test.ts.snap +++ /dev/null @@ -1,18 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`utils/formatPrompt() should return a string 1`] = ` -"Project: -- Name: FooBar -- Framework: Tauri, React -- Languages: Rust, TypeScript - -src/index.tsx: -\`\`\` -Some TypeScript -\`\`\` - -src-tauri/src/main.rs: -\`\`\` -Some Rust -\`\`\`" -`; diff --git a/src/utils/__tests__/formatPrompt.test.ts b/src/utils/__tests__/formatPrompt.test.ts deleted file mode 100644 index 7124daa..0000000 --- a/src/utils/__tests__/formatPrompt.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { ProjectFramework, ProjectLanguage, type WorkspaceInfo, type DocumentInfo } from '../../types' -import { formatPrompt } from '../formatPrompt' - -describe('utils/formatPrompt()', () => { - it('should return a string', () => { - const project: WorkspaceInfo = { - name: 'FooBar', - languages: [ProjectLanguage.RUST, ProjectLanguage.TYPESCRIPT], - subFrameworks: [ProjectFramework.REACT], - mainFramework: ProjectFramework.TAURI, - source: '', - rootPath: '/home/user/acme/foobar', - } - - const documents: DocumentInfo[] = [ - { - absolutePath: '/home/user/acme/foobar', - relativePath: 'src/index.tsx', - source: 'Some TypeScript', - }, - { - absolutePath: '/home/user/acme/foobar', - relativePath: 'src-tauri/src/main.rs', - source: 'Some Rust', - }, - ] - - const result = formatPrompt(project, documents) - - expect(result).toMatchSnapshot() - }) -}) diff --git a/src/utils/formatPrompt.ts b/src/utils/formatPrompt.ts index ac83e35..75782b3 100644 --- a/src/utils/formatPrompt.ts +++ b/src/utils/formatPrompt.ts @@ -1,31 +1,36 @@ -import { workspace } from 'vscode' +import type { DocumentInfo } from '../libs/DocumentInfo' +import type { WorkspaceInfo } from '../types' -import type { DocumentInfo, WorkspaceInfo } from '../types' - -export function formatPrompt(workspaceInfo: WorkspaceInfo, documentInfos: DocumentInfo[]): string { - const excludeProjectInfo = workspace.getConfiguration('openai-forge').get('promt.excludeProjectInfo') +export async function formatPrompt( + workspaceInfo: WorkspaceInfo | undefined, + documentInfos: DocumentInfo[], +): Promise { + const documents = await Promise.all( + documentInfos.map(async documentInfo => ({ + relativePath: documentInfo.relativePath, + source: await documentInfo.getSource(), + })), + ) return ( - !excludeProjectInfo + workspaceInfo ? [ `Project:`, `- Name: ${workspaceInfo.name}`, - ...(workspaceInfo.mainFramework - ? [`- Framework: ${workspaceInfo.mainFramework}, ${workspaceInfo.subFrameworks.join(', ')}`] - : []), + ...(workspaceInfo.frameworks.length ? [`- Framework: ${workspaceInfo.frameworks.join(', ')}`] : []), `- Languages: ${workspaceInfo.languages.join(', ')}`, '', ] : [] ) .concat( - documentInfos.reduce( - (lines, documentInfo, index) => [ + documents.reduce( + (lines, document, index) => [ ...lines, ...(index > 0 ? [''] : []), - `${documentInfo.relativePath}:`, + `${document.relativePath}:`, '```', - documentInfo.source, + document.source, '```', ], [] as string[], diff --git a/src/utils/getCurrentDocumentInfo.ts b/src/utils/getCurrentDocumentInfo.ts deleted file mode 100644 index 0e6111d..0000000 --- a/src/utils/getCurrentDocumentInfo.ts +++ /dev/null @@ -1,26 +0,0 @@ -import path from 'path' -import { window } from 'vscode' - -import { getWorkspaceRootPath } from './getWorkspaceRootPath' -import { UserError } from '../libs/UserError' - -import type { DocumentInfo } from '../types' - -export function getCurrentDocumentInfo(): DocumentInfo { - const editor = window.activeTextEditor - if (!editor) { - throw new UserError('No active text editor.') - } - - const workspaceRootPath = getWorkspaceRootPath() - - const absolutePath = editor.document.uri.fsPath - const relativePath = path.relative(workspaceRootPath, absolutePath) - const source = editor.document.getText() - - return { - absolutePath, - relativePath, - source, - } -} diff --git a/src/utils/getCurrentDocumentPath.ts b/src/utils/getCurrentDocumentPath.ts new file mode 100644 index 0000000..5cdb4bb --- /dev/null +++ b/src/utils/getCurrentDocumentPath.ts @@ -0,0 +1,12 @@ +import { window } from 'vscode' + +import { UserError } from '../libs/UserError' + +export function getCurrentDocumentPath(): string { + const editor = window.activeTextEditor + if (!editor) { + throw new UserError('No active text editor.') + } + + return editor.document.uri.fsPath +} diff --git a/src/utils/getCurrentWorkspaceInfo.ts b/src/utils/getCurrentWorkspaceInfo.ts index d92a4e1..8957065 100644 --- a/src/utils/getCurrentWorkspaceInfo.ts +++ b/src/utils/getCurrentWorkspaceInfo.ts @@ -1,15 +1,39 @@ +import { getProjectFrameworks } from './getProjectFrameworks' +import { getProjectName } from './getProjectName' +import { getSourceCodeDocumentLanguagesStat } from './getSourceCodeDocumentLanguagesStat' +import { getSourceCodeDocumentMainLanguages } from './getSourceCodeDocumentMainLanguages' +import { getSourceCodeDocumentPaths } from './getSourceCodeDocumentPaths' import { getWorkspaceRootPath } from './getWorkspaceRootPath' +import { UserError } from '../libs/UserError' +import { type WorkspaceInfo } from '../types' -import type { WorkspaceInfo } from '../types' +let WORKSPACE_INFO: WorkspaceInfo | undefined -export function getCurrentWorkspaceInfo(): WorkspaceInfo { - const rootPath = getWorkspaceRootPath() +export async function getCurrentWorkspaceInfo(mustRefresh: boolean = false): Promise { + if (!WORKSPACE_INFO || WORKSPACE_INFO.sourceCodeDocumentsLength < 10 || mustRefresh) { + const rootPath = getWorkspaceRootPath() - return { - languages: [], - mainFramework: undefined, - name: '', - rootPath, - subFrameworks: [], + const name = getProjectName(rootPath) + + const sourceCodeDocumentPaths = await getSourceCodeDocumentPaths(rootPath) + const sourceCodeDocumentLanguageStats = getSourceCodeDocumentLanguagesStat(sourceCodeDocumentPaths) + const languages = getSourceCodeDocumentMainLanguages(sourceCodeDocumentLanguageStats) + if (!languages.length) { + throw new UserError("OpenAI Forge couldn't detect any of the supported languages for this workspace.") + } + + const frameworks = await getProjectFrameworks(rootPath) + + const sourceCodeDocumentsLength = sourceCodeDocumentPaths.length + + WORKSPACE_INFO = { + frameworks, + languages, + name, + rootPath, + sourceCodeDocumentsLength, + } } + + return WORKSPACE_INFO } diff --git a/src/utils/getProjectFrameworks.ts b/src/utils/getProjectFrameworks.ts new file mode 100644 index 0000000..b12ae40 --- /dev/null +++ b/src/utils/getProjectFrameworks.ts @@ -0,0 +1,29 @@ +import { promises as fs } from 'fs' +import { any, filter, keys } from 'ramda' + +import { ProjectFramework } from '../types' + +// Each criteria is a function that takes a list of paths and returns a boolean. +type ProjectFrameworkMatcher = (paths: string[]) => boolean + +const isReactProject: ProjectFrameworkMatcher = any(path => /.*\.(j|t)sx$/.test(path)) +const isNextProject: ProjectFrameworkMatcher = any(path => /.*(^|\/).next\/.*/.test(path)) +const isTauriProject: ProjectFrameworkMatcher = any(path => /.*(^|\/)src-tauri\/.*/.test(path)) + +// A map of ProjectFrameworks to their corresponding criteria. +const PROJECT_FRAMEWORK_MATCHER_MATCH: Record = { + [ProjectFramework.REACT]: isReactProject, + [ProjectFramework.NEXT_JS]: isNextProject, + [ProjectFramework.TAURI]: isTauriProject, +} + +export async function getProjectFrameworks(workspacePath: string): Promise { + const rootFiles = await fs.readdir(workspacePath) + + const projectFrameworks = filter( + (framework: ProjectFramework) => PROJECT_FRAMEWORK_MATCHER_MATCH[framework](rootFiles), + keys(PROJECT_FRAMEWORK_MATCHER_MATCH), + ) + + return projectFrameworks +} diff --git a/src/utils/getProjectName.ts b/src/utils/getProjectName.ts new file mode 100644 index 0000000..ab875f2 --- /dev/null +++ b/src/utils/getProjectName.ts @@ -0,0 +1,9 @@ +import path from 'path' + +export function getProjectName(workspacePath: string): string { + const rawName = path.basename(workspacePath) + const rawNameWords = rawName.split(/[-_]|(?=[A-Z])/) + const name = rawNameWords.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ') + + return name +} diff --git a/src/utils/getSourceCodeDocumentLanguagesStat.ts b/src/utils/getSourceCodeDocumentLanguagesStat.ts new file mode 100644 index 0000000..4b20c4c --- /dev/null +++ b/src/utils/getSourceCodeDocumentLanguagesStat.ts @@ -0,0 +1,40 @@ +import { basename, extname } from 'path' +import { countBy, identity, map, mapObjIndexed, sum } from 'ramda' + +import { PROJECT_LANGUAGE_TO_EXTENSIONS_MAP } from './getSourceCodeDocumentPaths' + +import type { ProjectLanguage } from '../types' + +export type SourceCodeDocumentLanguagesStat = { + count: Record + ratio: Record +} + +export function getSourceCodeDocumentLanguagesStat(sourceCodeDocumentPaths: string[]): SourceCodeDocumentLanguagesStat { + const sourceCodeDocumentExtensions: string[] = sourceCodeDocumentPaths.map(sourceCodeDocumentPath => + extname(basename(sourceCodeDocumentPath)) + // Remove the leading dot + .slice(1), + ) + + const sourceCodeDocumentExtensionsCount: Record = countBy(identity, sourceCodeDocumentExtensions) + + const sourceCodeDocumentLanguagesCount = mapObjIndexed((languageExtensions: string[]): number => { + const languageExtensionsCounts = sum( + map(extension => sourceCodeDocumentExtensionsCount[extension] || 0, languageExtensions), + ) + + return languageExtensionsCounts + }, PROJECT_LANGUAGE_TO_EXTENSIONS_MAP) + + const sourceCodeDocumentPathsLength = sourceCodeDocumentPaths.length + const sourceCodeDocumentLanguagesRatio = mapObjIndexed( + (languageCount: number): number => languageCount / sourceCodeDocumentPathsLength, + sourceCodeDocumentLanguagesCount, + ) + + return { + count: sourceCodeDocumentLanguagesCount, + ratio: sourceCodeDocumentLanguagesRatio, + } +} diff --git a/src/utils/getSourceCodeDocumentMainLanguages.ts b/src/utils/getSourceCodeDocumentMainLanguages.ts new file mode 100644 index 0000000..9c0bfd7 --- /dev/null +++ b/src/utils/getSourceCodeDocumentMainLanguages.ts @@ -0,0 +1,33 @@ +import { descend, filter, map, prop, sort, toPairs } from 'ramda' + +import { type SourceCodeDocumentLanguagesStat } from './getSourceCodeDocumentLanguagesStat' + +import type { ProjectLanguage } from '../types' + +const SIGNIFICANT_RATIO = 0.05 +const SIGNIFICANT_COUNT = 100 + +export function getSourceCodeDocumentMainLanguages({ + count: sourceCodeDocumentLanguagesCount, + ratio: sourceCodeDocumentLanguagesRatio, +}: SourceCodeDocumentLanguagesStat): ProjectLanguage[] { + const sourceCodeDocumentLanguagesStats = map( + ([language, count]) => ({ + count, + language: language as ProjectLanguage, + ratio: sourceCodeDocumentLanguagesRatio[language], + }), + toPairs(sourceCodeDocumentLanguagesCount), + ) + + const sourceCodeDocumentMainLanguagesStats = filter( + ({ count, ratio }) => count > SIGNIFICANT_COUNT || ratio > SIGNIFICANT_RATIO, + sourceCodeDocumentLanguagesStats, + ) + + const sortedSourceCodeDocumentMainLanguagesStats = sort(descend(prop('ratio')), sourceCodeDocumentMainLanguagesStats) + + const mainLanguages = sortedSourceCodeDocumentMainLanguagesStats.map(({ language }) => language) + + return mainLanguages +} diff --git a/src/utils/getSourceCodeDocumentPaths.ts b/src/utils/getSourceCodeDocumentPaths.ts new file mode 100644 index 0000000..4489ef0 --- /dev/null +++ b/src/utils/getSourceCodeDocumentPaths.ts @@ -0,0 +1,50 @@ +import { globby } from 'globby' +import { ascend, identity } from 'ramda' + +import { ProjectLanguage } from '../types' + +export const PROJECT_LANGUAGE_TO_EXTENSIONS_MAP: Record = { + [ProjectLanguage.C_SHARP]: ['cs'], + [ProjectLanguage.DART]: ['dart'], + [ProjectLanguage.ELIXIR]: ['ex', 'exs'], + [ProjectLanguage.GO]: ['go'], + [ProjectLanguage.HASKELL]: ['hs', 'lhs'], + [ProjectLanguage.JAVA]: ['java', 'jsp', 'jspx'], + [ProjectLanguage.JAVASCRIPT]: ['cjs', 'js', 'jsx', 'mjs'], + [ProjectLanguage.KOTLIN]: ['kt', 'kts'], + [ProjectLanguage.PHP]: ['php', 'php3', 'php4', 'php5', 'php7', 'phtml'], + [ProjectLanguage.PYTHON]: ['py', 'pyi', 'pyw'], + [ProjectLanguage.RUBY]: ['rb'], + [ProjectLanguage.RUST]: ['rs'], + [ProjectLanguage.SCALA]: ['scala'], + [ProjectLanguage.TYPESCRIPT]: ['ts', 'tsx'], +} + +const PROJECT_LANGUAGE_EXTENSIONS_AS_STRING = Object.values(PROJECT_LANGUAGE_TO_EXTENSIONS_MAP).flat().join(',') + +const COMMONLY_NON_SOURCE_CODE_DIRECTORIES = [ + '.git', + '.github', + '.idea', + '.vscode', + '.yarn', + '__pycache__', + 'build', + 'dist', + 'node_modules', + 'target', + 'vendor', +].map(directory => `!**/${directory}/**`) + +export async function getSourceCodeDocumentPaths(workspacePath: string): Promise { + const paths = await globby( + [`**/*.{${PROJECT_LANGUAGE_EXTENSIONS_AS_STRING}}`, ...COMMONLY_NON_SOURCE_CODE_DIRECTORIES], + { + cwd: workspacePath, + gitignore: true, + }, + ) + const sortedPaths = paths.sort(ascend(identity)) + + return sortedPaths +} diff --git a/src/utils/startWebSocketServer.ts b/src/utils/startWebSocketServer.ts deleted file mode 100644 index 54628b5..0000000 --- a/src/utils/startWebSocketServer.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { WebSocketServer } from 'ws' - -import { updateStateStatusBarItem } from './updateStateStatusBarItem' -import { stateManager } from '../libs/stateManager' -import { State } from '../types' - -let WEB_SOCKET_SERVER: WebSocketServer - -export function startWebSocketServer() { - if (!WEB_SOCKET_SERVER) { - WEB_SOCKET_SERVER = new WebSocketServer({ port: 4242 }) - - WEB_SOCKET_SERVER.on('connection', webSocket => { - stateManager.clients.add(webSocket) - updateStateStatusBarItem() - - // webSocket.on('message', message => { - // console.debug(`New message received: ${message}.`) - // }) - - webSocket.on('close', () => { - stateManager.clients.delete(webSocket) - updateStateStatusBarItem() - }) - }) - - stateManager.state = State.RUNNING - updateStateStatusBarItem() - } -} diff --git a/src/utils/updateStackStatusBarItem.ts b/src/utils/updateStackStatusBarItem.ts index a8ccdc3..a5125ef 100644 --- a/src/utils/updateStackStatusBarItem.ts +++ b/src/utils/updateStackStatusBarItem.ts @@ -1,28 +1,45 @@ import { ascend, prop } from 'ramda' -import { window, type StatusBarItem, StatusBarAlignment, MarkdownString } from 'vscode' +import { window, type StatusBarItem, StatusBarAlignment, MarkdownString, ThemeColor } from 'vscode' import { stackManager } from '../libs/stackManager' -let STACK_STATUS_BAR_ITEM: StatusBarItem +let STACK_STATUS_BAR_ITEM: StatusBarItem | undefined -export function updateStackStatusBarItem() { +export function updateStackStatusBarItem(isFailure: boolean = false) { if (!STACK_STATUS_BAR_ITEM) { - STACK_STATUS_BAR_ITEM = window.createStatusBarItem(StatusBarAlignment.Left, 2) + STACK_STATUS_BAR_ITEM = window.createStatusBarItem(StatusBarAlignment.Left, 1) STACK_STATUS_BAR_ITEM.show() } + if (isFailure) { + STACK_STATUS_BAR_ITEM.color = new ThemeColor('statusBarItem.errorForeground') + STACK_STATUS_BAR_ITEM.text = '$(x) OpenAI Forge failed to run.' + + return + } + + STACK_STATUS_BAR_ITEM.color = undefined STACK_STATUS_BAR_ITEM.text = `$(list-unordered) ${stackManager.documentInfos.length || 'No'} document${ stackManager.documentInfos.length > 1 ? 's' : '' } selected` - STACK_STATUS_BAR_ITEM.tooltip = stackManager.documentInfos.length - ? new MarkdownString( - [ - '**Selected documents:**', - ...stackManager.documentInfos - .sort(ascend(prop('relativePath'))) - .map(documentInfo => `- ${documentInfo.relativePath}`), - ].join('\n'), - ) - : undefined + STACK_STATUS_BAR_ITEM.tooltip = new MarkdownString( + stackManager.documentInfos.length + ? [ + '| Document | |', + '| - | - |', + ...stackManager.documentInfos.sort(ascend(prop('relativePath'))).map( + documentInfo => + `| [${documentInfo.relativePath}](command:openai-forge.addOrRemoveCurrentDocument?${encodeURIComponent( + JSON.stringify({ + absolutePath: documentInfo.absolutePath, + }), + )}) | [$(eye)](${documentInfo.absolutePath}) | `, + ), + ].join('\n') + : 'No document', + true, + ) + STACK_STATUS_BAR_ITEM.tooltip.isTrusted = true + STACK_STATUS_BAR_ITEM.tooltip.supportHtml = true } diff --git a/src/utils/updateStateStatusBarItem.ts b/src/utils/updateStateStatusBarItem.ts index 6d0cbb9..aa57729 100644 --- a/src/utils/updateStateStatusBarItem.ts +++ b/src/utils/updateStateStatusBarItem.ts @@ -5,11 +5,11 @@ import { InternalError } from '../libs/InternalError' import { stateManager } from '../libs/stateManager' import { State } from '../types' -let STATE_STATUS_BAR_ITEM: StatusBarItem +let STATE_STATUS_BAR_ITEM: StatusBarItem | undefined export function updateStateStatusBarItem() { if (!STATE_STATUS_BAR_ITEM) { - STATE_STATUS_BAR_ITEM = window.createStatusBarItem(StatusBarAlignment.Left, 1) + STATE_STATUS_BAR_ITEM = window.createStatusBarItem(StatusBarAlignment.Left, 2) STATE_STATUS_BAR_ITEM.show() } diff --git a/yarn.lock b/yarn.lock index e4ec1c9..d46d7e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4636,7 +4636,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": version: 3.3.0 resolution: "fast-glob@npm:3.3.0" dependencies: @@ -5182,6 +5182,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:13.2.2": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: ^3.0.1 + fast-glob: ^3.3.0 + ignore: ^5.2.4 + merge2: ^1.4.1 + slash: ^4.0.0 + checksum: f3d84ced58a901b4fcc29c846983108c426631fe47e94872868b65565495f7bee7b3defd68923bd480582771fd4bbe819217803a164a618ad76f1d22f666f41e + languageName: node + linkType: hard + "globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -5532,7 +5545,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef @@ -8485,6 +8498,7 @@ __metadata: eslint-plugin-sort-destructure-keys: 1.5.0 eslint-plugin-sort-keys-fix: 1.1.2 eslint-plugin-typescript-sort-keys: 2.3.0 + globby: 13.2.2 jest: 29.6.1 mocha: 10.2.0 prettier: 2.8.8