@magic-xpa/engine 4.800.0 → 4.801.0-dev000.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +190 -0
- package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
- package/esm2020/src/AccessHelper.mjs +3 -0
- package/esm2020/src/ClientManager.mjs +403 -0
- package/esm2020/src/CommandsProcessorBase.mjs +58 -0
- package/esm2020/src/CommandsProcessorManager.mjs +26 -0
- package/esm2020/src/CommandsTable.mjs +163 -0
- package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
- package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
- package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
- package/esm2020/src/GUIManager.mjs +63 -0
- package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
- package/esm2020/src/GuiEventsProcessor.mjs +171 -0
- package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
- package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
- package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
- package/esm2020/src/bridge/MagicBridge.mjs +41 -0
- package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs +15 -0
- package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
- package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -0
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
- package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +20 -0
- package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +2 -2
- package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +36 -0
- package/esm2020/src/commands/ClientToServer/EventCommand.mjs +40 -0
- package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
- package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
- package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
- package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -0
- package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
- package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
- package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
- package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +39 -0
- package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -0
- package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
- package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +28 -0
- package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
- package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
- package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
- package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
- package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
- package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
- package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
- package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
- package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
- package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
- package/esm2020/src/data/DataView.mjs +1634 -0
- package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
- package/esm2020/src/data/DataviewManager.mjs +28 -0
- package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
- package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
- package/esm2020/src/data/Field.mjs +645 -0
- package/esm2020/src/data/FieldBase.mjs +18 -0
- package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
- package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
- package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
- package/esm2020/src/data/Record.mjs +846 -0
- package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
- package/esm2020/src/data/RecordsTable.mjs +267 -0
- package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
- package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
- package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
- package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2020/src/env/Environment.mjs +554 -0
- package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
- package/esm2020/src/env/LanguageData.mjs +222 -0
- package/esm2020/src/env/MirrorString.mjs +66 -0
- package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
- package/esm2020/src/event/Event.mjs +1436 -0
- package/esm2020/src/event/EventHandler.mjs +773 -0
- package/esm2020/src/event/EventHandlerPosition.mjs +201 -0
- package/esm2020/src/event/EventsManager.mjs +2983 -0
- package/esm2020/src/event/IEventsManager.mjs +7 -0
- package/esm2020/src/event/RunTimeEvent.mjs +406 -0
- package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
- package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
- package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
- package/esm2020/src/exp/Expression.mjs +200 -0
- package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
- package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
- package/esm2020/src/exp/ExpressionLocalJpn.mjs +314 -0
- package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
- package/esm2020/src/exp/YesNoExp.mjs +41 -0
- package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
- package/esm2020/src/gui/FormsTable.mjs +66 -0
- package/esm2020/src/gui/MgControl.mjs +357 -0
- package/esm2020/src/gui/MgForm.mjs +1195 -0
- package/esm2020/src/http/HttpManager.mjs +97 -0
- package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
- package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
- package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
- package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
- package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
- package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
- package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
- package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
- package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
- package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/esm2020/src/remote/ServerError.mjs +44 -0
- package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
- package/esm2020/src/rt/Argument.mjs +274 -0
- package/esm2020/src/rt/ArgumentsList.mjs +103 -0
- package/esm2020/src/rt/Boundary.mjs +158 -0
- package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
- package/esm2020/src/rt/DataviewHeaderFactory.mjs +7 -0
- package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +39 -0
- package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
- package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
- package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
- package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
- package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
- package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
- package/esm2020/src/rt/Operation.mjs +745 -0
- package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
- package/esm2020/src/rt/Recompute.mjs +355 -0
- package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
- package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
- package/esm2020/src/rt/TableCache.mjs +177 -0
- package/esm2020/src/rt/TableCacheManager.mjs +67 -0
- package/esm2020/src/rt/Transaction.mjs +54 -0
- package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
- package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
- package/esm2020/src/tasks/MGData.mjs +552 -0
- package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
- package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
- package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
- package/esm2020/src/tasks/RemoteTaskService.mjs +45 -0
- package/esm2020/src/tasks/Task.mjs +2501 -0
- package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
- package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2020/src/tasks/TasksTable.mjs +80 -0
- package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
- package/esm2020/src/tasks/sort/SortCollection.mjs +72 -0
- package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
- package/{esm2015/src/util/FlowMonitorQueue.js → esm2020/src/util/FlowMonitorQueue.mjs} +15 -18
- package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
- package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
- package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
- package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
- package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
- package/esm2020/src/util/ParamParseResult.mjs +8 -0
- package/esm2020/src/util/PrmMap.mjs +151 -0
- package/esm2020/src/util/Process.mjs +7 -0
- package/esm2020/src/util/ReturnResult.mjs +46 -0
- package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
- package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
- package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
- package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
- package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +267 -254
- package/fesm2015/magic-xpa-engine.mjs.map +1 -0
- package/fesm2020/magic-xpa-engine.mjs +30705 -0
- package/fesm2020/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/package.json +27 -13
- package/src/AccessHelper.d.ts +1 -1
- package/src/CommandsProcessorBase.d.ts +3 -3
- package/src/GuiEventsProcessor.d.ts +1 -1
- package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ComputeEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +1 -2
- package/src/commands/ClientToServer/DataviewCommand.d.ts +1 -2
- package/src/commands/ClientToServer/EvaluateCommand.d.ts +1 -2
- package/src/commands/ClientToServer/EventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +1 -2
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +1 -2
- package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/QueryCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RecomputeCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RefreshEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/RollbackEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +1 -2
- package/src/commands/ClientToServer/TransactionCommand.d.ts +1 -2
- package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +1 -2
- package/src/commands/DataViewCommandBase.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +1 -1
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
- package/src/data/FieldBase.d.ts +3 -3
- package/src/data/Record.d.ts +2 -9
- package/src/data/RecordsTable.d.ts +1 -2
- package/src/data/XMLBasedDcValuesBuilder.d.ts +1 -1
- package/src/env/EnvVariablesTable.d.ts +2 -15
- package/src/env/Environment.d.ts +0 -3
- package/src/env/MirrorString.d.ts +15 -0
- package/src/event/Event.d.ts +0 -3
- package/src/event/EventsManager.d.ts +7 -8
- package/src/event/IEventsManager.d.ts +5 -6
- package/src/exp/ExpressionEvaluator.d.ts +2 -2
- package/src/exp/ExpressionLocalJpn.d.ts +2 -2
- package/src/exp/GlobalParamsTable.d.ts +2 -1
- package/src/gui/MgControl.d.ts +0 -2
- package/src/gui/MgForm.d.ts +4 -4
- package/src/http/client/HttpClientAsync.d.ts +2 -2
- package/src/http/client/HttpClientBase.d.ts +3 -3
- package/src/http/client/HttpClientSync.d.ts +2 -2
- package/src/remote/RemoteCommandsProcessor.d.ts +1 -1
- package/src/rt/DataviewHeaderBase.d.ts +2 -2
- package/src/rt/DataviewHeaderFactory.d.ts +1 -1
- package/src/rt/Operation.d.ts +3 -1
- package/src/rt/RemoteDataviewHeader.d.ts +1 -2
- package/src/rt/Transaction.d.ts +1 -1
- package/src/tasks/RemoteTaskService.d.ts +2 -3
- package/src/tasks/Task.d.ts +1 -1
- package/src/tasks/TaskBase.d.ts +7 -7
- package/src/tasks/TaskServiceBase.d.ts +2 -4
- package/src/tasks/sort/SortCollection.d.ts +2 -3
- package/src/util/FlowMonitorQueue.d.ts +1 -1
- package/src/util/IMirrorXML.d.ts +1 -1
- package/src/util/ParamParseResult.d.ts +6 -0
- package/src/util/PrmMap.d.ts +0 -6
- package/src/util/Process.d.ts +1 -1
- package/bundles/magic-xpa-engine.umd.js +0 -38066
- package/bundles/magic-xpa-engine.umd.js.map +0 -1
- package/bundles/magic-xpa-engine.umd.min.js +0 -16
- package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -188
- package/esm2015/src/AccessHelper.js +0 -3
- package/esm2015/src/ClientManager.js +0 -412
- package/esm2015/src/CommandsProcessorBase.js +0 -54
- package/esm2015/src/CommandsProcessorManager.js +0 -31
- package/esm2015/src/CommandsTable.js +0 -166
- package/esm2015/src/GUIManager.js +0 -72
- package/esm2015/src/GuiEventsProcessor.js +0 -171
- package/esm2015/src/bridge/MagicBridge.js +0 -44
- package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js +0 -15
- package/esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js +0 -60
- package/esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js +0 -26
- package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
- package/esm2015/src/commands/ClientToServer/ComputeEventCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js +0 -20
- package/esm2015/src/commands/ClientToServer/EvaluateCommand.js +0 -36
- package/esm2015/src/commands/ClientToServer/EventCommand.js +0 -40
- package/esm2015/src/commands/ClientToServer/ExecOperCommand.js +0 -67
- package/esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js +0 -22
- package/esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js +0 -23
- package/esm2015/src/commands/ClientToServer/QueryCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/RecomputeCommand.js +0 -27
- package/esm2015/src/commands/ClientToServer/RefreshEventCommand.js +0 -27
- package/esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/RollbackEventCommand.js +0 -39
- package/esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js +0 -21
- package/esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js +0 -24
- package/esm2015/src/commands/ClientToServer/TransactionCommand.js +0 -28
- package/esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js +0 -18
- package/esm2015/src/commands/DataViewCommandBase.js +0 -6
- package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
- package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
- package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
- package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
- package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
- package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
- package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
- package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
- package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
- package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
- package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
- package/esm2015/src/data/DataView.js +0 -1693
- package/esm2015/src/data/DataviewManager.js +0 -31
- package/esm2015/src/data/DataviewManagerBase.js +0 -18
- package/esm2015/src/data/Field.js +0 -672
- package/esm2015/src/data/FieldBase.js +0 -9
- package/esm2015/src/data/Record.js +0 -914
- package/esm2015/src/data/RecordsTable.js +0 -267
- package/esm2015/src/data/TaskTransactionManager.js +0 -110
- package/esm2015/src/data/XMLBasedDcValuesBuilder.js +0 -74
- package/esm2015/src/env/EnvVariablesTable.js +0 -408
- package/esm2015/src/env/Environment.js +0 -563
- package/esm2015/src/env/LanguageData.js +0 -230
- package/esm2015/src/event/Event.js +0 -1449
- package/esm2015/src/event/EventHandler.js +0 -787
- package/esm2015/src/event/EventHandlerPosition.js +0 -201
- package/esm2015/src/event/EventsManager.js +0 -3107
- package/esm2015/src/event/IEventsManager.js +0 -7
- package/esm2015/src/event/RunTimeEvent.js +0 -406
- package/esm2015/src/exp/Expression.js +0 -209
- package/esm2015/src/exp/ExpressionEvaluator.js +0 -4441
- package/esm2015/src/exp/ExpressionLocalJpn.js +0 -314
- package/esm2015/src/exp/GlobalParamsTable.js +0 -84
- package/esm2015/src/exp/YesNoExp.js +0 -44
- package/esm2015/src/gui/FormsTable.js +0 -73
- package/esm2015/src/gui/MgControl.js +0 -438
- package/esm2015/src/gui/MgForm.js +0 -1292
- package/esm2015/src/http/HttpManager.js +0 -100
- package/esm2015/src/http/client/HttpClientAsync.js +0 -72
- package/esm2015/src/http/client/HttpClientBase.js +0 -148
- package/esm2015/src/http/client/HttpClientSync.js +0 -47
- package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -903
- package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
- package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
- package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
- package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
- package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
- package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
- package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
- package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
- package/esm2015/src/remote/ServerError.js +0 -45
- package/esm2015/src/rt/Argument.js +0 -281
- package/esm2015/src/rt/ArgumentsList.js +0 -108
- package/esm2015/src/rt/Boundary.js +0 -161
- package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
- package/esm2015/src/rt/DataviewHeaderFactory.js +0 -7
- package/esm2015/src/rt/DataviewHeadersSaxHandler.js +0 -40
- package/esm2015/src/rt/Operation.js +0 -769
- package/esm2015/src/rt/Recompute.js +0 -372
- package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
- package/esm2015/src/rt/TableCache.js +0 -182
- package/esm2015/src/rt/TableCacheManager.js +0 -70
- package/esm2015/src/rt/Transaction.js +0 -54
- package/esm2015/src/tasks/MGData.js +0 -561
- package/esm2015/src/tasks/MGDataCollection.js +0 -270
- package/esm2015/src/tasks/RemoteTaskService.js +0 -45
- package/esm2015/src/tasks/Task.js +0 -2593
- package/esm2015/src/tasks/TaskServiceBase.js +0 -30
- package/esm2015/src/tasks/TasksTable.js +0 -87
- package/esm2015/src/tasks/sort/SortCollection.js +0 -72
- package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
- package/esm2015/src/util/PrmMap.js +0 -157
- package/esm2015/src/util/Process.js +0 -7
- package/esm2015/src/util/ReturnResult.js +0 -46
- package/fesm2015/magic-xpa-engine.js.map +0 -1
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ApplicationException, Debug, NString } from "@magic-xpa/mscorelib";
|
|
3
|
-
import { Logger } from "@magic-xpa/utils";
|
|
4
|
-
import { ConstInterface } from "../ConstInterface";
|
|
5
|
-
import { HttpClientEvents } from "./client/HttpClientEvents";
|
|
6
|
-
import { HttpClientSync } from "./client/HttpClientSync";
|
|
7
|
-
import { HttpClientAsync } from "./client/HttpClientAsync";
|
|
8
|
-
export class HttpManager {
|
|
9
|
-
constructor() {
|
|
10
|
-
this._httpCommunicationTimeoutMS = HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT;
|
|
11
|
-
this._httpClientAsync = null;
|
|
12
|
-
this._isAbortingMagicEngine = false;
|
|
13
|
-
this._httpClientAsync = new HttpClientAsync(HttpManager._nativeHttpClient);
|
|
14
|
-
this.RegisterBasicDelegates();
|
|
15
|
-
}
|
|
16
|
-
getHttpClient() {
|
|
17
|
-
if (this.IsAbortingMagicEngine)
|
|
18
|
-
return new HttpClientSync();
|
|
19
|
-
return this._httpClientAsync;
|
|
20
|
-
}
|
|
21
|
-
set HttpCommunicationTimeoutMS(value) {
|
|
22
|
-
this._httpCommunicationTimeoutMS = value;
|
|
23
|
-
}
|
|
24
|
-
static setNativeHttpClient(httpClient) {
|
|
25
|
-
HttpManager._nativeHttpClient = httpClient;
|
|
26
|
-
}
|
|
27
|
-
static GetInstance() {
|
|
28
|
-
if (HttpManager._instance === null) {
|
|
29
|
-
HttpManager._instance = new HttpManager();
|
|
30
|
-
}
|
|
31
|
-
return HttpManager._instance;
|
|
32
|
-
}
|
|
33
|
-
get IsAbortingMagicEngine() { return this._isAbortingMagicEngine; }
|
|
34
|
-
set IsAbortingMagicEngine(isAbortingMagicEngine) { this._isAbortingMagicEngine = isAbortingMagicEngine; }
|
|
35
|
-
RegisterBasicDelegates() {
|
|
36
|
-
HttpClientEvents.GetHttpCommunicationTimeout_Event = this.GetHttpCommunicationTimeoutMS.bind(this);
|
|
37
|
-
}
|
|
38
|
-
GetHttpCommunicationTimeoutMS() {
|
|
39
|
-
return this._httpCommunicationTimeoutMS;
|
|
40
|
-
}
|
|
41
|
-
SetCommunicationsFailureHandler(handler) {
|
|
42
|
-
this.getHttpClient().CommunicationsFailureHandler = handler;
|
|
43
|
-
}
|
|
44
|
-
GetContent(requestedURL, requestContent, useCache, isError) {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
let response;
|
|
47
|
-
Debug.Assert(this.getHttpClient() != null);
|
|
48
|
-
try {
|
|
49
|
-
Logger.Instance.WriteServerToLog("*************************************************************************************************");
|
|
50
|
-
isError.value = false;
|
|
51
|
-
Logger.Instance.WriteServerToLog(requestedURL);
|
|
52
|
-
HttpManager.LogAccessToServer("", requestContent);
|
|
53
|
-
response = yield this.getHttpClient().GetContent(requestedURL, requestContent, useCache);
|
|
54
|
-
Debug.Assert(response !== null);
|
|
55
|
-
let errorResponse = HttpManager.CheckAndGetErrorResponse(response);
|
|
56
|
-
if (errorResponse !== null) {
|
|
57
|
-
response = errorResponse;
|
|
58
|
-
isError.value = true;
|
|
59
|
-
}
|
|
60
|
-
return response;
|
|
61
|
-
}
|
|
62
|
-
catch (ex) {
|
|
63
|
-
let url = new URL(requestedURL);
|
|
64
|
-
throw new ApplicationException(ex.Message + "\n" + url.origin + url.pathname, ex);
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
static CheckAndGetErrorResponse(httpResponse) {
|
|
71
|
-
let errorResponse = null;
|
|
72
|
-
if (httpResponse.startsWith(ConstInterface.V24_RIA_ERROR_PREFIX))
|
|
73
|
-
errorResponse = httpResponse.substr(ConstInterface.V24_RIA_ERROR_PREFIX.length);
|
|
74
|
-
return errorResponse;
|
|
75
|
-
}
|
|
76
|
-
static LogAccessToServer(msg, requestContent) {
|
|
77
|
-
if (Logger.Instance.ShouldLogServerRelatedMessages()) {
|
|
78
|
-
if (!NString.IsNullOrEmpty(msg)) {
|
|
79
|
-
msg = msg + "; accessing server ...";
|
|
80
|
-
}
|
|
81
|
-
if (requestContent === null) {
|
|
82
|
-
if (!NString.IsNullOrEmpty(msg)) {
|
|
83
|
-
Logger.Instance.WriteServerToLog(msg);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
if (!NString.IsNullOrEmpty(msg)) {
|
|
88
|
-
msg = msg + " ";
|
|
89
|
-
}
|
|
90
|
-
msg = msg + "uploading " + requestContent.length + " bytes";
|
|
91
|
-
Logger.Instance.WriteServerToLog(msg);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
HttpManager._instance = null;
|
|
97
|
-
HttpManager.DEFAULT_HTTP_COMMUNICATION_TIMEOUT = 5 * 1000;
|
|
98
|
-
HttpManager.DEFAULT_OFFLINE_HTTP_COMMUNICATION_TIMEOUT = 2 * 1000;
|
|
99
|
-
HttpManager._nativeHttpClient = null;
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvSHR0cE1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE1BQU0sT0FBTyxXQUFXO0lBd0N0QjtRQWxDUSxnQ0FBMkIsR0FBVyxXQUFXLENBQUMsa0NBQWtDLENBQUM7UUFDckYscUJBQWdCLEdBQW9CLElBQUksQ0FBQztRQTZCekMsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBSzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBbENPLGFBQWE7UUFHbkIsSUFBRyxJQUFJLENBQUMscUJBQXFCO1lBQzNCLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUU5QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSwwQkFBMEIsQ0FBQyxLQUFhO1FBQzFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUdELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFzQjtRQUUvQyxX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RCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsR0FBRyxHQUFHLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQzthQUN0QztZQUVELElBQUksY0FBYyxLQUFLLElBQUksRUFBRTtnQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3ZDO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQy9CLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO2lCQUNqQjtnQkFFRCxHQUFHLEdBQUcsR0FBRyxHQUFHLFlBQVksR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztnQkFDNUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QztTQUNGO0lBQ0gsQ0FBQzs7QUEvSWMscUJBQVMsR0FBZ0IsSUFBSSxDQUFDO0FBRTdCLDhDQUFrQyxHQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDdEQsc0RBQTBDLEdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQWtCL0QsNkJBQWlCLEdBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgRGVidWcsIE5TdHJpbmcsIFJlZlBhcmFtfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnRCYXNlfSBmcm9tIFwiLi9jbGllbnQvSHR0cENsaWVudEJhc2VcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50RXZlbnRzfSBmcm9tIFwiLi9jbGllbnQvSHR0cENsaWVudEV2ZW50c1wiO1xyXG5pbXBvcnQge0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyfSBmcm9tIFwiLi9jbGllbnQvSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50U3luY30gZnJvbSBcIi4vY2xpZW50L0h0dHBDbGllbnRTeW5jXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudEFzeW5jfSBmcm9tIFwiLi9jbGllbnQvSHR0cENsaWVudEFzeW5jXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSHR0cE1hbmFnZXIge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogSHR0cE1hbmFnZXIgPSBudWxsO1xyXG5cclxuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9IVFRQX0NPTU1VTklDQVRJT05fVElNRU9VVDogbnVtYmVyID0gNSAqIDEwMDA7XHJcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfT0ZGTElORV9IVFRQX0NPTU1VTklDQVRJT05fVElNRU9VVDogbnVtYmVyID0gMiAqIDEwMDA7XHJcblxyXG4gIHByaXZhdGUgX2h0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TOiBudW1iZXIgPSBIdHRwTWFuYWdlci5ERUZBVUxUX0hUVFBfQ09NTVVOSUNBVElPTl9USU1FT1VUO1xyXG4gIHByaXZhdGUgX2h0dHBDbGllbnRBc3luYzogSHR0cENsaWVudEFzeW5jID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBnZXRIdHRwQ2xpZW50KCk6IEh0dHBDbGllbnRCYXNlXHJcbiAge1xyXG4gICAgLy8gQ3JlYXRpbmcgYSBuZXcgaW5zdGFuY2Ugb2Ygc3luYyBIdHRwQ2xpZW50IGJlY2F1c2UgaXQgd2lsbCBiZSBjcmVhdGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIGxhc3QgcmVxdWVzdFxyXG4gICAgaWYodGhpcy5Jc0Fib3J0aW5nTWFnaWNFbmdpbmUpXHJcbiAgICAgIHJldHVybiBuZXcgSHR0cENsaWVudFN5bmMoKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudEFzeW5jO1xyXG4gIH1cclxuXHJcbiAgc2V0IEh0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2h0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfbmF0aXZlSHR0cENsaWVudDogSHR0cENsaWVudCA9IG51bGw7XHJcbiAgc3RhdGljIHNldE5hdGl2ZUh0dHBDbGllbnQoaHR0cENsaWVudDogSHR0cENsaWVudClcclxuICB7XHJcbiAgICBIdHRwTWFuYWdlci5fbmF0aXZlSHR0cENsaWVudCA9IGh0dHBDbGllbnQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgR2V0SW5zdGFuY2UoKTogSHR0cE1hbmFnZXIge1xyXG4gICAgaWYgKEh0dHBNYW5hZ2VyLl9pbnN0YW5jZSA9PT0gbnVsbCkge1xyXG4gICAgICBIdHRwTWFuYWdlci5faW5zdGFuY2UgPSBuZXcgSHR0cE1hbmFnZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gSHR0cE1hbmFnZXIuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNBYm9ydGluZ01hZ2ljRW5naW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0IElzQWJvcnRpbmdNYWdpY0VuZ2luZSgpIHsgcmV0dXJuIHRoaXMuX2lzQWJvcnRpbmdNYWdpY0VuZ2luZTsgfVxyXG4gIHNldCBJc0Fib3J0aW5nTWFnaWNFbmdpbmUoaXNBYm9ydGluZ01hZ2ljRW5naW5lOiBib29sZWFuKSB7IHRoaXMuX2lzQWJvcnRpbmdNYWdpY0VuZ2luZSA9IGlzQWJvcnRpbmdNYWdpY0VuZ2luZTsgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5faHR0cENsaWVudEFzeW5jID0gbmV3IEh0dHBDbGllbnRBc3luYyhIdHRwTWFuYWdlci5fbmF0aXZlSHR0cENsaWVudCk7XHJcbiAgICB0aGlzLlJlZ2lzdGVyQmFzaWNEZWxlZ2F0ZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgUmVnaXN0ZXJCYXNpY0RlbGVnYXRlcygpOiB2b2lkIHtcclxuICAgIEh0dHBDbGllbnRFdmVudHMuR2V0SHR0cENvbW11bmljYXRpb25UaW1lb3V0X0V2ZW50ID0gdGhpcy5HZXRIdHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUy5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgR2V0SHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUztcclxuICB9XHJcblxyXG4gIFNldENvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIoaGFuZGxlcjogSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0SHR0cENsaWVudCgpLkNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIgPSBoYW5kbGVyO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgR2V0Q29udGVudChyZXF1ZXN0ZWRVUkw6IHN0cmluZywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGlzRXJyb3I6IFJlZlBhcmFtPGJvb2xlYW4+KTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGxldCByZXNwb25zZTogc3RyaW5nO1xyXG4gICAgRGVidWcuQXNzZXJ0KHRoaXMuZ2V0SHR0cENsaWVudCgpICE9IG51bGwpO1xyXG4gICAgLy8gbGV0IHN0YXJ0VGltZTogbnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhcIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcIik7XHJcblxyXG4gICAgICBpc0Vycm9yLnZhbHVlID0gZmFsc2U7XHJcblxyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhyZXF1ZXN0ZWRVUkwpO1xyXG5cclxuICAgICAgSHR0cE1hbmFnZXIuTG9nQWNjZXNzVG9TZXJ2ZXIoXCJcIiwgcmVxdWVzdENvbnRlbnQpO1xyXG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0SHR0cENsaWVudCgpLkdldENvbnRlbnQocmVxdWVzdGVkVVJMLCByZXF1ZXN0Q29udGVudCwgdXNlQ2FjaGUpO1xyXG4gICAgICBEZWJ1Zy5Bc3NlcnQocmVzcG9uc2UgIT09IG51bGwpO1xyXG4gICAgICBsZXQgZXJyb3JSZXNwb25zZTogc3RyaW5nID0gSHR0cE1hbmFnZXIuQ2hlY2tBbmRHZXRFcnJvclJlc3BvbnNlKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgIGlmIChlcnJvclJlc3BvbnNlICE9PSBudWxsKSB7XHJcbiAgICAgICAgcmVzcG9uc2UgPSBlcnJvclJlc3BvbnNlO1xyXG4gICAgICAgIGlzRXJyb3IudmFsdWUgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICAvLyBUT0RPOiByZWxhdGl2ZSByZXF1ZXN0ZWRVUkwgZG9lc24ndCB3b3JrIGhlcmUuXHJcbiAgICAgIGxldCB1cmw6IFVSTCA9IG5ldyBVUkwocmVxdWVzdGVkVVJMKTtcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKGV4Lk1lc3NhZ2UgKyBcIlxcblwiICsgdXJsLm9yaWdpbiArIHVybC5wYXRobmFtZSwgZXgpO1xyXG4gICAgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBXZWJDbGllbnQuXHJcbiAgICAgIC8vIEhvdyBkbyB3ZSBrbm93IGlmIHRoZSBjb250ZW50cyB3ZXJlIHJldHVybmVkIGZvcm0gYnJvd3NlciBjYWNoZT9cclxuICAgICAgLy8gbGV0IGVsYXBzZWRUaW1lOiBudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpIC0gc3RhcnRUaW1lO1xyXG5cclxuICAgICAgLy8gTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgc3RyaW5nLkZvcm1hdChcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICBcIkNvbXBsZXRlZCB7MH06IHsxOk4wfSBtcywgYWNjdW11bGF0ZWQ6IHsyOk4wfSBtcyAoc2VydmVyOiB7MzpOMH0pLCB7NH17NX17Nn0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlwiLFxyXG4gICAgICAvLyAgICAgICAgICAgICAgICAgIChjYWNoaW5nU3RyYXRlZ3kuRm91bmRJbkNhY2hlXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxyXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICA6IE5TdHJpbmcuRm9ybWF0KFwiI3swOk4wfVwiLCBTdGF0aXN0aWNzLkdldFJlcXVlc3RzQ250KCkpXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSxcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICBTdGF0aXN0aWNzLkdldEFjY3VtdWxhdGVkRXh0ZXJuYWxUaW1lKCksIFN0YXRpc3RpY3MuR2V0QWNjdW11bGF0ZWRTZXJ2ZXJUaW1lKCksXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgKGNhY2hpbmdTdHJhdGVneS5Gb3VuZEluQ2FjaGVcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIDogKHJlc3BvbnNlICE9IG51bGxcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBOU3RyaW5nLkZvcm1hdChcInswOk4wfSBieXRlcyBkb3dubG9hZGVkXCIsIHJlc3BvbnNlLmxlbmd0aClcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIk51bGwgcmVzcG9uc2UhXCIpXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgLy8gICAgICAgICAgICAgICAgICBPU0Vudmlyb25tZW50LkVvbFNlcSwgT1NFbnZpcm9ubWVudC5UYWJTZXEpXHJcbiAgICAgIC8vICAgICAgICAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5DaGVjayBpZiBhbiBIVFRQIHJlc3BvbnNlIGlzIGFuIGVycm9yIHJlc3BvbnNlLlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImh0dHBSZXNwb25zZVwiPnJlc3BvbnNlIHJldHVybmVkIHRvIGFuIEhUVFAgcmVxdWVzdC48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5pZiB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIGVycm9yIGluZGljYXRvciAtIHRoZSBlcnJvciBpbmRpY2F0b3IgaXMgdHJ1bmNhdGVkIGFuZCB0aGUgcmVtYWluaW5nIGlzIHJldHVybmVkLlxyXG4gIC8vLyBvdGhlcndpc2UgLSBudWxsIChpbmRpY2F0aW5nIHRoYXQgdGhlICdodHRwIFJlc3BvbnNlJyBkaWRuJ3QgY29udGFpbiBhbiBlcnJvcikuPC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgc3RhdGljIENoZWNrQW5kR2V0RXJyb3JSZXNwb25zZShodHRwUmVzcG9uc2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZXJyb3JSZXNwb25zZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBpZiAoaHR0cFJlc3BvbnNlLnN0YXJ0c1dpdGgoQ29uc3RJbnRlcmZhY2UuVjI0X1JJQV9FUlJPUl9QUkVGSVgpKVxyXG4gICAgICBlcnJvclJlc3BvbnNlID0gaHR0cFJlc3BvbnNlLnN1YnN0cihDb25zdEludGVyZmFjZS5WMjRfUklBX0VSUk9SX1BSRUZJWC5sZW5ndGgpO1xyXG5cclxuICAgIHJldHVybiBlcnJvclJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgTG9nQWNjZXNzVG9TZXJ2ZXIobXNnOiBzdHJpbmcsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChMb2dnZXIuSW5zdGFuY2UuU2hvdWxkTG9nU2VydmVyUmVsYXRlZE1lc3NhZ2VzKCkpIHtcclxuICAgICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkobXNnKSkge1xyXG4gICAgICAgIG1zZyA9IG1zZyArIFwiOyBhY2Nlc3Npbmcgc2VydmVyIC4uLlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocmVxdWVzdENvbnRlbnQgPT09IG51bGwpIHtcclxuICAgICAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShtc2cpKSB7XHJcbiAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhtc2cpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShtc2cpKSB7XHJcbiAgICAgICAgICBtc2cgPSBtc2cgKyBcIiBcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG1zZyA9IG1zZyArIFwidXBsb2FkaW5nIFwiICsgcmVxdWVzdENvbnRlbnQubGVuZ3RoICsgXCIgYnl0ZXNcIjtcclxuICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhtc2cpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { HttpErrorResponse } from "@angular/common/http";
|
|
3
|
-
import { NString, Thread, WebException } from "@magic-xpa/mscorelib";
|
|
4
|
-
import { HttpClientBase, RequestMethod } from "./HttpClientBase";
|
|
5
|
-
import { Logger, Logger_LogLevels, Logger_MessageDirection, Misc } from "@magic-xpa/utils";
|
|
6
|
-
import { HttpClientEvents } from "./HttpClientEvents";
|
|
7
|
-
export class HttpClientAsync extends HttpClientBase {
|
|
8
|
-
constructor(httpClient) {
|
|
9
|
-
super();
|
|
10
|
-
this.httpClient = httpClient;
|
|
11
|
-
}
|
|
12
|
-
prepareRequest(httpmethod, urlString) {
|
|
13
|
-
}
|
|
14
|
-
addHeaders(urlString, useCache, httpHeaders, clientID) {
|
|
15
|
-
if (!urlString.startsWith("/"))
|
|
16
|
-
httpHeaders = httpHeaders.append("MgxpaRIAglobalUniqueSessionID", clientID);
|
|
17
|
-
if (!useCache)
|
|
18
|
-
httpHeaders = httpHeaders.append("Cache-Control", 'no-cache');
|
|
19
|
-
return httpHeaders;
|
|
20
|
-
}
|
|
21
|
-
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer, timeBeforeRequest, clientID) {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
let httpResponse = yield this.httpClient.request(RequestMethod[httpMethod], urlString, { headers: httpHeaders, responseType: "text", observe: "response", body: requestContent }).toPromise();
|
|
24
|
-
contentFromServer.value = httpResponse.body;
|
|
25
|
-
return httpResponse;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
logResponse(httpResponse, clientID, urlString, contentFromServer, timeBeforeRequest) {
|
|
29
|
-
let statusCode = httpResponse['status'];
|
|
30
|
-
let responseTime = Misc.getSystemMilliseconds() - timeBeforeRequest;
|
|
31
|
-
if (Logger.Instance.LogLevel === Logger_LogLevels.Basic)
|
|
32
|
-
Logger.Instance.WriteBasicToLog(Logger_MessageDirection.MessageEntering, HttpClientEvents.GetRuntimeCtxID(), HttpClientEvents.GetSessionCounter(), clientID, HttpClientEvents.ShouldDisplayGenericError() ? "-" : new URL(urlString).host, responseTime, statusCode.toString(), JSON.stringify(httpResponse.headers), contentFromServer.value.length);
|
|
33
|
-
}
|
|
34
|
-
handleHttpErrorException(ex, urlString) {
|
|
35
|
-
if (ex instanceof HttpErrorResponse) {
|
|
36
|
-
let statusCode = ex['status'];
|
|
37
|
-
if (statusCode === 404 || statusCode === 403)
|
|
38
|
-
throw new WebException(new Error("bad URL: " + urlString + " - StatusCode = " + statusCode), statusCode);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
shouldRetry(httpCommunicationTimeoutMS, urlString, communicationsFailureHandler, ex, startTimeRef) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
let currentDelayMS = Math.floor(httpCommunicationTimeoutMS / 10);
|
|
44
|
-
let httpElapsedTimeMS = Misc.getSystemMilliseconds() - startTimeRef.value + currentDelayMS;
|
|
45
|
-
if (httpElapsedTimeMS <= httpCommunicationTimeoutMS) {
|
|
46
|
-
yield Thread.Sleep(currentDelayMS);
|
|
47
|
-
Logger.Instance.WriteWarningToLogWithMsg(NString.Format("Retrying {0} : elapsed time {1:N0}ms out of {2:N0}ms", urlString, httpElapsedTimeMS, httpCommunicationTimeoutMS));
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
Logger.Instance.WriteWarningToLogWithMsg(NString.Format("{0} : http timeout {1:N0}ms expired", urlString, httpCommunicationTimeoutMS));
|
|
51
|
-
if (communicationsFailureHandler != null) {
|
|
52
|
-
communicationsFailureHandler.CommunicationFailed(urlString, ex);
|
|
53
|
-
if (communicationsFailureHandler.ShouldRetryLastRequest) {
|
|
54
|
-
Logger.Instance.WriteServerToLog(NString.Format("Retrying {0}, confirmed by user ...", urlString));
|
|
55
|
-
startTimeRef.value = Misc.getSystemMilliseconds();
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return false;
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
logAndThrowException(ex) {
|
|
63
|
-
Logger.Instance.WriteWarningToLogWithMsg("Re-throwing ...");
|
|
64
|
-
Logger.Instance.WriteWarningToLog(ex);
|
|
65
|
-
throw new WebException(ex);
|
|
66
|
-
}
|
|
67
|
-
logExecutionAttempts(executionAttempts) {
|
|
68
|
-
if (executionAttempts > 1)
|
|
69
|
-
Logger.Instance.WriteServerToLog(NString.Format("Succeeded after {0} attempts ...", executionAttempts));
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9odHRwL2NsaWVudC9IdHRwQ2xpZW50QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBYSxpQkFBaUIsRUFBNEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUMsT0FBTyxFQUFZLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFJcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxZQUFvQixVQUFzQjtRQUN4QyxLQUFLLEVBQUUsQ0FBQztRQURVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxVQUF5QixFQUFFLFNBQWlCO0lBRzNELENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUIsRUFBRSxRQUFpQixFQUFFLFdBQXdCLEVBQUUsUUFBZ0I7UUFFekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQzVCLFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxRQUFRO1lBQ1gsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFSyxtQkFBbUIsQ0FBQyxVQUF5QixF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Q0UsNEJBQTRCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLDRCQUE0QixDQUFDLHNCQUFzQixFQUN2RDtvQkFDRSxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMscUNBQXFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDbkcsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDbEQsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRUQsb0JBQW9CLENBQUMsRUFBRTtRQUVyQixNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxpQkFBeUI7UUFFNUMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TlN0cmluZywgUmVmUGFyYW0sIFRocmVhZCwgV2ViRXhjZXB0aW9ufSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50QmFzZSwgUmVxdWVzdE1ldGhvZH0gZnJvbSBcIi4vSHR0cENsaWVudEJhc2VcIjtcclxuaW1wb3J0IHtMb2dnZXIsIExvZ2dlcl9Mb2dMZXZlbHMsIExvZ2dlcl9NZXNzYWdlRGlyZWN0aW9uLCBNaXNjfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0h0dHBDbGllbnRFdmVudHN9IGZyb20gXCIuL0h0dHBDbGllbnRFdmVudHNcIjtcclxuaW1wb3J0IHtJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcn0gZnJvbSBcIi4vSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJcIjtcclxuXHJcbi8vIEEgY2xhc3MgdXNpbmcgSHR0cCBBc3luYyBMaWJyYXJ5XHJcbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50QXN5bmMgZXh0ZW5kcyBIdHRwQ2xpZW50QmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZVJlcXVlc3QoaHR0cG1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcpXHJcbiAge1xyXG4gICAgLy8gTm8gaW1wbGVtZW50YXRpb24gbmVlZGVkXHJcbiAgfVxyXG5cclxuICBhZGRIZWFkZXJzKHVybFN0cmluZzogc3RyaW5nLCB1c2VDYWNoZTogYm9vbGVhbiwgaHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzLCBjbGllbnRJRDogc3RyaW5nKTogSHR0cEhlYWRlcnNcclxuICB7XHJcbiAgICBpZiAoIXVybFN0cmluZy5zdGFydHNXaXRoKFwiL1wiKSlcclxuICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQoXCJNZ3hwYVJJQWdsb2JhbFVuaXF1ZVNlc3Npb25JRFwiLCBjbGllbnRJRCk7XHJcblxyXG4gICAgaWYgKCF1c2VDYWNoZSlcclxuICAgICAgaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQoXCJDYWNoZS1Db250cm9sXCIsICduby1jYWNoZScpO1xyXG5cclxuICAgIHJldHVybiBodHRwSGVhZGVycztcclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbmRSZXF1ZXN0VG9TZXJ2ZXIoaHR0cE1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcsIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgY29udGVudEZyb21TZXJ2ZXI6IFJlZlBhcmFtPHN0cmluZz4sIHRpbWVCZWZvcmVSZXF1ZXN0OiBudW1iZXIsIGNsaWVudElEOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgbGV0IGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4gPSBhd2FpdCB0aGlzLmh0dHBDbGllbnQucmVxdWVzdChSZXF1ZXN0TWV0aG9kW2h0dHBNZXRob2RdLCB1cmxTdHJpbmcsXHJcbiAgICAgIHtoZWFkZXJzOiBodHRwSGVhZGVycywgcmVzcG9uc2VUeXBlOiBcInRleHRcIiwgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBib2R5OiByZXF1ZXN0Q29udGVudH0pLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlID0gaHR0cFJlc3BvbnNlLmJvZHkgYXMgYW55O1xyXG5cclxuICAgIHJldHVybiBodHRwUmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBsb2dSZXNwb25zZShodHRwUmVzcG9uc2U6IEh0dHBSZXNwb25zZTxzdHJpbmc+LCBjbGllbnRJRDogc3RyaW5nLCB1cmxTdHJpbmc6IHN0cmluZywgY29udGVudEZyb21TZXJ2ZXI6IFJlZlBhcmFtPGFueT4sIHRpbWVCZWZvcmVSZXF1ZXN0OiBudW1iZXIpXHJcbiAge1xyXG4gICAgbGV0IHN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2VbJ3N0YXR1cyddO1xyXG5cclxuICAgIGxldCByZXNwb25zZVRpbWU6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCkgLSB0aW1lQmVmb3JlUmVxdWVzdDtcclxuICAgIGlmIChMb2dnZXIuSW5zdGFuY2UuTG9nTGV2ZWwgPT09IExvZ2dlcl9Mb2dMZXZlbHMuQmFzaWMpXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUJhc2ljVG9Mb2coTG9nZ2VyX01lc3NhZ2VEaXJlY3Rpb24uTWVzc2FnZUVudGVyaW5nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuR2V0UnVudGltZUN0eElEKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRTZXNzaW9uQ291bnRlcigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElELFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuU2hvdWxkRGlzcGxheUdlbmVyaWNFcnJvcigpID8gXCItXCIgOiBuZXcgVVJMKHVybFN0cmluZykuaG9zdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZVRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQ29kZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGh0dHBSZXNwb25zZS5oZWFkZXJzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RnJvbVNlcnZlci52YWx1ZS5sZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSHR0cEVycm9yRXhjZXB0aW9uKGV4OiBhbnksIHVybFN0cmluZzogc3RyaW5nKSB7XHJcbiAgICBpZiAoZXggaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSlcclxuICAgIHtcclxuICAgICAgbGV0IHN0YXR1c0NvZGUgPSBleFsnc3RhdHVzJ107XHJcbiAgICAgIGlmIChzdGF0dXNDb2RlID09PSA0MDQgfHwgc3RhdHVzQ29kZSA9PT0gNDAzKVxyXG4gICAgICAgIHRocm93IG5ldyBXZWJFeGNlcHRpb24obmV3IEVycm9yKFwiYmFkIFVSTDogXCIgKyB1cmxTdHJpbmcgKyBcIiAtIFN0YXR1c0NvZGUgPSBcIiArIHN0YXR1c0NvZGUpLCBzdGF0dXNDb2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNob3VsZFJldHJ5KGh0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TOiBudW1iZXIsIHVybFN0cmluZzogc3RyaW5nLCBjb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyOiBJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlciwgZXg6IGFueSwgc3RhcnRUaW1lUmVmOiBSZWZQYXJhbTxudW1iZXI+KVxyXG4gIHtcclxuICAgIC8vIGRlbGF5IHRoZSB0b3RhbCBodHRwIHRpbWVvdXQgLyAxMC5cclxuICAgIGxldCBjdXJyZW50RGVsYXlNUyA9IE1hdGguZmxvb3IoaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMgLyAxMCk7IC8vIG1zXHJcbiAgICBsZXQgaHR0cEVsYXBzZWRUaW1lTVM6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCkgLSBzdGFydFRpbWVSZWYudmFsdWUgKyBjdXJyZW50RGVsYXlNUztcclxuXHJcbiAgICBpZiAoaHR0cEVsYXBzZWRUaW1lTVMgPD0gaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpXHJcbiAgICB7XHJcbiAgICAgIGF3YWl0IFRocmVhZC5TbGVlcChjdXJyZW50RGVsYXlNUyk7XHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVdhcm5pbmdUb0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJSZXRyeWluZyB7MH0gOiBlbGFwc2VkIHRpbWUgezE6TjB9bXMgb3V0IG9mIHsyOk4wfW1zXCIsXHJcbiAgICAgICAgdXJsU3RyaW5nLCBodHRwRWxhcHNlZFRpbWVNUywgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlV2FybmluZ1RvTG9nV2l0aE1zZyhOU3RyaW5nLkZvcm1hdChcInswfSA6IGh0dHAgdGltZW91dCB7MTpOMH1tcyBleHBpcmVkXCIsIHVybFN0cmluZywgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuICAgIGlmIChjb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyICE9IG51bGwpXHJcbiAgICB7XHJcbiAgICAgIGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIuQ29tbXVuaWNhdGlvbkZhaWxlZCh1cmxTdHJpbmcsIGV4KTtcclxuICAgICAgaWYgKGNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIuU2hvdWxkUmV0cnlMYXN0UmVxdWVzdClcclxuICAgICAge1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiUmV0cnlpbmcgezB9LCBjb25maXJtZWQgYnkgdXNlciAuLi5cIiwgdXJsU3RyaW5nKSk7XHJcbiAgICAgICAgc3RhcnRUaW1lUmVmLnZhbHVlID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGxvZ0FuZFRocm93RXhjZXB0aW9uKGV4KVxyXG4gIHtcclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVdhcm5pbmdUb0xvZ1dpdGhNc2coXCJSZS10aHJvd2luZyAuLi5cIik7XHJcbiAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG4gICAgdGhyb3cgbmV3IFdlYkV4Y2VwdGlvbihleCk7XHJcbiAgfVxyXG5cclxuICBsb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0czogbnVtYmVyKVxyXG4gIHtcclxuICAgIGlmIChleGVjdXRpb25BdHRlbXB0cyA+IDEpXHJcbiAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiU3VjY2VlZGVkIGFmdGVyIHswfSBhdHRlbXB0cyAuLi5cIiwgZXhlY3V0aW9uQXR0ZW1wdHMpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { NString, RefParam, StringBuilder } from "@magic-xpa/mscorelib";
|
|
3
|
-
import { Logger, Logger_LogLevels, Logger_MessageDirection, Misc } from "@magic-xpa/utils";
|
|
4
|
-
import { isNullOrUndefined } from "util";
|
|
5
|
-
import { HttpClientEvents } from "./HttpClientEvents";
|
|
6
|
-
import { HttpHeaders } from "@angular/common/http";
|
|
7
|
-
const HTTP_EXPECT100CONTINUE = "Expect100Continue";
|
|
8
|
-
const USE_HIGHEST_SECURITY_PROTOCOL = "UseHighestSecurityProtocol";
|
|
9
|
-
export var RequestMethod;
|
|
10
|
-
(function (RequestMethod) {
|
|
11
|
-
RequestMethod[RequestMethod["Get"] = 0] = "Get";
|
|
12
|
-
RequestMethod[RequestMethod["Post"] = 1] = "Post";
|
|
13
|
-
RequestMethod[RequestMethod["Put"] = 2] = "Put";
|
|
14
|
-
RequestMethod[RequestMethod["Delete"] = 3] = "Delete";
|
|
15
|
-
RequestMethod[RequestMethod["Options"] = 4] = "Options";
|
|
16
|
-
RequestMethod[RequestMethod["Head"] = 5] = "Head";
|
|
17
|
-
RequestMethod[RequestMethod["Patch"] = 6] = "Patch";
|
|
18
|
-
})(RequestMethod || (RequestMethod = {}));
|
|
19
|
-
export class HttpClientBase {
|
|
20
|
-
constructor() {
|
|
21
|
-
this._HTTPMaxURLLength = 2048;
|
|
22
|
-
this.CommunicationsFailureHandler = null;
|
|
23
|
-
this.CommunicationsFailureHandler = null;
|
|
24
|
-
}
|
|
25
|
-
DecideOnRequestMethod(requestContent, requestURL) {
|
|
26
|
-
let method = RequestMethod.Get;
|
|
27
|
-
if (requestContent === null) {
|
|
28
|
-
method = RequestMethod.Get;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
if (requestURL.value.length + 1 + requestContent.length <= this._HTTPMaxURLLength) {
|
|
32
|
-
requestURL.value = requestURL.value + "?" + requestContent;
|
|
33
|
-
method = RequestMethod.Get;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
method = RequestMethod.Post;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return method;
|
|
40
|
-
}
|
|
41
|
-
GetContent(requestURL, requestContent, useCache) {
|
|
42
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
let contentFromServer = new RefParam(null);
|
|
44
|
-
let requestUrlRef = new RefParam(requestURL);
|
|
45
|
-
let httpMethod = this.DecideOnRequestMethod(requestContent, requestUrlRef);
|
|
46
|
-
requestURL = requestUrlRef.value;
|
|
47
|
-
try {
|
|
48
|
-
let response = yield this.ExecuteHttpRequest(requestURL, requestContent, useCache, httpMethod, contentFromServer);
|
|
49
|
-
if (response != null) {
|
|
50
|
-
Logger.Instance.WriteServerToLog("Incoming Headers : " + HttpClientBase.HeadersToString(response.headers, true));
|
|
51
|
-
let nextSessionCounterString = response.headers.get("MgxpaNextSessionCounter".toLowerCase());
|
|
52
|
-
if (!isNullOrUndefined(nextSessionCounterString)) {
|
|
53
|
-
HttpClientEvents.CheckAndSetSessionCounter(+nextSessionCounterString);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (ex) {
|
|
58
|
-
Logger.Instance.WriteWarningToLog(ex);
|
|
59
|
-
throw ex;
|
|
60
|
-
}
|
|
61
|
-
return contentFromServer.value;
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
ExecuteHttpRequest(urlString, requestContent, useCache, httpMethod, contentFromServer) {
|
|
65
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
-
let httpResponse = null;
|
|
67
|
-
this.prepareRequest(httpMethod, urlString);
|
|
68
|
-
let httpCommunicationTimeoutMS = HttpClientEvents.GetHttpCommunicationTimeout();
|
|
69
|
-
let clientID = HttpClientEvents.GetGlobalUniqueSessionID();
|
|
70
|
-
let executionAttempts = 0;
|
|
71
|
-
let startTime = Misc.getSystemMilliseconds();
|
|
72
|
-
while (true) {
|
|
73
|
-
executionAttempts++;
|
|
74
|
-
try {
|
|
75
|
-
let httpHeaders = new HttpHeaders();
|
|
76
|
-
httpHeaders = this.addHeaders(urlString, useCache, httpHeaders, clientID);
|
|
77
|
-
Logger.Instance.WriteServerToLog(NString.Format("Request Timeout set to {0} ms", httpCommunicationTimeoutMS));
|
|
78
|
-
if (Logger.Instance.LogLevel === Logger_LogLevels.Basic) {
|
|
79
|
-
let contentLength = 0;
|
|
80
|
-
if (httpMethod === RequestMethod.Get) {
|
|
81
|
-
let parts = urlString.split('?');
|
|
82
|
-
if (parts.length === 2)
|
|
83
|
-
contentLength = parts[1].length;
|
|
84
|
-
}
|
|
85
|
-
else
|
|
86
|
-
contentLength = requestContent.length;
|
|
87
|
-
Logger.Instance.WriteBasicToLog(Logger_MessageDirection.MessageLeaving, HttpClientEvents.GetRuntimeCtxID(), HttpClientEvents.GetSessionCounter(), clientID, HttpClientEvents.ShouldDisplayGenericError() ? "-" : new URL(urlString).host, 0, '-', JSON.stringify(httpHeaders), contentLength);
|
|
88
|
-
}
|
|
89
|
-
let timeBeforeRequest = Misc.getSystemMilliseconds();
|
|
90
|
-
Logger.Instance.WriteServerToLog(NString.Format("Accessing (method: '{0}'): '{1}'", httpMethod, urlString));
|
|
91
|
-
Logger.Instance.WriteServerToLog("Outgoing Headers : " + HttpClientBase.HeadersToString(httpHeaders, false));
|
|
92
|
-
if (httpMethod === RequestMethod.Post) {
|
|
93
|
-
}
|
|
94
|
-
let requestTime = Misc.getSystemMilliseconds();
|
|
95
|
-
this.LogRequestInfo(!isNullOrUndefined(requestContent) ? requestContent.length : 0, requestTime, false);
|
|
96
|
-
httpResponse = yield this.sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer, timeBeforeRequest, clientID);
|
|
97
|
-
this.logResponse(httpResponse, clientID, urlString, contentFromServer, timeBeforeRequest);
|
|
98
|
-
this.LogRequestInfo(!isNullOrUndefined(requestContent) ? requestContent.length : 0, Misc.getSystemMilliseconds() - requestTime, true);
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
catch (ex) {
|
|
102
|
-
if (Logger.Instance.LogLevel === Logger_LogLevels.Basic)
|
|
103
|
-
Logger.Instance.WriteBasicErrorToLog(HttpClientEvents.GetRuntimeCtxID(), HttpClientEvents.GetSessionCounter(), clientID, HttpClientEvents.ShouldDisplayGenericError() ? "-" : new URL(urlString).host, ex);
|
|
104
|
-
else
|
|
105
|
-
Logger.Instance.WriteWarningToLog(ex);
|
|
106
|
-
this.handleHttpErrorException(ex, urlString);
|
|
107
|
-
let startTimeRef = new RefParam(startTime);
|
|
108
|
-
if (this.shouldRetry(httpCommunicationTimeoutMS, urlString, this.CommunicationsFailureHandler, ex, startTimeRef)) {
|
|
109
|
-
startTime = startTimeRef.value;
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
|
-
this.logAndThrowException(ex);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
this.logExecutionAttempts(executionAttempts);
|
|
116
|
-
return httpResponse;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
LogRequestInfo(contentLength, roundTrip, isLoggingResponse) {
|
|
120
|
-
if (Logger.Instance.LogLevel == Logger_LogLevels.RequestInfo) {
|
|
121
|
-
HttpClientEvents.ComputeAndLogRequestInfo(contentLength, roundTrip, isLoggingResponse);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
static HeadersToString(headers, bFilter) {
|
|
125
|
-
let headersStr = new StringBuilder();
|
|
126
|
-
let headerKeys = headers.keys();
|
|
127
|
-
for (let key in headerKeys) {
|
|
128
|
-
if (!bFilter || headerKeys[key].startsWith("Mg"))
|
|
129
|
-
headersStr.Append(NString.Format("{0}:{1} ", headerKeys[key], headers.get(headerKeys[key])));
|
|
130
|
-
}
|
|
131
|
-
return headersStr;
|
|
132
|
-
}
|
|
133
|
-
static GetHTTPExpect100Continue() {
|
|
134
|
-
let result = true;
|
|
135
|
-
let executionProperty = HttpClientEvents.GetExecutionProperty(HTTP_EXPECT100CONTINUE);
|
|
136
|
-
if (!NString.IsNullOrEmpty(executionProperty))
|
|
137
|
-
result = (executionProperty.toUpperCase() === "Y");
|
|
138
|
-
return result;
|
|
139
|
-
}
|
|
140
|
-
static GetUseHighestSecurityProtocol() {
|
|
141
|
-
let result = false;
|
|
142
|
-
let executionProperty = HttpClientEvents.GetExecutionProperty(USE_HIGHEST_SECURITY_PROTOCOL);
|
|
143
|
-
if (!NString.IsNullOrEmpty(executionProperty))
|
|
144
|
-
result = (executionProperty.toUpperCase() === "Y");
|
|
145
|
-
return result;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudEJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQXVCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUYsT0FBTyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE1BQU0sc0JBQXNCLEdBQVcsbUJBQW1CLENBQUM7QUFDM0QsTUFBTSw2QkFBNkIsR0FBVyw0QkFBNEIsQ0FBQztBQUUzRSxNQUFNLENBQU4sSUFBWSxhQVNYO0FBVEQsV0FBWSxhQUFhO0lBRXZCLCtDQUFPLENBQUE7SUFDUCxpREFBUSxDQUFBO0lBQ1IsK0NBQU8sQ0FBQTtJQUNQLHFEQUFVLENBQUE7SUFDVix1REFBVyxDQUFBO0lBQ1gsaURBQVEsQ0FBQTtJQUNSLG1EQUFTLENBQUE7QUFDWCxDQUFDLEVBVFcsYUFBYSxLQUFiLGFBQWEsUUFTeEI7QUFVRCxNQUFNLE9BQWdCLGNBQWM7SUFVbEM7UUFUUSxzQkFBaUIsR0FBVyxJQUFJLENBQUM7UUFPekMsaUNBQTRCLEdBQWtDLElBQUksQ0FBQztRQUdqRSxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFPTyxxQkFBcUIsQ0FBQyxjQUFzQixFQUFFLFVBQTRCO1FBQ2hGLElBQUksTUFBTSxHQUFrQixhQUFhLENBQUMsR0FBRyxD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QUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUM5QyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNoRztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFJTyxNQUFNLENBQUMsd0JBQXdCO1FBQ3JDLElBQUksTUFBTSxHQUFZLElBQUksQ0FBQztRQUMzQixJQUFJLGlCQUFpQixHQUFXLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFHOUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDM0MsTUFBTSxHQUFHLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFckQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUtPLE1BQU0sQ0FBQyw2QkFBNkI7UUFDMUMsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1FBQzVCLElBQUksaUJBQWlCLEdBQVcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUdyRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBV0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmcsIFJlZlBhcmFtLCBTdHJpbmdCdWlsZGVyLCBUaHJlYWQsIFdlYkV4Y2VwdGlvbn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TG9nZ2VyLCBMb2dnZXJfTG9nTGV2ZWxzLCBMb2dnZXJfTWVzc2FnZURpcmVjdGlvbiwgTWlzY30gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtJQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcn0gZnJvbSBcIi4vSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJcIjtcclxuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcInV0aWxcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50RXZlbnRzfSBmcm9tIFwiLi9IdHRwQ2xpZW50RXZlbnRzXCI7XHJcbmltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vLyBleGVjdXRpb24gcHJvcGVydGllc1xyXG5jb25zdCBIVFRQX0VYUEVDVDEwMENPTlRJTlVFOiBzdHJpbmcgPSBcIkV4cGVjdDEwMENvbnRpbnVlXCI7IC8vIEFkZCBIVFRQIGhlYWRlciBcIkV4cGVjdDoxMDBDb250aW51ZVwiXHJcbmNvbnN0IFVTRV9ISUdIRVNUX1NFQ1VSSVRZX1BST1RPQ09MOiBzdHJpbmcgPSBcIlVzZUhpZ2hlc3RTZWN1cml0eVByb3RvY29sXCI7IC8vIFRoaXMgcHJvcGVydHkgZGVjaWRlcyB0byB1c2UgVExTIHYxLjIgKGltcGxlbWVudGVkIGF0IC5ORVQgdjQuNSkgb3IgVExTIHYxLjBcclxuXHJcbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRob2Rcclxue1xyXG4gIEdldCA9IDAsXHJcbiAgUG9zdCA9IDEsXHJcbiAgUHV0ID0gMixcclxuICBEZWxldGUgPSAzLFxyXG4gIE9wdGlvbnMgPSA0LFxyXG4gIEhlYWQgPSA1LFxyXG4gIFBhdGNoID0gNlxyXG59XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyB0aGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvcjpcclxuLy8vICAgIChpKSBkZWNpZGluZyB3aGljaCBtZXRob2QgdG8gdXNlIChHRVQvUE9TVCkuXHJcbi8vLyAgIChpaSkgaGFuZGxpbmcgY29tbXVuaWNhdGlvbiBmYWlsdXJlcy5cclxuLy8vICAoaWlpKSBhZGRpbmcgSFRUUCBoZWFkZXJzIHRvIHJlcXVlc3RzLlxyXG4vLy8gIChpVikgcmV0cmlldmluZyBIVFRQIGhlYWRlcnMgZnJvbSByZXNwb25zZXMuXHJcbi8vLyA8L3N1bW1hcnk+XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cENsaWVudEJhc2Uge1xyXG4gIHByaXZhdGUgX0hUVFBNYXhVUkxMZW5ndGg6IG51bWJlciA9IDIwNDg7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gR2V0cyBvciBzZXRzIGEgaGFuZGxlciBmb3IgY29tbXVuaWNhdGlvbnMgZmFpbHVyZS4gVGhpcyBwcm9wZXJ0eSBtYXkgYmVcclxuICAvLy8gc2V0IHRvIG51bGwsIGluIHdoaWNoIGNhc2UgdGhlIEh0dHBDbGllbnRCYXNlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsIGFmdGVyXHJcbiAgLy8vIHRoZSBmaXJzdCByZWNvbm5lY3Rpb24gYXR0ZW1wdC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIENvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXI6IElDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLkNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXR1cm5zIHRoZSByZXF1ZXN0IG1ldGhvZCAoUE9TVCBvciBHRVQpIGJhc2VkIG9uIGl0cyBjb250ZW50cyBhbmQgbGVuZ3RoLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdFVSTFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIERlY2lkZU9uUmVxdWVzdE1ldGhvZChyZXF1ZXN0Q29udGVudDogc3RyaW5nLCByZXF1ZXN0VVJMOiBSZWZQYXJhbTxzdHJpbmc+KTogUmVxdWVzdE1ldGhvZCB7XHJcbiAgICBsZXQgbWV0aG9kOiBSZXF1ZXN0TWV0aG9kID0gUmVxdWVzdE1ldGhvZC5HZXQ7XHJcblxyXG4gICAgaWYgKHJlcXVlc3RDb250ZW50ID09PSBudWxsKSB7XHJcbiAgICAgIC8vIHJlcXVlc3RDb250ZW50ICg9PSBjb250ZW50IHRvIGJlIHNlbnQgdG8gc2VydmVyKSBpcyBhbGxvd2VkIG9ubHkgaW4gUE9TVCByZXF1ZXN0cy4gSW4gY2FzZSBubyBjb250ZW50IGlzIHJlcXVpcmVkLCBvcHQgZm9yIEdFVCAoZm9yIHRoZSBhZm9yZW1lbnRpb25lZCBwZXJmb3JtYW5jZSByZWFzb24pLlxyXG4gICAgICBtZXRob2QgPSBSZXF1ZXN0TWV0aG9kLkdldDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAocmVxdWVzdFVSTC52YWx1ZS5sZW5ndGggKyAxICsgcmVxdWVzdENvbnRlbnQubGVuZ3RoIDw9IHRoaXMuX0hUVFBNYXhVUkxMZW5ndGgpIHtcclxuICAgICAgICAvLyBhcHBlbmQgdGhlIHJlcXVlc3QgY29udGVudCB0byB0aGUgVVJMLCBhbmQgc3dpdGNoIHRvIHVzaW5nIGEgR0VUIHJlcXVlc3QuXHJcbiAgICAgICAgcmVxdWVzdFVSTC52YWx1ZSA9IHJlcXVlc3RVUkwudmFsdWUgKyBcIj9cIiArIHJlcXVlc3RDb250ZW50O1xyXG4gICAgICAgIG1ldGhvZCA9IFJlcXVlc3RNZXRob2QuR2V0O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG1ldGhvZCA9IFJlcXVlc3RNZXRob2QuUG9zdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXRob2Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+R2V0cyBjb250ZW50cyBvZiBhIFVSTCwgdXNpbmcgZWl0aGVyIEdFVCBvciBQT1NUIG1ldGhvZHMuXHJcbiAgLy8vIFRoZSBtZXRob2QgZXhlY3V0ZXMgdGhlIEhUVFAgcmVxdWVzdCwgcmVhZHMgdGhlIHJlc3BvbnNlIGFuZCByZXR1cm4gdGhlIGNvbnRlbnQuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXF1ZXN0VVJMXCI+VVJMIHRvIGJlIGFjY2Vzc2VkLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVxdWVzdENvbnRlbnRcIj5jb250ZW50IHRvIGJlIHNlbnQgdG8gc2VydmVyIChyZWxldmFudCBvbmx5IGZvciBQT1NUIG1ldGhvZCAtIGlzIG51bGwgZm9yIG90aGVyIG1ldGhvZHMpLjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPnJlc3BvbnNlIChmcm9tIHRoZSBzZXJ2ZXIpLjwvcmV0dXJucz5cclxuICBhc3luYyBHZXRDb250ZW50KHJlcXVlc3RVUkw6IHN0cmluZywgcmVxdWVzdENvbnRlbnQ6IGFueSwgdXNlQ2FjaGU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgbGV0IGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+ID0gbmV3IFJlZlBhcmFtKG51bGwpO1xyXG4gICAgbGV0IHJlcXVlc3RVcmxSZWY6IFJlZlBhcmFtPHN0cmluZz4gPSBuZXcgUmVmUGFyYW0ocmVxdWVzdFVSTCk7XHJcblxyXG4gICAgbGV0IGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QgPSB0aGlzLkRlY2lkZU9uUmVxdWVzdE1ldGhvZChyZXF1ZXN0Q29udGVudCwgcmVxdWVzdFVybFJlZik7XHJcbiAgICByZXF1ZXN0VVJMID0gcmVxdWVzdFVybFJlZi52YWx1ZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBFeGVjdXRlIHRoZSBodHRwIHJlcXVlc3RcclxuICAgICAgbGV0IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiA9IGF3YWl0IHRoaXMuRXhlY3V0ZUh0dHBSZXF1ZXN0KHJlcXVlc3RVUkwsIHJlcXVlc3RDb250ZW50LCB1c2VDYWNoZSwgaHR0cE1ldGhvZCwgY29udGVudEZyb21TZXJ2ZXIpO1xyXG5cclxuICAgICAgaWYocmVzcG9uc2UgIT0gbnVsbCkge1xyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKFwiSW5jb21pbmcgSGVhZGVycyA6IFwiICsgSHR0cENsaWVudEJhc2UuSGVhZGVyc1RvU3RyaW5nKHJlc3BvbnNlLmhlYWRlcnMsIHRydWUpKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHNlc3Npb24gY291bnRlciAod2hpY2ggd2lsbCBiZSBleHBlY3RlZCBieSB0aGUgc2VydmVyIGluIHRoZSBuZXh0IHJlcXVlc3QpLlxyXG4gICAgICAgIGxldCBuZXh0U2Vzc2lvbkNvdW50ZXJTdHJpbmc6IHN0cmluZyA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiTWd4cGFOZXh0U2Vzc2lvbkNvdW50ZXJcIi50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG5leHRTZXNzaW9uQ291bnRlclN0cmluZykpIHtcclxuICAgICAgICAgIEh0dHBDbGllbnRFdmVudHMuQ2hlY2tBbmRTZXRTZXNzaW9uQ291bnRlcigrbmV4dFNlc3Npb25Db3VudGVyU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG4gICAgICB0aHJvdyBleDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29udGVudEZyb21TZXJ2ZXIudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+VGhpcyBmdW5jdGlvbiBleGVjdXRlcyB0aGUgSFRUUCByZXF1ZXN0IGFuZCBtYWtlIHRoZSByZXNwb25zZSBvYmplY3QuIEl0IGNhbiBleGVjdXRlXHJcbiAgLy8vICAgR0VUIG9yIFBPU1QgcmVxdWVzdC4gSW4gY2FzZSBvZiBQT1NUIHJlcXVlc3QgdGhlIHZhcmlhYmxlcyB0byBzZXJ2ZXIgd2lsbCBjb250YWluIHRoZVxyXG4gIC8vLyAgIHZhcmlhYmxlcyB0byBiZSBzZW5kIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ1cmxTdHJpbmdcIj5VUkwgdG8gYmUgYWNjZXNzZWQuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXF1ZXN0Q29udGVudFwiPmNvbnRlbnQgdG8gYmUgc2VudCB0byBzZXJ2ZXIgKHJlbGV2YW50IG9ubHkgZm9yIFBPU1QgbWV0aG9kIC0gaXMgbnVsbCBmb3Igb3RoZXIgbWV0aG9kcykuPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJodHRwTWV0aG9kXCI+ZW51bSBSZXF1ZXN0TWV0aG9kIHRvIHNwZWNpZnkgdGhlIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBleGVjdXRlIHRoZSByZXF1ZXN0LjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udGVudEZyb21TZXJ2ZXJcIj5jb250ZW50IHJlY2VpdmVkIGZyb20gdGhlIHJlc3BvbnNlLiBbT1VUXTwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGFzeW5jIEV4ZWN1dGVIdHRwUmVxdWVzdCh1cmxTdHJpbmc6IHN0cmluZywgcmVxdWVzdENvbnRlbnQ6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxhbnk+KTogUHJvbWlzZTxIdHRwUmVzcG9uc2U8c3RyaW5nPj5cclxuICB7XHJcbiAgICBsZXQgaHR0cFJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8c3RyaW5nPiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5wcmVwYXJlUmVxdWVzdChodHRwTWV0aG9kLCB1cmxTdHJpbmcpO1xyXG5cclxuICAgIGxldCBodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyID0gSHR0cENsaWVudEV2ZW50cy5HZXRIdHRwQ29tbXVuaWNhdGlvblRpbWVvdXQoKTtcclxuICAgIGxldCBjbGllbnRJRDogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRHbG9iYWxVbmlxdWVTZXNzaW9uSUQoKTtcclxuXHJcbiAgICBsZXQgZXhlY3V0aW9uQXR0ZW1wdHM6IG51bWJlciA9IDA7ICAvLyBmb3IgbG9nZ2luZyBwdXJwb3NlIG9ubHkuXHJcblxyXG4gICAgbGV0IHN0YXJ0VGltZTogbnVtYmVyID0gTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKTtcclxuXHJcbiAgICAvLyBSZXRyeWluZzpcclxuICAgIC8vICAgIElzIGNvbnRyb2xsZWQgYnk6XHJcbiAgICAvLyAgICAgICAoSSkgIFRoZSBtZXRob2QgdmFyaWFibGUgJ2h0dHBDb21tdW5pY2F0aW9uVGltZW91dE1TJyAoYWJvdmUpLFxyXG4gICAgLy8gICAgICAgKElJKSBUaGUgY2xhc3MgbWVtYmVyICdDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyJyAoYWJvdmUpLlxyXG4gICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgZXhlY3V0aW9uQXR0ZW1wdHMrKztcclxuXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50IFRMUyBwcm90b2NvbC5cclxuICAgICAgICAvLyBsZXQgdXNlSGlnaGVzdFNlY3VyaXR5UHJvdG9jb2w6IGJvb2xlYW4gPSBIdHRwQ2xpZW50QmFzZS5HZXRVc2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCgpO1xyXG4gICAgICAgIC8vIGlmICh1c2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCkge1xyXG4gICAgICAgIC8vICAgU2VydmljZVBvaW50TWFuYWdlci5TZWN1cml0eVByb3RvY29sID0gU2VjdXJpdHlQcm90b2NvbFR5cGUuVGxzMTI7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyBEbyBub3QgYWRkIE1neHBhUklBZ2xvYmFsVW5pcXVlU2Vzc2lvbklEIHdoaWxlIGdldHRpbmcgZXhlY3V0aW9uIHByb3BlcnRpZXNcclxuICAgICAgICAvLyBUT0RPOiBoZWFkZXJzIHNob3VsZCBub3QgYmUgc2VudCBmb3IgY2FjaGVkIGZpbGUgcmVxdWVzdHNcclxuICAgICAgICBsZXQgaHR0cEhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcblxyXG4gICAgICAgIGh0dHBIZWFkZXJzID0gdGhpcy5hZGRIZWFkZXJzKHVybFN0cmluZywgdXNlQ2FjaGUsIGh0dHBIZWFkZXJzLCBjbGllbnRJRCk7XHJcblxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZVNlcnZlclRvTG9nKE5TdHJpbmcuRm9ybWF0KFwiUmVxdWVzdCBUaW1lb3V0IHNldCB0byB7MH0gbXNcIiwgaHR0cENvbW11bmljYXRpb25UaW1lb3V0TVMpKTtcclxuXHJcbiAgICAgICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYykge1xyXG4gICAgICAgICAgbGV0IGNvbnRlbnRMZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgICAgICAgICBpZiAoaHR0cE1ldGhvZCA9PT0gUmVxdWVzdE1ldGhvZC5HZXQpIHtcclxuICAgICAgICAgICAgbGV0IHBhcnRzOiBzdHJpbmdbXSA9IHVybFN0cmluZy5zcGxpdCgnPycpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgICAgICAgICBjb250ZW50TGVuZ3RoID0gcGFydHNbMV0ubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSAvLyAoaHR0cFJlcXVlc3QubWV0aG9kID09PSBSZXF1ZXN0TWV0aG9kLlBvc3QpXHJcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGggPSByZXF1ZXN0Q29udGVudC5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNUb0xvZyhMb2dnZXJfTWVzc2FnZURpcmVjdGlvbi5NZXNzYWdlTGVhdmluZyxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRSdW50aW1lQ3R4SUQoKSxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRTZXNzaW9uQ291bnRlcigpLFxyXG4gICAgICAgICAgICBjbGllbnRJRCxcclxuICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5TaG91bGREaXNwbGF5R2VuZXJpY0Vycm9yKCkgPyBcIi1cIiA6IG5ldyBVUkwodXJsU3RyaW5nKS5ob3N0LFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAnLScsXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGh0dHBIZWFkZXJzKSxcclxuICAgICAgICAgICAgY29udGVudExlbmd0aCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlciA9IE1pc2MuZ2V0U3lzdGVtTWlsbGlzZWNvbmRzKCk7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coTlN0cmluZy5Gb3JtYXQoXCJBY2Nlc3NpbmcgKG1ldGhvZDogJ3swfScpOiAnezF9J1wiLCBodHRwTWV0aG9kLCB1cmxTdHJpbmcpKTtcclxuXHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlU2VydmVyVG9Mb2coXCJPdXRnb2luZyBIZWFkZXJzIDogXCIgKyBIdHRwQ2xpZW50QmFzZS5IZWFkZXJzVG9TdHJpbmcoaHR0cEhlYWRlcnMsIGZhbHNlKSk7XHJcblxyXG4gICAgICAgIGlmIChodHRwTWV0aG9kID09PSBSZXF1ZXN0TWV0aG9kLlBvc3QpIHtcclxuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBFeHBlY3QxMDBDb250aW51ZS5cclxuICAgICAgICAgIC8vIGh0dHBXZWJSZXF1ZXN0LlNlcnZpY2VQb2ludC5FeHBlY3QxMDBDb250aW51ZSA9IHRoaXMuR2V0SFRUUEV4cGVjdDEwMENvbnRpbnVlKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLldyaXRlQ29udGVudFRvUmVxdWVzdChyZXF1ZXN0Q29udGVudCwgaHR0cFdlYlJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgICAgIC8vIHNlbmQgdGhlIHJlcXVlc3QgJiBnZXQgdGhlIHJlc3BvbnNlOlxyXG4gICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgICAvLyBUT0RPIDogSGFuZGxlIGVycm9yc1xyXG4gICAgICAgIC8vIFRPRE86IEhhbmRsZSB0aW1lb3V0XHJcblxyXG4gICAgICAgIGxldCByZXF1ZXN0VGltZTpudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpO1xyXG5cclxuICAgICAgICB0aGlzLkxvZ1JlcXVlc3RJbmZvKCFpc051bGxPclVuZGVmaW5lZChyZXF1ZXN0Q29udGVudCkgPyByZXF1ZXN0Q29udGVudC5sZW5ndGggOiAwLCByZXF1ZXN0VGltZSwgZmFsc2UpO1xyXG5cclxuICAgICAgICBodHRwUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0VG9TZXJ2ZXIoaHR0cE1ldGhvZCwgdXJsU3RyaW5nLCBodHRwSGVhZGVycywgcmVxdWVzdENvbnRlbnQsIGNvbnRlbnRGcm9tU2VydmVyLCB0aW1lQmVmb3JlUmVxdWVzdCwgY2xpZW50SUQpO1xyXG5cclxuICAgICAgICB0aGlzLmxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZSwgY2xpZW50SUQsIHVybFN0cmluZywgY29udGVudEZyb21TZXJ2ZXIsIHRpbWVCZWZvcmVSZXF1ZXN0KTtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2dSZXF1ZXN0SW5mbyghaXNOdWxsT3JVbmRlZmluZWQocmVxdWVzdENvbnRlbnQpID8gcmVxdWVzdENvbnRlbnQubGVuZ3RoIDogMCwgTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKSAtIHJlcXVlc3RUaW1lLCB0cnVlKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYylcclxuICAgICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUJhc2ljRXJyb3JUb0xvZyhIdHRwQ2xpZW50RXZlbnRzLkdldFJ1bnRpbWVDdHhJRCgpLFxyXG4gICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkdldFNlc3Npb25Db3VudGVyKCksXHJcbiAgICAgICAgICAgIGNsaWVudElELFxyXG4gICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLlNob3VsZERpc3BsYXlHZW5lcmljRXJyb3IoKSA/IFwiLVwiIDogbmV3IFVSTCh1cmxTdHJpbmcpLmhvc3QsXHJcbiAgICAgICAgICAgIGV4KTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVXYXJuaW5nVG9Mb2coZXgpO1xyXG5cclxuICAgICAgICB0aGlzLmhhbmRsZUh0dHBFcnJvckV4Y2VwdGlvbihleCwgdXJsU3RyaW5nKTtcclxuXHJcbiAgICAgICAgbGV0IHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPiA9IG5ldyBSZWZQYXJhbTxudW1iZXI+KHN0YXJ0VGltZSk7XHJcbiAgICAgICAgaWYodGhpcy5zaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUywgdXJsU3RyaW5nLCB0aGlzLkNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4LCBzdGFydFRpbWVSZWYpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHN0YXJ0VGltZSA9IHN0YXJ0VGltZVJlZi52YWx1ZTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sb2dBbmRUaHJvd0V4Y2VwdGlvbihleCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ0V4ZWN1dGlvbkF0dGVtcHRzKGV4ZWN1dGlvbkF0dGVtcHRzKTtcclxuXHJcbiAgICByZXR1cm4gaHR0cFJlc3BvbnNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBMb2cgdGhlIHJlcXVlc3QgaW5mbyB3aGlsZSBzZW5kaW5nIHJlcXVlc3QvYWZ0ZXIgcmVjZWl2aW5nIHJlc3BvbnNlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIExvZ1JlcXVlc3RJbmZvKGNvbnRlbnRMZW5ndGg6IG51bWJlciwgcm91bmRUcmlwOiBudW1iZXIsIGlzTG9nZ2luZ1Jlc3BvbnNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAoTG9nZ2VyLkluc3RhbmNlLkxvZ0xldmVsID09IExvZ2dlcl9Mb2dMZXZlbHMuUmVxdWVzdEluZm8pIHtcclxuICAgICAgSHR0cENsaWVudEV2ZW50cy5Db21wdXRlQW5kTG9nUmVxdWVzdEluZm8oY29udGVudExlbmd0aCwgcm91bmRUcmlwLCBpc0xvZ2dpbmdSZXNwb25zZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+V3JpdGUgTWcqIHByZWZpeGVkIGhlYWRlcnMgdG8gc3RyaW5nIGluIGZvcm1hdCBcIkhFQURFUjE6VkFMVUUxIEhFQURFUjI6VkFMVUUyIC4uLlwiPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImhlYWRlcnNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImJGaWx0ZXJcIj5pZiB0cnVlLCBsaXN0IG9ubHkgaGVhZGVycyBwcmVmaXhlZCB3aXRoIFwiTWdcIjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgSGVhZGVyc1RvU3RyaW5nKGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBiRmlsdGVyOiBib29sZWFuKTogU3RyaW5nQnVpbGRlciB7XHJcbiAgICBsZXQgaGVhZGVyc1N0cjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcbiAgICBsZXQgaGVhZGVyS2V5czogc3RyaW5nW10gPSBoZWFkZXJzLmtleXMoKTtcclxuXHJcbiAgICBmb3IgKGxldCBrZXkgaW4gaGVhZGVyS2V5cykge1xyXG4gICAgICAvLyBmaWx0ZXIgb25seSBoZWFkZXJzIHRoYXQgYXJlIHByZWZpeGVkIHdpdGggTWcqIChzZW50IGZyb20gdGhlIE1pZGRsZXdhcmUgYW5kIFNlcnZlcik6XHJcbiAgICAgIGlmICghYkZpbHRlciB8fCBoZWFkZXJLZXlzW2tleV0uc3RhcnRzV2l0aChcIk1nXCIpKVxyXG4gICAgICAgIGhlYWRlcnNTdHIuQXBwZW5kKE5TdHJpbmcuRm9ybWF0KFwiezB9OnsxfSBcIiwgaGVhZGVyS2V5c1trZXldLCBoZWFkZXJzLmdldChoZWFkZXJLZXlzW2tleV0pKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGhlYWRlcnNTdHI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+UmV0dXJuIHRoZSBwcm9wZXJ0eSB3aGljaCBkZWNpZGUgd2hldGhlciB0byBzZXQgSFRUUCBoZWFkZXIgXCJFeHBlY3Q6MTAwQ29udGludWVcIjwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+Ym9vbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBHZXRIVFRQRXhwZWN0MTAwQ29udGludWUoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBleGVjdXRpb25Qcm9wZXJ0eTogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRFeGVjdXRpb25Qcm9wZXJ0eShIVFRQX0VYUEVDVDEwMENPTlRJTlVFKTtcclxuXHJcbiAgICAvLyBJbiBjYXNlIHRoZSBwcm9wZXJ0eSBpcyBub3QgZ2l2ZW4gaW4gdGhlIGV4ZWN1dGlvbiBwcm9wZXJ0aWVzLCBpdCBzaG91bGQgZGVmYXVsdCB0byB0cnVlXHJcbiAgICBpZiAoIU5TdHJpbmcuSXNOdWxsT3JFbXB0eShleGVjdXRpb25Qcm9wZXJ0eSkpXHJcbiAgICAgIHJlc3VsdCA9IChleGVjdXRpb25Qcm9wZXJ0eS50b1VwcGVyQ2FzZSgpID09PSBcIllcIik7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5SZXR1cm4gdGhlIHByb3BlcnR5IHdoaWNoIGFsbG93cyB0byB1c2UgVExTIHYxLjIgKGltcGxlbWVudGVkIGF0IC5ORVQgdjQuNSkgYXMgYSBoaWdoZXN0IFRMUyBwcm90b2NvbCB2ZXJzaW9uLlxyXG4gIC8vLyBPdGhlcndpc2UgdXNlIFRMUyB2MS4wIGFzIGEgaGlnaGVzdCBUTFMgcHJvdG9jb2wgdmVyc2lvbjwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+Ym9vbDwvcmV0dXJucz5cclxuICBwcml2YXRlIHN0YXRpYyBHZXRVc2VIaWdoZXN0U2VjdXJpdHlQcm90b2NvbCgpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGxldCBleGVjdXRpb25Qcm9wZXJ0eTogc3RyaW5nID0gSHR0cENsaWVudEV2ZW50cy5HZXRFeGVjdXRpb25Qcm9wZXJ0eShVU0VfSElHSEVTVF9TRUNVUklUWV9QUk9UT0NPTCk7XHJcblxyXG4gICAgLy8gSW4gY2FzZSB0aGUgcHJvcGVydHkgaXMgbm90IGdpdmVuIGluIHRoZSBleGVjdXRpb24gcHJvcGVydGllcywgaXQgc2hvdWxkIGRlZmF1bHQgdG8gZmFsc2UgKGEgaGlnaGVzdCBUTFMgcHJvdG9jb2wgdmVyc2lvbiBpcyB2MS4wKVxyXG4gICAgaWYgKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkoZXhlY3V0aW9uUHJvcGVydHkpKVxyXG4gICAgICByZXN1bHQgPSAoZXhlY3V0aW9uUHJvcGVydHkudG9VcHBlckNhc2UoKSA9PT0gXCJZXCIpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvLyBBYnN0cmFjdCBtZXRob2RzXHJcbiAgYWJzdHJhY3QgcHJlcGFyZVJlcXVlc3QoaHR0cE1ldGhvZDpSZXF1ZXN0TWV0aG9kICwgdXJsU3RyaW5nOiBzdHJpbmcpO1xyXG4gIGFic3RyYWN0IGFkZEhlYWRlcnModXJsU3RyaW5nOiBzdHJpbmcsIHVzZUNhY2hlOiBib29sZWFuLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIGNsaWVudElEOiBzdHJpbmcpOiBIdHRwSGVhZGVycztcclxuICBhYnN0cmFjdCBhc3luYyBzZW5kUmVxdWVzdFRvU2VydmVyKGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIHVybFN0cmluZzogc3RyaW5nLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+LCB0aW1lQmVmb3JlUmVxdWVzdDogbnVtYmVyLCBjbGllbnRJRDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xyXG4gIGFic3RyYWN0IGxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4sIGNsaWVudElEOiBzdHJpbmcsIHVybFN0cmluZzogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55PiwgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlcik7XHJcbiAgYWJzdHJhY3QgaGFuZGxlSHR0cEVycm9yRXhjZXB0aW9uKGV4OiBhbnksIHVybFN0cmluZzogc3RyaW5nKTtcclxuICBhYnN0cmFjdCBhc3luYyBzaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyLCB1cmxTdHJpbmc6IHN0cmluZywgY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcjogSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4OiBhbnksIHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPik7XHJcbiAgYWJzdHJhY3QgbG9nQW5kVGhyb3dFeGNlcHRpb24oZXg6IGFueSk7XHJcbiAgYWJzdHJhY3QgbG9nRXhlY3V0aW9uQXR0ZW1wdHMoZXhlY3V0aW9uQXR0ZW1wdHM6IG51bWJlcik7XHJcbn1cclxuIl19
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { NString } from "@magic-xpa/mscorelib";
|
|
3
|
-
import { HttpClientBase } from "./HttpClientBase";
|
|
4
|
-
import { Logger, Logger_LogLevels, Logger_MessageDirection, Misc } from "@magic-xpa/utils";
|
|
5
|
-
import { HttpClientEvents } from "./HttpClientEvents";
|
|
6
|
-
export class HttpClientSync extends HttpClientBase {
|
|
7
|
-
constructor() {
|
|
8
|
-
super();
|
|
9
|
-
this.httpRequest = null;
|
|
10
|
-
this.headers = new Headers();
|
|
11
|
-
}
|
|
12
|
-
prepareRequest(httpMethod, urlString) {
|
|
13
|
-
}
|
|
14
|
-
addHeaders(urlString, useCache, httpHeaders, clientID) {
|
|
15
|
-
if (!urlString.startsWith("/")) {
|
|
16
|
-
this.headers.append("MgxpaRIAglobalUniqueSessionID", clientID);
|
|
17
|
-
}
|
|
18
|
-
if (!useCache) {
|
|
19
|
-
this.headers.append("Cache-Control", "no-cache");
|
|
20
|
-
}
|
|
21
|
-
return httpHeaders;
|
|
22
|
-
}
|
|
23
|
-
sendRequestToServer(httpMethod, urlString, httpHeaders, requestContent, contentFromServer, timeBeforeRequest, clientID) {
|
|
24
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
-
yield fetch(urlString, { method: 'POST', headers: this.headers, body: requestContent, keepalive: true });
|
|
26
|
-
return NString.Empty;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
logResponse(httpResponse, clientID, urlString, contentFromServer, timeBeforeRequest) {
|
|
30
|
-
let responseTime = Misc.getSystemMilliseconds() - timeBeforeRequest;
|
|
31
|
-
if (Logger.Instance.LogLevel === Logger_LogLevels.Basic)
|
|
32
|
-
Logger.Instance.WriteBasicToLog(Logger_MessageDirection.MessageEntering, HttpClientEvents.GetRuntimeCtxID(), HttpClientEvents.GetSessionCounter(), clientID, HttpClientEvents.ShouldDisplayGenericError() ? "-" : new URL(urlString).host, responseTime, this.httpRequest.status.toString(), JSON.stringify(this.httpRequest.getAllResponseHeaders()), contentFromServer.value.length);
|
|
33
|
-
}
|
|
34
|
-
handleHttpErrorException(ex, urlString) {
|
|
35
|
-
throw ex;
|
|
36
|
-
}
|
|
37
|
-
shouldRetry(httpCommunicationTimeoutMS, urlString, communicationsFailureHandler, ex, startTimeRef) {
|
|
38
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
return false;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
logAndThrowException(ex) {
|
|
43
|
-
}
|
|
44
|
-
logExecutionAttempts(executionAttempts) {
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cENsaWVudFN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRTeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBSXBELE1BQU0sT0FBTyxjQUFlLFNBQVEsY0FBYztJQUtoRDtRQUVFLEtBQUssRUFBRSxDQUFDO1FBTEYsZ0JBQVcsR0FBbUIsSUFBSSxDQUFDO1FBQ25DLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBS3pDLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBeUIsRUFBRSxTQUFpQjtJQUUzRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWlCLEVBQUUsUUFBaUIsRUFBRSxXQUF3QixFQUFFLFFBQWdCO1FBRXpGLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUM5QjtZQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsSUFBSSxDQUFDLFFBQVEsRUFDYjtZQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNsRDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFSyxtQkFBbUIsQ0FBQyxVQUF5QixFQUFFLFNBQWlCLEVBQUUsV0FBd0IsRUFBRSxjQUFzQixFQUFFLGlCQUFtQyxFQUFFLGlCQUF5QixFQUFFLFFBQWdCOztZQUd4TSxNQUFNLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFeEcsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7S0FBQTtJQUVELFdBQVcsQ0FBQyxZQUFrQyxFQUFFLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxpQkFBZ0MsRUFBRSxpQkFBeUI7UUFFOUksSUFBSSxZQUFZLEdBQVcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsaUJBQWlCLENBQUM7UUFFNUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLO1lBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFDdkMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLEVBQ2xDLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLEVBQ3BDLFFBQVEsRUFDUixnQkFBZ0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFDNUUsWUFBWSxFQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxFQUN4RCxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELHdCQUF3QixDQUFDLEVBQU8sRUFBRSxTQUFpQjtRQUdqRCxNQUFNLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFSyxXQUFXLENBQUMsMEJBQWtDLEVBQUUsU0FBaUIsRUFBRSw0QkFBMkQsRUFBRSxFQUFPLEVBQUUsWUFBOEI7O1lBRzNLLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRUQsb0JBQW9CLENBQUMsRUFBRTtJQUd2QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsaUJBQXlCO0lBRzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7TlN0cmluZywgUmVmUGFyYW19IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0h0dHBDbGllbnRCYXNlLCBSZXF1ZXN0TWV0aG9kfSBmcm9tIFwiLi9IdHRwQ2xpZW50QmFzZVwiO1xyXG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyX0xvZ0xldmVscywgTG9nZ2VyX01lc3NhZ2VEaXJlY3Rpb24sIE1pc2N9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7SHR0cENsaWVudEV2ZW50c30gZnJvbSBcIi4vSHR0cENsaWVudEV2ZW50c1wiO1xyXG5pbXBvcnQge0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyfSBmcm9tIFwiLi9JQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlclwiO1xyXG5cclxuLy8gQSBjbGFzcyB1c2luZyBIdHRwIFN5bmMgTGlicmFyeVxyXG5leHBvcnQgY2xhc3MgSHR0cENsaWVudFN5bmMgZXh0ZW5kcyBIdHRwQ2xpZW50QmFzZVxyXG57XHJcbiAgcHJpdmF0ZSBodHRwUmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgPSBudWxsO1xyXG4gIHByaXZhdGUgaGVhZGVyczogSGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKClcclxuICB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZVJlcXVlc3QoaHR0cE1ldGhvZDogUmVxdWVzdE1ldGhvZCwgdXJsU3RyaW5nOiBzdHJpbmcpXHJcbiAge1xyXG4gIH1cclxuXHJcbiAgYWRkSGVhZGVycyh1cmxTdHJpbmc6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4sIGh0dHBIZWFkZXJzOiBIdHRwSGVhZGVycywgY2xpZW50SUQ6IHN0cmluZyk6IEh0dHBIZWFkZXJzXHJcbiAge1xyXG4gICAgaWYgKCF1cmxTdHJpbmcuc3RhcnRzV2l0aChcIi9cIikpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuaGVhZGVycy5hcHBlbmQoXCJNZ3hwYVJJQWdsb2JhbFVuaXF1ZVNlc3Npb25JRFwiLCBjbGllbnRJRCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF1c2VDYWNoZSlcclxuICAgIHtcclxuICAgICAgdGhpcy5oZWFkZXJzLmFwcGVuZChcIkNhY2hlLUNvbnRyb2xcIiwgXCJuby1jYWNoZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaHR0cEhlYWRlcnM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZW5kUmVxdWVzdFRvU2VydmVyKGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2QsIHVybFN0cmluZzogc3RyaW5nLCBodHRwSGVhZGVyczogSHR0cEhlYWRlcnMsIHJlcXVlc3RDb250ZW50OiBzdHJpbmcsIGNvbnRlbnRGcm9tU2VydmVyOiBSZWZQYXJhbTxzdHJpbmc+LCB0aW1lQmVmb3JlUmVxdWVzdDogbnVtYmVyLCBjbGllbnRJRDogc3RyaW5nKTogUHJvbWlzZTxhbnk+XHJcbiAge1xyXG4gICAgLy8gU2VuZCB0aGUgZW5naW5lIHRlcm1pbmF0aW9uIHJlcXVlc3QgdG8gc2VydmVyLlxyXG4gICAgYXdhaXQgZmV0Y2godXJsU3RyaW5nLCB7IG1ldGhvZDogJ1BPU1QnLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsIGJvZHk6IHJlcXVlc3RDb250ZW50LCBrZWVwYWxpdmU6dHJ1ZSB9KTtcclxuXHJcbiAgICByZXR1cm4gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcblxyXG4gIGxvZ1Jlc3BvbnNlKGh0dHBSZXNwb25zZTogSHR0cFJlc3BvbnNlPHN0cmluZz4sIGNsaWVudElEOiBzdHJpbmcsIHVybFN0cmluZzogc3RyaW5nLCBjb250ZW50RnJvbVNlcnZlcjogUmVmUGFyYW08YW55PiwgdGltZUJlZm9yZVJlcXVlc3Q6IG51bWJlcilcclxuICB7XHJcbiAgICBsZXQgcmVzcG9uc2VUaW1lOiBudW1iZXIgPSBNaXNjLmdldFN5c3RlbU1pbGxpc2Vjb25kcygpIC0gdGltZUJlZm9yZVJlcXVlc3Q7XHJcblxyXG4gICAgaWYgKExvZ2dlci5JbnN0YW5jZS5Mb2dMZXZlbCA9PT0gTG9nZ2VyX0xvZ0xldmVscy5CYXNpYylcclxuICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlQmFzaWNUb0xvZyhMb2dnZXJfTWVzc2FnZURpcmVjdGlvbi5NZXNzYWdlRW50ZXJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5HZXRSdW50aW1lQ3R4SUQoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwQ2xpZW50RXZlbnRzLkdldFNlc3Npb25Db3VudGVyKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SUQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cENsaWVudEV2ZW50cy5TaG91bGREaXNwbGF5R2VuZXJpY0Vycm9yKCkgPyBcIi1cIiA6IG5ldyBVUkwodXJsU3RyaW5nKS5ob3N0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmh0dHBSZXF1ZXN0LnN0YXR1cy50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuaHR0cFJlcXVlc3QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRGcm9tU2VydmVyLnZhbHVlLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVIdHRwRXJyb3JFeGNlcHRpb24oZXg6IGFueSwgdXJsU3RyaW5nOiBzdHJpbmcpXHJcbiAge1xyXG4gICAgLy8gTm8gZXhjZXB0aW9uIGhhbmRsaW5nIGZvciBsYXN0IHJlcXVlc3QgYW5kIGhlbmNlIGp1c3QgdGhyb3cgdGhlIGV4Y2VwdGlvblxyXG4gICAgdGhyb3cgZXg7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzaG91bGRSZXRyeShodHRwQ29tbXVuaWNhdGlvblRpbWVvdXRNUzogbnVtYmVyLCB1cmxTdHJpbmc6IHN0cmluZywgY29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcjogSUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXIsIGV4OiBhbnksIHN0YXJ0VGltZVJlZjogUmVmUGFyYW08bnVtYmVyPilcclxuICB7XHJcbiAgICAvLyBObyByZXRyeSBzdXBwb3J0ZWQgb24gbGFzdCByZXF1ZXN0XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2dBbmRUaHJvd0V4Y2VwdGlvbihleClcclxuICB7XHJcbiAgICAvLyBOLkEuXHJcbiAgfVxyXG5cclxuICBsb2dFeGVjdXRpb25BdHRlbXB0cyhleGVjdXRpb25BdHRlbXB0czogbnVtYmVyKVxyXG4gIHtcclxuICAgIC8vIE4uQS5cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
|
|
3
|
-
import { List } from "@magic-xpa/mscorelib";
|
|
4
|
-
import { ReturnResult } from "../util/ReturnResult";
|
|
5
|
-
export class AddUserLocateRemoteDataViewCommand extends RemoteDataViewCommandBase {
|
|
6
|
-
constructor(command) {
|
|
7
|
-
super(command);
|
|
8
|
-
this.userRange = null;
|
|
9
|
-
this.userRange = command.Range;
|
|
10
|
-
}
|
|
11
|
-
Execute() {
|
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
if (this.Task.UserLocs === null) {
|
|
14
|
-
this.Task.UserLocs = new List();
|
|
15
|
-
}
|
|
16
|
-
this.Task.UserLocs.push(this.userRange);
|
|
17
|
-
return new ReturnResult();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlckxvY2F0ZVJlbW90ZURhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL0FkZFVzZXJMb2NhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFNbEQsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHlCQUF5QjtJQUcvRSxZQUFZLE9BQXFDO1FBQy9DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhULGNBQVMsR0FBYyxJQUFJLENBQUM7UUFJbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFNSyxPQUFPOztZQUNYLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLElBQUksRUFBYSxDQUFDO2FBQzVDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtBZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtMaXN0fSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge1VzZXJSYW5nZX0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBSZW1vdGUgRGF0YVZpZXcgQ29tbWFuZCBmb3IgQWRkIFVzZXIgTG9jYXRlcy5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEFkZFVzZXJMb2NhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmQgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBwcml2YXRlIHVzZXJSYW5nZTogVXNlclJhbmdlID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tbWFuZDogQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgICB0aGlzLnVzZXJSYW5nZSA9IGNvbW1hbmQuUmFuZ2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEFkZCBsb2NhdGUgdmFsdWVzIGludG8gdGhlIHRhc2ssIHNvIHRoYXQgdmlldyByZWZyZXNoIGNvbW1hbmQgd2lsbCB1c2UgdGhpcyB2YWx1ZXMgdG8gbG9jYXRlIHRoZSByZWNvcmRzLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKHRoaXMuVGFzay5Vc2VyTG9jcyA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlRhc2suVXNlckxvY3MgPSBuZXcgTGlzdDxVc2VyUmFuZ2U+KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLlRhc2suVXNlckxvY3MucHVzaCh0aGlzLnVzZXJSYW5nZSk7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
|
|
3
|
-
import { List } from "@magic-xpa/mscorelib";
|
|
4
|
-
import { ReturnResult } from "../util/ReturnResult";
|
|
5
|
-
export class AddUserRangeRemoteDataViewCommand extends RemoteDataViewCommandBase {
|
|
6
|
-
constructor(command) {
|
|
7
|
-
super(command);
|
|
8
|
-
this.userRange = null;
|
|
9
|
-
this.userRange = command.Range;
|
|
10
|
-
}
|
|
11
|
-
Execute() {
|
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
if (this.Task.UserRngs === null) {
|
|
14
|
-
this.Task.UserRngs = new List();
|
|
15
|
-
}
|
|
16
|
-
this.Task.UserRngs.push(this.userRange);
|
|
17
|
-
return new ReturnResult();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclJhbmdlUmVtb3RlRGF0YVZpZXdDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9yZW1vdGUvQWRkVXNlclJhbmdlUmVtb3RlRGF0YVZpZXdDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUl0RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBS2xELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx5QkFBeUI7SUFHOUUsWUFBWSxPQUFvQztRQUM5QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFIVCxjQUFTLEdBQWMsSUFBSSxDQUFDO1FBSWxDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBRUssT0FBTzs7WUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLEVBQWEsQ0FBQzthQUM1QztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEMsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlfSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XHJcbmltcG9ydCB7VXNlclJhbmdlfSBmcm9tIFwiLi4vdGFza3MvVGFza0Jhc2VcIjtcclxuaW1wb3J0IHtBZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmR9IGZyb20gXCIuLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9BZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmRcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHRCYXNlfSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XHJcbmltcG9ydCB7TGlzdH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0fSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIGNvbW1hbmQgdG8gYWRkIHRoZSB1c2VyIHJhbmdlLCBmcm9tIFJhbmdlQWRkLCB0byB0aGUgcmVtb3RlIGRhdGEgdmlld1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgQWRkVXNlclJhbmdlUmVtb3RlRGF0YVZpZXdDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSB1c2VyUmFuZ2U6IFVzZXJSYW5nZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IEFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgICB0aGlzLnVzZXJSYW5nZSA9IGNvbW1hbmQuUmFuZ2U7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKHRoaXMuVGFzay5Vc2VyUm5ncyA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlRhc2suVXNlclJuZ3MgPSBuZXcgTGlzdDxVc2VyUmFuZ2U+KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLlRhc2suVXNlclJuZ3MucHVzaCh0aGlzLnVzZXJSYW5nZSk7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
|
|
3
|
-
import { List } from "@magic-xpa/mscorelib";
|
|
4
|
-
import { ReturnResult } from "../util/ReturnResult";
|
|
5
|
-
export class AddUserSortRemoteDataViewCommand extends RemoteDataViewCommandBase {
|
|
6
|
-
constructor(command) {
|
|
7
|
-
super(command);
|
|
8
|
-
this.sort = null;
|
|
9
|
-
this.sort = command.Sort;
|
|
10
|
-
}
|
|
11
|
-
Execute() {
|
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
if (this.Task.UserSorts === null) {
|
|
14
|
-
this.Task.UserSorts = new List();
|
|
15
|
-
}
|
|
16
|
-
this.Task.UserSorts.push(this.sort);
|
|
17
|
-
return new ReturnResult();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclNvcnRSZW1vdGVEYXRhVmlld0NvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9BZGRVc2VyU29ydFJlbW90ZURhdGFWaWV3Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFJdEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEseUJBQXlCO0lBRzdFLFlBQVksT0FBbUM7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSFQsU0FBSSxHQUFTLElBQUksQ0FBQztRQUl4QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQU1LLE9BQU87O1lBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFRLENBQUM7YUFDeEM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge1NvcnR9IGZyb20gXCIuLi90YXNrcy9zb3J0L1NvcnRcIjtcclxuaW1wb3J0IHtBZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0FkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge0xpc3R9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBSZW1vdGUgRGF0YVZpZXcgQ29tbWFuZCBmb3IgQWRkIHVzZXIgc29ydC5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEFkZFVzZXJTb3J0UmVtb3RlRGF0YVZpZXdDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSBzb3J0OiBTb3J0ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tbWFuZDogQWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQpIHtcclxuICAgIHN1cGVyKGNvbW1hbmQpO1xyXG4gICAgdGhpcy5zb3J0ID0gY29tbWFuZC5Tb3J0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBUaGlzIHdpbGwgYWRkIHVzZXIgc29ydHMgb24gdGFzayBzbyB0aGF0IHZpZXcgcmVmcmVzaCBjb21tYW5kIHdpbGwgYXBwbHkgdGhpcyBzb3J0LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKHRoaXMuVGFzay5Vc2VyU29ydHMgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5UYXNrLlVzZXJTb3J0cyA9IG5ldyBMaXN0PFNvcnQ+KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLlRhc2suVXNlclNvcnRzLnB1c2godGhpcy5zb3J0KTtcclxuICAgIHJldHVybiBuZXcgUmV0dXJuUmVzdWx0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|