@kontur.candy/tools 2.154.0 → 2.156.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/CHANGELOG.md +11 -0
- package/distr/Common/AsyncUtils.js +1 -3
- package/distr/Common/CandyApiClient/CandyApiClient.js +25 -138
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +1 -8
- package/distr/Common/CandyApiClient/ClientDraftInfo/ClientDraftInfoResponse.js +1 -1
- package/distr/Common/CandyApiClient/ClientDraftInfo/FnsFormInfo.js +1 -1
- package/distr/Common/CandyApiClient/ClientDraftInfo/GetClientDraftInfoUrl.js +1 -2
- package/distr/Common/CandyApiClient/ClientDraftInfo/PrintInfo.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -16
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -12
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +1 -12
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/Data/TaxRebate1152026.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +1 -13
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakePicklists.js +1 -3
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +1 -8
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +1 -7
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestQueryFilter.js +9 -12
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestRequest.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +1 -1
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +4 -72
- package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
- package/distr/Common/CandyApiClient/IsBuffer.js +1 -2
- package/distr/Common/CandyApiClient/Types/Attachments/Attacments.js +1 -1
- package/distr/Common/CandyApiClient/Types/Attachments/GetAttachmentsResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +1 -1
- package/distr/Common/CandyApiClient/Types/CreateDraft/CreateDraftResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/DiagResourcesResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/CombineFufResult.js +12 -7
- package/distr/Common/CandyApiClient/Types/DraftActions/ConvertDraftRequest.js +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FufSizeTooLargeError.js +1 -3
- package/distr/Common/CandyApiClient/Types/DraftFullId.js +1 -1
- package/distr/Common/CandyApiClient/Types/ErrorLog/CandyPopdProtocol.js +5 -6
- package/distr/Common/CandyApiClient/Types/ErrorLog/ServerErrorLog.js +9 -12
- package/distr/Common/CandyApiClient/Types/ExplanatoryNote/CreateExplanatoryNoteResponse.js +5 -6
- package/distr/Common/CandyApiClient/Types/FeatureFlags/FeatureFlagsResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/Focus/FocusServerResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/Focus/FocusTypes.js +5 -6
- package/distr/Common/CandyApiClient/Types/GetInner/ServerInnerResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +1 -3
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRequisitesResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/Guid.js +1 -1
- package/distr/Common/CandyApiClient/Types/InstancesDeleting/InstancesDeletingRule.js +1 -1
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +1 -1
- package/distr/Common/CandyApiClient/Types/MassActions/ValueForInstancesSettingRule.js +6 -0
- package/distr/Common/CandyApiClient/Types/Presentations/DraftPresentationType.js +5 -6
- package/distr/Common/CandyApiClient/Types/Presentations/PresentationContent.js +1 -1
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js +5 -6
- package/distr/Common/CandyApiClient/Types/Staff/EmployeeInfo.js +1 -1
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +1 -1
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesRequest.js +1 -1
- package/distr/Common/CandyApiClient/Types/Staff/StaffInfo.js +1 -1
- package/distr/Common/CandyApiClient/Types/Tasks/GetTasksServerResponse.js +1 -1
- package/distr/Common/CandyApiClient/Types/Tasks/Tasks.js +5 -6
- package/distr/Common/CandyApiClient/Types/TestClassification.js +1 -1
- package/distr/Common/CollectionUtils.js +1 -3
- package/distr/Common/CommonConstants/SectionNames.js +1 -3
- package/distr/Common/Comparers.js +2 -16
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +1 -5
- package/distr/Common/EndPoints.js +1 -2
- package/distr/Common/Enums/ButtonSettingsTypeEnum.js +5 -6
- package/distr/Common/Errors.js +1 -19
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -3
- package/distr/Common/FormActionHandlers/ControlNamedContextualAction.js +1 -1
- package/distr/Common/Funcs.js +1 -5
- package/distr/Common/GFV.js +1 -1
- package/distr/Common/Hooks/UseLocalStorage.js +3 -10
- package/distr/Common/HttpClient/AuthenticationMode.js +3 -7
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithOptionalPolyfill.js +1 -3
- package/distr/Common/HttpClient/FetchImplementation/BrowserFetchWithPolyfill.js +1 -3
- package/distr/Common/HttpClient/FetchImplementation/Fetch.js +1 -1
- package/distr/Common/HttpClient/FetchImplementation/NativeBrowserFetch.js +1 -1
- package/distr/Common/HttpClient/FetchImplementation/NodeFetch.js +6 -11
- package/distr/Common/HttpClient/HttpClient.js +9 -80
- package/distr/Common/HttpClient/HttpClientAuthenticationProvider.js +1 -1
- package/distr/Common/HttpClient/IHttpClient.js +1 -1
- package/distr/Common/IndentString.js +1 -3
- package/distr/Common/IntRangeUtils.js +3 -10
- package/distr/Common/IterableUtils.js +3 -76
- package/distr/Common/KCLangRuntimeUtils.js +1 -87
- package/distr/Common/ModelPath/BuildIterationSequence.js +1 -5
- package/distr/Common/ModelPath/EachCurrentCollision.js +5 -6
- package/distr/Common/ModelPath/IEquatable.js +1 -1
- package/distr/Common/ModelPath/Map/AbsoluteModelPathMap.js +1 -8
- package/distr/Common/ModelPath/Map/Map2.js +2 -24
- package/distr/Common/ModelPath/Map/ModelPathMap.js +1 -8
- package/distr/Common/ModelPath/ModelPath.js +16 -140
- package/distr/Common/ModelPath/ModelPathBuilder.js +1 -14
- package/distr/Common/ModelPath/ModelPathHelper.js +1 -2
- package/distr/Common/ModelPath/PathMatcher.js +5 -24
- package/distr/Common/ModelPath/PathSplitHelper.js +1 -6
- package/distr/Common/ModelPath/Set/AbsoluteModelPathSet.js +1 -10
- package/distr/Common/ModelPath/Set/AbsoluteResolvedModelPathSet.js +1 -10
- package/distr/Common/ModelPath/Set/ModelPathSet.js +1 -10
- package/distr/Common/ModelPath/Set/Set2.js +1 -16
- package/distr/Common/NidusClient/ContextualNidusClient/ContextualNidusClient.js +1 -9
- package/distr/Common/NidusClient/ContextualNidusClient/IContextualNidusClient.js +1 -1
- package/distr/Common/NidusClient/Fakes/CreateUniqueNidusEntryId.js +1 -3
- package/distr/Common/NidusClient/Fakes/FakeNidusClient.js +1 -17
- package/distr/Common/NidusClient/Fakes/LocalStorageBasedNidusClient.js +1 -30
- package/distr/Common/NidusClient/INidusClient.js +1 -3
- package/distr/Common/NidusClient/NidusClientContext.js +1 -14
- package/distr/Common/NidusClient/NidusClientImpl.js +1 -18
- package/distr/Common/PathConstants.js +1 -3
- package/distr/Common/StringArrayKey.js +1 -8
- package/distr/Common/TypingUtils.js +7 -26
- package/distr/Common/UUID.js +1 -4
- package/distr/Common/UseAsyncEffect.js +3 -7
- package/distr/Common/UseShowOnce.js +1 -17
- package/distr/Common/UseTypedSelector.js +1 -3
- package/distr/Common/getRngSchemaFilename.js +21 -0
- package/distr/Common/hashUtils.js +1 -4
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +1 -23
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +3 -10
- package/distr/Tools/src/BuildTasks/Engine/AcquireFormEngine.js +1 -10
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +5 -23
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +1 -27
- package/distr/Tools/src/BuildTasks/Engine/EngineSource.js +1 -2
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +3 -10
- package/distr/Tools/src/BuildTasks/EngineVersionUtils.js +1 -9
- package/distr/Tools/src/BuildTasks/FSTask.js +1 -19
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +1 -19
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +1 -16
- package/distr/Tools/src/BuildTasks/Form/NullFormGenerator.js +1 -11
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +1 -10
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +1 -10
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -10
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +5 -26
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +1 -38
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/CreateAsyncGenerator.js +2 -42
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +4 -39
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ProcessSugarWorker.js +4 -7
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +4 -10
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +9 -17
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/TypedProcessWorker.js +3 -5
- package/distr/Tools/src/BuildTasks/ProcessUtils/ProcessUtils.js +1 -13
- package/distr/Tools/src/BuildTasks/ProcessUtils/ShellProcessHandle.js +1 -20
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +3 -48
- package/distr/Tools/src/BuildTasks/ReadFormSource.js +7 -32
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +5 -32
- package/distr/Tools/src/BuildTasks/Version.js +1 -10
- package/distr/Tools/src/BuildTasks/WriteFormMeta.js +1 -10
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +5 -9
- package/distr/Tools/src/CLICommands/BuildForms/BuildFormsOptions.js +1 -5
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +34 -70
- package/distr/Tools/src/CLICommands/BuildServer/BuildLogsWebsocketController.js +1 -12
- package/distr/Tools/src/CLICommands/BuildServer/BuildServerServerOptions.js +1 -5
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +1 -67
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +3 -28
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +3 -41
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsController.js +3 -23
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +3 -20
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerFormInfoController.js +1 -23
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerLocalSourcesEngineController.js +1 -37
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +1 -13
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +1 -40
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +8 -49
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ClientJsDevServer.js +1 -13
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/EngineDevServer.js +1 -17
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/ReportGeneratorErrorToPageBody.js +1 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +10 -19
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +12 -26
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorkerFactory.js +1 -5
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IInputFileSystem.js +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/IWatchFileSystem.js +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +10 -44
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +1 -17
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -5
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/IGeneratedServerSideSourcesProvider.js +1 -1
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +1 -27
- package/distr/Tools/src/CLICommands/BuildServer/StdStreamsIntercepter.js +11 -16
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +1 -1
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptionDefintions.js +1 -1
- package/distr/Tools/src/CLICommands/CommonOptions/CommonOptions.js +1 -1
- package/distr/Tools/src/CLICommands/DevBuild/DevBuildOptions.js +1 -4
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +23 -34
- package/distr/Tools/src/CLICommands/FormStats/FormStatsOptions.js +1 -4
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +1 -15
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +3 -19
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +1 -2
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/helpers/setKppValue.js +1 -2
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +1 -6
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +1 -11
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/validations/kppValue.js +3 -4
- package/distr/Tools/src/CLICommands/InitForm/InitFormOptions.js +1 -4
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +1 -23
- package/distr/Tools/src/CLICommands/Localization/LocalizationOptions.js +1 -4
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +7 -23
- package/distr/Tools/src/CLICommands/RenameFiles/RenameFilesOptions.js +26 -0
- package/distr/Tools/src/CLICommands/RenameFiles/RunRenameFiles.js +48 -0
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +1 -37
- package/distr/Tools/src/CLICommands/UpgradeForm/UpgradeFormOptions.js +1 -4
- package/distr/Tools/src/CandyCLI.js +7 -56
- package/distr/Tools/src/CheckNodeJsVersion.js +3 -10
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +1 -10
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +4 -29
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplicationContext.js +1 -6
- package/distr/Tools/src/Commons/ErrorUntyped.js +1 -1
- package/distr/Tools/src/Commons/EventObject.js +10 -20
- package/distr/Tools/src/Commons/ExecUtils.js +3 -9
- package/distr/Tools/src/Commons/ExtractGfvsFromFileName.js +1 -7
- package/distr/Tools/src/Commons/FormGlobsUtils.js +1 -33
- package/distr/Tools/src/Commons/FsUtils.js +1 -12
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +1 -8
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Methods.js +4 -15
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/NotFoundWebError.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/CookieParamParamBinder.js +1 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/IParamBinder.js +1 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/JsonBodyParamBinder.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/StringBodyParamBinder.js +1 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlParamBinder.js +2 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/ParamBinders/UrlQueryParamBinder.js +1 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +1 -14
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomActionResultHandler.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/CustomContentResultHandler.js +1 -5
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/EmptyResultHandler.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/HtmlResultHandler.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/IResultHandler.js +1 -1
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/JsonResultHandler.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/PlainTextResultHandler.js +1 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +1 -36
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results.js +1 -9
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/ExpressServerWrapper.js +5 -35
- package/distr/Tools/src/Commons/HttpServer/ExpressWrapper/SingletonController.js +9 -11
- package/distr/Tools/src/Commons/Locks/Lock.js +1 -8
- package/distr/Tools/src/Commons/Locks/LockHandle.js +1 -5
- package/distr/Tools/src/Commons/Locks/ReadWriteLockCollection.js +1 -9
- package/distr/Tools/src/Commons/Logging/ELKLogger.js +17 -22
- package/distr/Tools/src/Commons/Logging/ILogger.js +1 -5
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +3 -21
- package/distr/Tools/src/Commons/Logging/Logger.js +9 -29
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +11 -15
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.d.js +1 -1
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +3 -37
- package/distr/Tools/src/Commons/PathPattern.js +1 -13
- package/distr/Tools/src/Commons/TasksCore/AggregatedError.js +1 -4
- package/distr/Tools/src/Commons/TasksCore/BuildTask.js +1 -1
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +13 -200
- package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +1 -20
- package/distr/Tools/src/Commons/TasksCore/EmptyProducer.js +7 -10
- package/distr/Tools/src/Commons/TasksCore/FileSystemEntriesProducer.js +1 -15
- package/distr/Tools/src/Commons/TasksCore/FileValueProducer.js +1 -15
- package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -13
- package/distr/Tools/src/Commons/TasksCore/SingleValueProducer.js +5 -11
- package/distr/Tools/src/Commons/TimingUtils.js +1 -2
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +13 -51
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -14
- package/distr/Tools/src/GenerateReadMe.js +1 -13
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.LICENSE.txt +10 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.LICENSE.txt +10 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/Options/CandyToolOptions.js +3 -11
- package/distr/Tools/src/ReadFarmConfig.js +1 -5
- package/distr/Tools/src/SelfUpdate.js +4 -28
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +1506 -1257
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.LICENSE.txt +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +843 -623
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.LICENSE.txt +1 -0
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/jquery-1.11.3.min.js +777 -1117
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/polyfill.min.js +1665 -2015
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/testing.min.js +9 -55
- package/distr/Tools/src/StaticFilesForResourcesDir/jquery-1.11.3.min.js +777 -1117
- package/distr/Tools/src/StaticFilesForResourcesDir/polyfill.min.js +1665 -2015
- package/distr/Tools/src/StaticFilesForResourcesDir/testing.min.js +9 -55
- package/package.json +10 -10
- /package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/schemas/{{gfv}.rng.xml → {gfv}.0.rng.xml} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.runRenameFiles = runRenameFiles;
|
|
7
|
+
var path = _interopRequireWildcard(require("path"));
|
|
8
|
+
var _fsExtra = require("fs-extra");
|
|
9
|
+
var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
async function runRenameFiles(context, options, resourcesDirectory, farmDirectory) {
|
|
13
|
+
const formGlobs = await _FormGlobsUtils.FormGlobs.validateGlobs(await _FormGlobsUtils.FormGlobs.resolveSpecifiers(options.formGlobs, farmDirectory), farmDirectory);
|
|
14
|
+
for (const gfv of await _FormGlobsUtils.FormGlobs.resolveGlobsToGfvs(formGlobs, farmDirectory)) {
|
|
15
|
+
if (!isNaN(Number(gfv))) {
|
|
16
|
+
const logger = context.logger.withPrefix(`FORM:${gfv}`);
|
|
17
|
+
await renameFiles(farmDirectory, gfv, logger);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function renameFiles(farmDirectory, gfv, logger) {
|
|
22
|
+
var _maxSubversion;
|
|
23
|
+
const presentationsFile = path.join(farmDirectory, "forms", gfv, "presentations.json");
|
|
24
|
+
if (!(await (0, _fsExtra.pathExists)(presentationsFile))) {
|
|
25
|
+
logger.warning(`Form ${gfv} does not have presentations.json.`);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const json = await (0, _fsExtra.readJson)(presentationsFile);
|
|
29
|
+
let maxSubversion = 0;
|
|
30
|
+
for (const item of json) {
|
|
31
|
+
if (item["MaxVersion"] !== undefined && item["MaxVersion"]) {
|
|
32
|
+
maxSubversion = item["MaxVersion"];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
maxSubversion = (_maxSubversion = maxSubversion) !== null && _maxSubversion !== void 0 ? _maxSubversion : 0;
|
|
36
|
+
const rngXmlFileName = `${gfv}.rng.xml`;
|
|
37
|
+
const newRngXmlFileName = `${gfv}.${maxSubversion}.rng.xml`;
|
|
38
|
+
const formDirPath = path.join(farmDirectory, "forms", gfv);
|
|
39
|
+
const fileDirPath = path.join(formDirPath, "schemas", rngXmlFileName);
|
|
40
|
+
if (!(await (0, _fsExtra.pathExists)(fileDirPath))) {
|
|
41
|
+
logger.warning(`Form ${gfv} does not have ${rngXmlFileName}.`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const newFileDirPath = path.join(formDirPath, "schemas", newRngXmlFileName);
|
|
45
|
+
logger.log(`Rename "${rngXmlFileName}" in "${newRngXmlFileName}".`);
|
|
46
|
+
await (0, _fsExtra.rename)(fileDirPath, newFileDirPath);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwicnVuUmVuYW1lRmlsZXMiLCJjb250ZXh0Iiwib3B0aW9ucyIsInJlc291cmNlc0RpcmVjdG9yeSIsImZhcm1EaXJlY3RvcnkiLCJmb3JtR2xvYnMiLCJGb3JtR2xvYnMiLCJ2YWxpZGF0ZUdsb2JzIiwicmVzb2x2ZVNwZWNpZmllcnMiLCJnZnYiLCJyZXNvbHZlR2xvYnNUb0dmdnMiLCJpc05hTiIsIk51bWJlciIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJyZW5hbWVGaWxlcyIsIl9tYXhTdWJ2ZXJzaW9uIiwicHJlc2VudGF0aW9uc0ZpbGUiLCJqb2luIiwicGF0aEV4aXN0cyIsIndhcm5pbmciLCJqc29uIiwicmVhZEpzb24iLCJtYXhTdWJ2ZXJzaW9uIiwiaXRlbSIsInVuZGVmaW5lZCIsInJuZ1htbEZpbGVOYW1lIiwibmV3Um5nWG1sRmlsZU5hbWUiLCJmb3JtRGlyUGF0aCIsImZpbGVEaXJQYXRoIiwibmV3RmlsZURpclBhdGgiLCJsb2ciLCJyZW5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvUmVuYW1lRmlsZXMvUnVuUmVuYW1lRmlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkSnNvbiwgcmVuYW1lIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5cbmltcG9ydCB7IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHsgRm9ybUdsb2JzIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvRm9ybUdsb2JzVXRpbHNcIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcblxuaW1wb3J0IHsgUmVuYW1lRmlsZXNPcHRpb25zIH0gZnJvbSBcIi4vUmVuYW1lRmlsZXNPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5SZW5hbWVGaWxlcyhcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFJlbmFtZUZpbGVzT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgaWYgKCFpc05hTihOdW1iZXIoZ2Z2KSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCk7XG4gICAgICAgICAgICBhd2FpdCByZW5hbWVGaWxlcyhmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmFtZUZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgZ2Z2OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByZXNlbnRhdGlvbnNGaWxlID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2LCBcInByZXNlbnRhdGlvbnMuanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHByZXNlbnRhdGlvbnNGaWxlKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoYEZvcm0gJHtnZnZ9IGRvZXMgbm90IGhhdmUgcHJlc2VudGF0aW9ucy5qc29uLmApO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZWFkSnNvbihwcmVzZW50YXRpb25zRmlsZSk7XG4gICAgbGV0IG1heFN1YnZlcnNpb24gPSAwO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBqc29uKSB7XG4gICAgICAgIGlmIChpdGVtW1wiTWF4VmVyc2lvblwiXSAhPT0gdW5kZWZpbmVkICYmIGl0ZW1bXCJNYXhWZXJzaW9uXCJdKSB7XG4gICAgICAgICAgICBtYXhTdWJ2ZXJzaW9uID0gaXRlbVtcIk1heFZlcnNpb25cIl07XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWF4U3VidmVyc2lvbiA9IG1heFN1YnZlcnNpb24gPz8gMDtcbiAgICBjb25zdCBybmdYbWxGaWxlTmFtZSA9IGAke2dmdn0ucm5nLnhtbGA7XG4gICAgY29uc3QgbmV3Um5nWG1sRmlsZU5hbWUgPSBgJHtnZnZ9LiR7bWF4U3VidmVyc2lvbn0ucm5nLnhtbGA7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZpbGVEaXJQYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcInNjaGVtYXNcIiwgcm5nWG1sRmlsZU5hbWUpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZmlsZURpclBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhgRm9ybSAke2dmdn0gZG9lcyBub3QgaGF2ZSAke3JuZ1htbEZpbGVOYW1lfS5gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdGaWxlRGlyUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJzY2hlbWFzXCIsIG5ld1JuZ1htbEZpbGVOYW1lKTtcbiAgICBsb2dnZXIubG9nKGBSZW5hbWUgXCIke3JuZ1htbEZpbGVOYW1lfVwiIGluIFwiJHtuZXdSbmdYbWxGaWxlTmFtZX1cIi5gKTtcbiAgICBhd2FpdCByZW5hbWUoZmlsZURpclBhdGgsIG5ld0ZpbGVEaXJQYXRoKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsZUFBQSxHQUFBRixPQUFBO0FBQXlELFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFMLHdCQUFBUyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFB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
|
|
@@ -4,43 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.runUpgradeForm = runUpgradeForm;
|
|
7
|
-
|
|
8
7
|
var path = _interopRequireWildcard(require("path"));
|
|
9
|
-
|
|
10
8
|
var _fsExtra = require("fs-extra");
|
|
11
|
-
|
|
12
9
|
var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
|
|
13
|
-
|
|
14
10
|
var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
|
|
15
|
-
|
|
16
11
|
var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
|
|
17
|
-
|
|
18
12
|
var _StaticLogger = require("../../Commons/Logging/StaticLogger");
|
|
19
|
-
|
|
20
13
|
var _Version = require("../../BuildTasks/Version");
|
|
21
|
-
|
|
22
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
-
|
|
24
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
-
|
|
26
16
|
async function runUpgradeForm(context, options, resourcesDirectory, farmDirectory) {
|
|
27
17
|
const formGlobs = await _FormGlobsUtils.FormGlobs.validateGlobs(await _FormGlobsUtils.FormGlobs.resolveSpecifiers(options.formGlobs, farmDirectory), farmDirectory);
|
|
28
|
-
|
|
29
18
|
for (const gfv of await _FormGlobsUtils.FormGlobs.resolveGlobsToGfvs(formGlobs, farmDirectory)) {
|
|
30
19
|
const logger = context.logger.withPrefix(`FORM:${gfv}`);
|
|
31
|
-
|
|
32
20
|
if (options.useCiBuild) {
|
|
33
21
|
logger.log("Begin upgrading build mode");
|
|
34
22
|
await upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger);
|
|
35
23
|
logger.log("Finish upgrading build mode");
|
|
36
24
|
}
|
|
37
|
-
|
|
38
25
|
if (options.engine != undefined) {
|
|
39
26
|
logger.log("Begin upgrading engine version");
|
|
40
27
|
await upgradeFormEngine(farmDirectory, gfv, options.engine, options.skipPreVersions, logger);
|
|
41
28
|
logger.log("Finish upgrading engine version");
|
|
42
29
|
}
|
|
43
|
-
|
|
44
30
|
if (options.preid != undefined) {
|
|
45
31
|
logger.log("Begin upgrading engine version");
|
|
46
32
|
await upgradeFormPrerelease(farmDirectory, gfv, options.preid, logger);
|
|
@@ -48,44 +34,34 @@ async function runUpgradeForm(context, options, resourcesDirectory, farmDirector
|
|
|
48
34
|
}
|
|
49
35
|
}
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersions, logger) {
|
|
53
38
|
const formDirPath = path.join(farmDirectory, "forms", gfv);
|
|
54
39
|
const formJsonPath = path.join(formDirPath, "form.json");
|
|
55
|
-
|
|
56
40
|
if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
|
|
57
41
|
logger.warning("Form does not have form.json: Upgrade skipped");
|
|
58
42
|
return;
|
|
59
43
|
}
|
|
60
|
-
|
|
61
44
|
const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
|
|
62
|
-
|
|
63
45
|
if (skipPreVersions) {
|
|
64
46
|
var _formConfig$dependenc, _formConfig$dependenc2;
|
|
65
|
-
|
|
66
47
|
if (((_formConfig$dependenc = formConfig.dependencies) === null || _formConfig$dependenc === void 0 ? void 0 : _formConfig$dependenc.engine) != undefined && ((_formConfig$dependenc2 = formConfig.dependencies) === null || _formConfig$dependenc2 === void 0 ? void 0 : _formConfig$dependenc2.generator) != undefined) {
|
|
67
48
|
var _formConfig$dependenc3, _formConfig$dependenc4;
|
|
68
|
-
|
|
69
49
|
const engineVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc3 = formConfig.dependencies) === null || _formConfig$dependenc3 === void 0 ? void 0 : _formConfig$dependenc3.engine);
|
|
70
50
|
const generatorVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc4 = formConfig.dependencies) === null || _formConfig$dependenc4 === void 0 ? void 0 : _formConfig$dependenc4.generator);
|
|
71
|
-
|
|
72
51
|
if (engineVersionSpec.type === "pre" || generatorVersionSpec.type === "pre" || engineVersionSpec.type === "version" && /[a-zA-Z]/.test(engineVersionSpec.version) || generatorVersionSpec.type === "version" && /[a-zA-Z]/.test(generatorVersionSpec.version)) {
|
|
73
52
|
logger.log("Form version has prerelease version: Upgrade skipped due to flag skipPreVersions (--skip-pre-versions) specified");
|
|
74
53
|
return;
|
|
75
54
|
}
|
|
76
55
|
}
|
|
77
56
|
}
|
|
78
|
-
|
|
79
57
|
if (formConfig.mode === "no-editor") {
|
|
80
58
|
logger.log("Form does not have editor: Upgrade skipped");
|
|
81
59
|
return;
|
|
82
60
|
}
|
|
83
|
-
|
|
84
61
|
if (formConfig.mode === "copy-legacy-prebuilt-resources") {
|
|
85
62
|
logger.log("Form does not have editor: Upgrade skipped");
|
|
86
63
|
return;
|
|
87
64
|
}
|
|
88
|
-
|
|
89
65
|
if (engineVersion === "latest") {
|
|
90
66
|
formConfig.dependencies = {
|
|
91
67
|
engine: await (0, _PublishedVersionUtils.getLastStableEngineVersion)(),
|
|
@@ -110,24 +86,18 @@ async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersi
|
|
|
110
86
|
}
|
|
111
87
|
}
|
|
112
88
|
}
|
|
113
|
-
|
|
114
89
|
async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger) {
|
|
115
90
|
const formDirPath = path.join(farmDirectory, "forms", gfv);
|
|
116
91
|
const formJsonPath = path.join(formDirPath, "form.json");
|
|
117
|
-
|
|
118
92
|
if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
|
|
119
93
|
logger.warning("form.json does not exists. Upgrade skipped.");
|
|
120
94
|
return;
|
|
121
95
|
}
|
|
122
|
-
|
|
123
96
|
const generatedFormDirectory = path.join(formDirPath, "form");
|
|
124
|
-
|
|
125
97
|
if (!(0, _ResolveFormInfo.isNewFormJsonFormat)(formJsonPath)) {
|
|
126
98
|
throw new Error("Файл form.json формы должен иметь новый формат зависимости. Обратитесь к расзработчикам за разъяснениями.");
|
|
127
99
|
}
|
|
128
|
-
|
|
129
100
|
const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, (0, _StaticLogger.getLogger)());
|
|
130
|
-
|
|
131
101
|
if (formConfig.build !== "ci") {
|
|
132
102
|
formConfig.build = "ci";
|
|
133
103
|
await (0, _fsExtra.writeJson)(formJsonPath, formConfig, {
|
|
@@ -135,17 +105,13 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
|
|
|
135
105
|
});
|
|
136
106
|
logger.log("Updated form.json");
|
|
137
107
|
}
|
|
138
|
-
|
|
139
108
|
if (await (0, _fsExtra.pathExists)(generatedFormDirectory)) {
|
|
140
109
|
await (0, _fsExtra.remove)(generatedFormDirectory);
|
|
141
110
|
logger.log("Removed form directory");
|
|
142
111
|
}
|
|
143
|
-
|
|
144
112
|
const formGitIgnorePath = path.join(formDirPath, ".gitignore");
|
|
145
|
-
|
|
146
113
|
if (await (0, _fsExtra.pathExists)(formGitIgnorePath)) {
|
|
147
114
|
const gitIgnoreContent = await (0, _fsExtra.readFile)(formGitIgnorePath, "utf8");
|
|
148
|
-
|
|
149
115
|
if (!gitIgnoreContent.split("\n").includes("form")) {
|
|
150
116
|
await (0, _fsExtra.writeFile)(formGitIgnorePath, gitIgnoreContent.trimRight() + "\n" + "form\n");
|
|
151
117
|
logger.log("Updated .gitignore");
|
|
@@ -155,13 +121,11 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
|
|
|
155
121
|
logger.log("Created .gitignore");
|
|
156
122
|
}
|
|
157
123
|
}
|
|
158
|
-
|
|
159
124
|
async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
|
|
160
125
|
const formDirPath = path.join(farmDirectory, "forms", gfv);
|
|
161
126
|
const formJsonPath = path.join(formDirPath, "form.json");
|
|
162
127
|
const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
|
|
163
128
|
const prereleaseVersionFormJson = await (0, _PublishedVersionUtils.getPrereleaseVersionFormJson)(preid);
|
|
164
|
-
|
|
165
129
|
if (prereleaseVersionFormJson != undefined) {
|
|
166
130
|
formConfig.dependencies = {
|
|
167
131
|
engine: prereleaseVersionFormJson,
|
|
@@ -175,4 +139,4 @@ async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
|
|
|
175
139
|
throw new Error(`Версии ${preid} не существует.`);
|
|
176
140
|
}
|
|
177
141
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybS50cyJdLCJuYW1lcyI6WyJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiZm9ybUpzb25QYXRoIiwid2FybmluZyIsImZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJlbmdpbmVWZXJzaW9uU3BlYyIsImdlbmVyYXRvclZlcnNpb25TcGVjIiwidHlwZSIsInRlc3QiLCJ2ZXJzaW9uIiwibW9kZSIsInNwYWNlcyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImJ1aWxkIiwiZm9ybUdpdElnbm9yZVBhdGgiLCJnaXRJZ25vcmVDb250ZW50Iiwic3BsaXQiLCJpbmNsdWRlcyIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFNQTs7QUFFQTs7QUFFQTs7QUFDQTs7Ozs7O0FBSU8sZUFBZUEsY0FBZixDQUNIQyxPQURHLEVBRUhDLE9BRkcsRUFHSEMsa0JBSEcsRUFJSEMsYUFKRyxFQUtVO0FBQ2IsUUFBTUMsU0FBUyxHQUFH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QUkwQix5QkFBeUIsSUFBSTdCLFNBQWpDLEVBQTRDO0FBQ3hDVyxJQUFBQSxVQUFVLENBQUNDLFlBQVgsR0FBMEI7QUFBRWIsTUFBQUEsTUFBTSxFQUFFOEIseUJBQVY7QUFBcUNoQixNQUFBQSxTQUFTLEVBQUVnQjtBQUFoRCxLQUExQjtBQUNBbkMsSUFBQUEsTUFBTSxDQUFDRyxHQUFQLENBQVksaUNBQWdDYyxVQUFVLENBQUNDLFlBQVgsQ0FBd0JiLE1BQU8sRUFBM0U7QUFDQSxVQUFNLHdCQUFVVSxZQUFWLEVBQXdCRSxVQUF4QixFQUFvQztBQUFFUyxNQUFBQSxNQUFNLEVBQUU7QUFBVixLQUFwQyxDQUFOO0FBQ0gsR0FKRCxNQUlPO0FBQ0gsVUFBTSxJQUFJQyxLQUFKLENBQVcsVUFBU2xCLEtBQU0saUJBQTFCLENBQU47QUFDSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZSwgcmVtb3ZlLCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQge1xuICAgIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uLFxuICAgIGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uLFxuICAgIGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgaXNFbmdpbmVWZXJzaW9uRXhpc3RzLFxufSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IGlzTmV3Rm9ybUpzb25Gb3JtYXQsIHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcGFyc2VDYW5keVZlcnNpb25TcGVjIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBVcGdyYWRlRm9ybU9wdGlvbnMgfSBmcm9tIFwiLi9VcGdyYWRlRm9ybU9wdGlvbnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blVwZ3JhZGVGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogVXBncmFkZUZvcm1PcHRpb25zLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybUdsb2JzID0gYXdhaXQgRm9ybUdsb2JzLnZhbGlkYXRlR2xvYnMoXG4gICAgICAgIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlU3BlY2lmaWVycyhvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSksXG4gICAgICAgIGZhcm1EaXJlY3RvcnlcbiAgICApO1xuICAgIGZvciAoY29uc3QgZ2Z2IG9mIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSkge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7Z2Z2fWApO1xuICAgICAgICBpZiAob3B0aW9ucy51c2VDaUJ1aWxkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVRvQ2lCdWlsZE1vZGUocmVzb3VyY2VzRGlyZWN0b3J5LCBmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmVuZ2luZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybUVuZ2luZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMuZW5naW5lLCBvcHRpb25zLnNraXBQcmVWZXJzaW9ucywgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnByZWlkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMucHJlaWQsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1FbmdpbmUoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGVuZ2luZVZlcnNpb246IHN0cmluZyxcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW4sXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUpO1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yVmVyc2lvblNwZWMgPSBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvcik7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICAoZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGVuZ2luZVZlcnNpb25TcGVjLnZlcnNpb24pKSB8fFxuICAgICAgICAgICAgICAgIChnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInZlcnNpb25cIiAmJiAvW2EtekEtWl0vLnRlc3QoZ2VuZXJhdG9yVmVyc2lvblNwZWMudmVyc2lvbikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoXCJmb3JtLmpzb24gZG9lcyBub3QgZXhpc3RzLiBVcGdyYWRlIHNraXBwZWQuXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkgPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKTtcbiAgICBpZiAoIWlzTmV3Rm9ybUpzb25Gb3JtYXQoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcItCk0LDQudC7IGZvcm0uanNvbiDRhNC+0YDQvNGLINC00L7Qu9C20LXQvSDQuNC80LXRgtGMINC90L7QstGL0Lkg0YTQvtGA0LzQsNGCINC30LDQstC40YHQuNC80L7RgdGC0LguINCe0LHRgNCw0YLQuNGC0LXRgdGMINC6INGA0LDRgdC30YDQsNCx0L7RgtGH0LjQutCw0Lwg0LfQsCDRgNCw0LfRitGP0YHQvdC10L3QuNGP0LzQuC5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZXRMb2dnZXIoKSk7XG4gICAgaWYgKGZvcm1Db25maWcuYnVpbGQgIT09IFwiY2lcIikge1xuICAgICAgICBmb3JtQ29uZmlnLmJ1aWxkID0gXCJjaVwiO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlVwZGF0ZWQgZm9ybS5qc29uXCIpO1xuICAgIH1cbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5KSkge1xuICAgICAgICBhd2FpdCByZW1vdmUoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIGZvcm0gZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR2l0SWdub3JlUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1HaXRJZ25vcmVQYXRoKSkge1xuICAgICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgaWYgKCFnaXRJZ25vcmVDb250ZW50LnNwbGl0KFwiXFxuXCIpLmluY2x1ZGVzKFwiZm9ybVwiKSkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50LnRyaW1SaWdodCgpICsgXCJcXG5cIiArIFwiZm9ybVxcblwiKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwiZm9ybVxcblwiKTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkNyZWF0ZWQgLmdpdGlnbm9yZVwiKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgcHJlaWQ6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgY29uc3QgcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiA9IGF3YWl0IGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24ocHJlaWQpO1xuXG4gICAgaWYgKHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sIGdlbmVyYXRvcjogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHByZXJlbGVhc2UgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQktC10YDRgdC40LggJHtwcmVpZH0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICB9XG59XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5VcGdyYWRlRm9ybShcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFVwZ3JhZGVGb3JtT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQ2lCdWlsZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSwgZ2Z2LCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbmdpbmUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1FbmdpbmUoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLmVuZ2luZSwgb3B0aW9ucy5za2lwUHJlVmVyc2lvbnMsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5wcmVpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVByZXJlbGVhc2UoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLnByZWlkLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtRW5naW5lKFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBlbmdpbmVWZXJzaW9uOiBzdHJpbmcsXG4gICAgc2tpcFByZVZlcnNpb25zOiBib29sZWFuLFxuICAgIGxvZ2dlcjogSUxvZ2dlclxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb246IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGlmIChza2lwUHJlVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkICYmIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uU3BlYyA9IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZW5naW5lKTtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYXRvclZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInByZVwiIHx8XG4gICAgICAgICAgICAgICAgKGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwidmVyc2lvblwiICYmIC9bYS16QS1aXS8udGVzdChlbmdpbmVWZXJzaW9uU3BlYy52ZXJzaW9uKSkgfHxcbiAgICAgICAgICAgICAgICAoZ2VuZXJhdG9yVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGdlbmVyYXRvclZlcnNpb25TcGVjLnZlcnNpb24pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgXCJGb3JtIHZlcnNpb24gaGFzIHByZXJlbGVhc2UgdmVyc2lvbjogVXBncmFkZSBza2lwcGVkIGR1ZSB0byBmbGFnIHNraXBQcmVWZXJzaW9ucyAoLS1za2lwLXByZS12ZXJzaW9ucykgc3BlY2lmaWVkXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcIm5vLWVkaXRvclwiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZvcm1Db25maWcubW9kZSA9PT0gXCJjb3B5LWxlZ2FjeS1wcmVidWlsdC1yZXNvdXJjZXNcIikge1xuICAgICAgICBsb2dnZXIubG9nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGVkaXRvcjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlbmdpbmVWZXJzaW9uID09PSBcImxhdGVzdFwiKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhd2FpdCBpc0VuZ2luZVZlcnNpb25FeGlzdHMoZW5naW5lVmVyc2lvbikpIHtcbiAgICAgICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IGVuZ2luZVZlcnNpb24sIGdlbmVyYXRvcjogZW5naW5lVmVyc2lvbiB9O1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke2VuZ2luZVZlcnNpb259INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gPSBhd2FpdCBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHByZWlkKTtcblxuICAgIGlmIChwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHsgZW5naW5lOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLCBnZW5lcmF0b3I6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gfTtcbiAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBwcmVyZWxlYXNlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7cHJlaWR9INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFF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
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.upgradeFormCommandDefinition = void 0;
|
|
7
|
-
|
|
8
7
|
var _CommandBasedOptionsParser = require("../../Commons/Options/CommandBasedOptionsParser");
|
|
9
|
-
|
|
10
8
|
var _CommonOptionDefintions = require("../CommonOptions/CommonOptionDefintions");
|
|
11
|
-
|
|
12
9
|
const localServerOptionsDefinition = (0, _CommandBasedOptionsParser.optionsDefinition)({
|
|
13
10
|
alias: "g",
|
|
14
11
|
name: "gfvs",
|
|
@@ -79,4 +76,4 @@ candy upgrade --engine latest 9900101
|
|
|
79
76
|
`.trim()
|
|
80
77
|
});
|
|
81
78
|
exports.upgradeFormCommandDefinition = upgradeFormCommandDefinition;
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsInJlcXVpcmUiLCJfQ29tbW9uT3B0aW9uRGVmaW50aW9ucyIsImxvY2FsU2VydmVyT3B0aW9uc0RlZmluaXRpb24iLCJvcHRpb25zRGVmaW5pdGlvbiIsImFsaWFzIiwibmFtZSIsImRlZmF1bHRWYWx1ZSIsImZvcm1HbG9icyIsInBhcnNlIiwiaW5wdXQiLCJkZWZhdWx0T3B0aW9uIiwibXVsdGlwbGUiLCJkZXNjcmlwdGlvbiIsImRvZXNOb3RSZXF1aXJlVmFsdWUiLCJ1c2VDaUJ1aWxkIiwieCIsInNraXBQcmVWZXJzaW9ucyIsImVuZ2luZSIsInVuZGVmaW5lZCIsInByZWlkIiwiZGV2TW9kZU9wdGlvbiIsImxvZ1ZlcmJvc2l0eU9wdGlvbiIsInVwZ3JhZGVGb3JtQ29tbWFuZERlZmluaXRpb24iLCJjb21tYW5kRGVmaW5pdGlvbiIsImV4YW1wbGVzIiwidHJpbSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vVXBncmFkZUZvcm1PcHRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1hbmREZWZpbml0aW9uLCBvcHRpb25zRGVmaW5pdGlvbiB9IGZyb20gXCIuLi8uLi9Db21tb25zL09wdGlvbnMvQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlclwiO1xuaW1wb3J0IHsgQ29tbW9uT3B0aW9ucyB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbnNcIjtcbmltcG9ydCB7IGRldk1vZGVPcHRpb24sIGxvZ1ZlcmJvc2l0eU9wdGlvbiB9IGZyb20gXCIuLi9Db21tb25PcHRpb25zL0NvbW1vbk9wdGlvbkRlZmludGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVcGdyYWRlRm9ybU9wdGlvbnMgZXh0ZW5kcyBDb21tb25PcHRpb25zIHtcbiAgICBmb3JtR2xvYnM6IHN0cmluZ1tdO1xuICAgIHVzZUNpQnVpbGQ6IGJvb2xlYW47XG4gICAgZW5naW5lOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgcHJlaWQ6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW47XG59XG5cbmNvbnN0IGxvY2FsU2VydmVyT3B0aW9uc0RlZmluaXRpb24gPSBvcHRpb25zRGVmaW5pdGlvbihcbiAgICB7XG4gICAgICAgIGFsaWFzOiBcImdcIixcbiAgICAgICAgbmFtZTogXCJnZnZzXCIsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBmb3JtR2xvYnM6IFtdIH0sXG4gICAgICAgIHBhcnNlOiAoaW5wdXQ6IHN0cmluZ1tdKSA9PiAoeyBmb3JtR2xvYnM6IGlucHV0IH0pLFxuICAgICAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J7QtNC90LAg0LjQu9C4INC90LXRgdC60L7Qu9GM0LrQviBHRlYg0LjQu9C4IEdGVi3QvNCw0YHQvtC6INC00LvRjyDQvtCx0L3QvtCy0LvQtdC90LjRjy5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJ1c2UtY2ktYnVpbGRcIixcbiAgICAgICAgZG9lc05vdFJlcXVpcmVWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IHVzZUNpQnVpbGQ6IGZhbHNlIH0sXG4gICAgICAgIHBhcnNlOiAoeDogYm9vbGVhbikgPT4gKHsgdXNlQ2lCdWlsZDogeCB9KSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwi0J/RgNC40LPQvtGC0L7QstC40YLRjCDRhNC+0YDQvNGDINC6INGB0LHQvtGA0LrQtSDQvdCwIENJLCDQsdC10Lcg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LvQvtC60LDQu9GM0L3QvtC5INC/0LXRgNC10YHQsdC+0YDQutC4LlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcInNraXAtcHJlLXZlcnNpb25zXCIsXG4gICAgICAgIGRvZXNOb3RSZXF1aXJlVmFsdWU6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBza2lwUHJlVmVyc2lvbnM6IGZhbHNlIH0sXG4gICAgICAgIHBhcnNlOiAoeDogYm9vbGVhbikgPT4gKHsgc2tpcFByZVZlcnNpb25zOiB4IH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCLQn9GA0Lgg0L7QsdC90L7QstC70LXQvdC40Lgg0LLQtdGA0YHQuNC5INGE0L7RgNC8INC90LUg0L7QsdC90L7QstC70Y/RgtGMINGE0L7RgNC80Ysg0YEg0L3QtdGB0YLQsNCx0LjQu9GM0L3Ri9C80Lgg0LLQtdGA0YHQuNGP0LzQuC5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgbmFtZTogXCJlbmdpbmVcIixcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB7IGVuZ2luZTogdW5kZWZpbmVkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICBwYXJzZTogKHg6IHN0cmluZykgPT4gKHsgZW5naW5lOiB4IH0pLFxuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIFwi0J7QsdC90L7QstC70Y/QtdGCINC00LLQuNC20L7QuiDQtNC+INC30LDQtNCw0L3QvdC+0Lkg0LLQtdGA0YHQuNC4LiDQnNC+0LbQvdC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQutC+0LrRgNC10YLQvdGD0Y4g0LLQtdGA0YHQuNGOINC00LLQuNC20LrQsCAo0L3QsNC/0YDQuNC80LXRgCwgMC40LjgyKSDQuNC70LggbGF0ZXN0LCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviDQv9C+0YHQu9C10LTQvdC10Lkg0YHRgtCw0LHQuNC70YzQvdC+0Lkg0LLQtdGA0YHQuNC4LlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiBcInByZWlkXCIsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogeyBwcmVpZDogdW5kZWZpbmVkIGFzIHN0cmluZyB8IHVuZGVmaW5lZCB9LFxuICAgICAgICBwYXJzZTogKHg6IHN0cmluZykgPT4gKHsgcHJlaWQ6IHggfSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcItCe0LHQvdC+0LLQu9GP0LXRgiDQtNCy0LjQttC+0Log0LTQviDQv9C+0YHQu9C10LTQvdC10Lkg0L/RgNC10YDQtdC70LjQt9C90L7QuSDQstC10YDRgdC40Lgg0YPQutCw0LfQsNC90L3QvtC5INCyIHByZWlkLlwiLFxuICAgIH0sXG4gICAgZGV2TW9kZU9wdGlvbixcbiAgICBsb2dWZXJib3NpdHlPcHRpb25cbik7XG5cbmV4cG9ydCBjb25zdCB1cGdyYWRlRm9ybUNvbW1hbmREZWZpbml0aW9uID0gY29tbWFuZERlZmluaXRpb248XCJ1cGdyYWRlXCIsIFVwZ3JhZGVGb3JtT3B0aW9ucz4oXG4gICAgXCJ1cGdyYWRlXCIsXG4gICAgXCJ1cGdyYWRlXCIsXG4gICAgbG9jYWxTZXJ2ZXJPcHRpb25zRGVmaW5pdGlvbixcbiAgICB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcItCe0LHQvdC+0LLQu9C10L3QuNC1INGE0L7RgNC80LDRgtCwINGE0L7RgNC8INC40LvQuCDRgNC10LbQuNC80LAg0L7QtNC90L7QuSDQuNC70Lgg0L3QtdGB0LrQvtC70YzQutC40YUg0YTQvtGA0LwuXCIsXG4gICAgICAgIGV4YW1wbGVzOiBgXG4jIyMg0J/QtdGA0LXQstC+0LQg0YTQvtGA0LzRiyDQvdCwINGB0LHQvtGA0LrRgyDQsiBDSVxuXG7QktGL0L/QvtC70L3QuNGC0Yw6XG5cXGBcXGBcXGBcbmNhbmR5IHVwZ3JhZGUgLS11c2UtY2ktYnVpbGQgOTkwMDEwMVxuXFxgXFxgXFxgXG7QrdGC0LAg0LrQvtC80LDQvdC00LAg0YPQtNCw0LvQuNGCINC4INC30LDQuNCz0L3QvtGA0LjRgiDQs9C10L3QtdGA0LjRgNGD0LXQvNGL0LUg0YTQsNC50LvRiyDQsiDQutCw0YLQsNC70L7Qs9C1IGZhcm0g0Lgg0L/QvtC80LXQvdC40YIg0YTQvtGA0LzRgyDQutCw0Log0YHQvtCx0LjRgNCw0LXQvNGD0Y4g0L3QsCBDSS5cbtCf0L7RgdC70LUg0Y3RgtC+0LPQviDQvdC1INGC0YDQtdCx0YPQtdGC0YHRjyDQtNCw0LvRgtGMINC60L7QvNC40YLRiyDQsiDRgNC10L/QvtC30LjRgtC+0YDQuNC5IHJlc291cmNlcy5cblxu0J7QsdC90L7QstC70Y/RgtGMINCy0LXRgNGB0LjRjiDQtNCy0LjQttC60LAg0YTQvtGA0LzRiyDQvdCw0LTQviDQutC+0LzQsNC90LTQvtC5OlxuXFxgXFxgXFxgXG5jYW5keSB1cGdyYWRlIC0tZW5naW5lIGxhdGVzdCA5OTAwMTAxXG5cXGBcXGBcXGBcbmAudHJpbSgpLFxuICAgIH1cbik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLDBCQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyx1QkFBQSxHQUFBRCxPQUFBO0FBVUEsTUFBTUUsNEJBQTRCLEdBQUcsSUFBQUMsNENBQWlCLEVBQ2xEO0VBQ0lDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxNQUFNO0VBQ1pDLFlBQVksRUFBRTtJQUFFQyxTQUFTLEVBQUU7RUFBRyxDQUFDO0VBQy9CQyxLQUFLLEVBQUdDLEtBQWUsS0FBTTtJQUFFRixTQUFTLEVBQUVFO0VBQU0sQ0FBQyxDQUFDO0VBQ2xEQyxhQUFhLEVBQUUsSUFBSTtFQUNuQkMsUUFBUSxFQUFFLElBQUk7RUFDZEMsV0FBVyxFQUFFO0FBQ2pCLENBQUMsRUFDRDtFQUNJUCxJQUFJLEVBQUUsY0FBYztFQUNwQlEsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QlAsWUFBWSxFQUFFO0lBQUVRLFVBQVUsRUFBRTtFQUFNLENBQUM7RUFDbkNOLEtBQUssRUFBR08sQ0FBVSxLQUFNO0lBQUVELFVBQVUsRUFBRUM7RUFBRSxDQUFDLENBQUM7RUFDMUNILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0Q7RUFDSVAsSUFBSSxFQUFFLG1CQUFtQjtFQUN6QlEsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QlAsWUFBWSxFQUFFO0lBQUVVLGVBQWUsRUFBRTtFQUFNLENBQUM7RUFDeENSLEtBQUssRUFBR08sQ0FBVSxLQUFNO0lBQUVDLGVBQWUsRUFBRUQ7RUFBRSxDQUFDLENBQUM7RUFDL0NILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0Q7RUFDSVAsSUFBSSxFQUFFLFFBQVE7RUFDZEMsWUFBWSxFQUFFO0lBQUVXLE1BQU0sRUFBRUM7RUFBZ0MsQ0FBQztFQUN6RFYsS0FBSyxFQUFHTyxDQUFTLEtBQU07SUFBRUUsTUFBTSxFQUFFRjtFQUFFLENBQUMsQ0FBQztFQUNyQ0gsV0FBVyxFQUNQO0FBQ1IsQ0FBQyxFQUNEO0VBQ0lQLElBQUksRUFBRSxPQUFPO0VBQ2JDLFlBQVksRUFBRTtJQUFFYSxLQUFLLEVBQUVEO0VBQWdDLENBQUM7RUFDeERWLEtBQUssRUFBR08sQ0FBUyxLQUFNO0lBQUVJLEtBQUssRUFBRUo7RUFBRSxDQUFDLENBQUM7RUFDcENILFdBQVcsRUFBRTtBQUNqQixDQUFDLEVBQ0RRLHFDQUFhLEVBQ2JDLDBDQUNKLENBQUM7QUFFTSxNQUFNQyw0QkFBNEIsR0FBRyxJQUFBQyw0Q0FBaUIsRUFDekQsU0FBUyxFQUNULFNBQVMsRUFDVHJCLDRCQUE0QixFQUM1QjtFQUNJVSxXQUFXLEVBQUUsK0RBQStEO0VBQzVFWSxRQUFRLEVBQUc7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLENBQUNDLElBQUksQ0FBQztBQUNILENBQ0osQ0FBQztBQUFDQyxPQUFBLENBQUFKLDRCQUFBLEdBQUFBLDRCQUFBIn0=
|
|
@@ -1,100 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/features/array/flat");
|
|
6
|
-
|
|
7
5
|
require("core-js/proposals/iterator-helpers");
|
|
8
|
-
|
|
9
6
|
require("core-js/stable");
|
|
10
|
-
|
|
11
7
|
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
|
|
13
8
|
var _fsExtra = require("fs-extra");
|
|
14
|
-
|
|
15
9
|
require("reflect-metadata");
|
|
16
|
-
|
|
17
10
|
require("regenerator-runtime/runtime");
|
|
18
|
-
|
|
19
11
|
var _shelljs = require("shelljs");
|
|
20
|
-
|
|
21
12
|
var _RunBuildForms = require("./CLICommands/BuildForms/RunBuildForms");
|
|
22
|
-
|
|
23
13
|
var _RunBuildServer = require("./CLICommands/BuildServer/RunBuildServer");
|
|
24
|
-
|
|
25
14
|
var _RunDevBuild = require("./CLICommands/DevBuild/RunDevBuild");
|
|
26
|
-
|
|
27
15
|
var _RunFormStats = require("./CLICommands/FormStats/RunFormStats");
|
|
28
|
-
|
|
29
16
|
var _RunInitForm = require("./CLICommands/InitForm/RunInitForm");
|
|
30
|
-
|
|
31
17
|
var _RunLocalization = require("./CLICommands/Localization/RunLocalization");
|
|
32
|
-
|
|
33
18
|
var _RunUpgradeForm = require("./CLICommands/UpgradeForm/RunUpgradeForm");
|
|
34
|
-
|
|
35
19
|
var _ConsoleApplication = require("./Commons/ConsoleApplication/ConsoleApplication");
|
|
36
|
-
|
|
37
20
|
var _StaticLogger = require("./Commons/Logging/StaticLogger");
|
|
38
|
-
|
|
39
21
|
var _CandyToolOptions = require("./Options/CandyToolOptions");
|
|
40
|
-
|
|
41
22
|
var _ReadFarmConfig = require("./ReadFarmConfig");
|
|
42
|
-
|
|
43
23
|
var _SelfUpdate = require("./SelfUpdate");
|
|
44
|
-
|
|
24
|
+
var _RunRenameFiles = require("./CLICommands/RenameFiles/RunRenameFiles");
|
|
45
25
|
_shelljs.config.fatal = true;
|
|
46
|
-
|
|
47
26
|
function remoteInspectFlagToDisableDebuggerInChildProcess() {
|
|
48
27
|
const debugArgIdx = process.execArgv.indexOf("--inspect-brk");
|
|
49
|
-
|
|
50
28
|
if (debugArgIdx !== -1) {
|
|
51
29
|
process.execArgv.splice(debugArgIdx, 1);
|
|
52
30
|
}
|
|
53
|
-
|
|
54
31
|
const debugArg2Idx = process.execArgv.indexOf("--inspect");
|
|
55
|
-
|
|
56
32
|
if (debugArg2Idx !== -1) {
|
|
57
33
|
process.execArgv.splice(debugArg2Idx, 1);
|
|
58
34
|
}
|
|
59
35
|
}
|
|
60
|
-
|
|
61
36
|
async function removeTemporaryWebpackConfigFiles(farmDirectory, logger) {
|
|
62
37
|
const files = await (0, _fsExtra.readdir)(farmDirectory);
|
|
63
38
|
const oldTempFileNames = files.filter(x => x.endsWith(".candy-tmp.webpack.config.js"));
|
|
64
|
-
|
|
65
39
|
if (oldTempFileNames.length > 0) {
|
|
66
40
|
logger.log("Removing old webpack.config.js files");
|
|
67
|
-
|
|
68
41
|
for (const fileName of oldTempFileNames) {
|
|
69
42
|
await (0, _fsExtra.unlink)(_path.default.join(farmDirectory, fileName));
|
|
70
43
|
}
|
|
71
|
-
|
|
72
44
|
logger.log("Removed old webpack.config.js files");
|
|
73
45
|
}
|
|
74
46
|
}
|
|
75
|
-
|
|
76
47
|
function validateFarmConfig(farmDirectory) {
|
|
77
48
|
const farmConfig = (0, _ReadFarmConfig.readFarmConfig)(farmDirectory);
|
|
78
|
-
|
|
79
49
|
if (farmConfig.engineDirectory == undefined) {
|
|
80
50
|
throw new Error("EngineDirectory is not specified");
|
|
81
51
|
}
|
|
82
|
-
|
|
83
52
|
if (farmConfig.resourcesDirectory == undefined) {
|
|
84
53
|
throw new Error("ResourcesDirectory is not specified");
|
|
85
54
|
}
|
|
86
|
-
|
|
87
55
|
const candyModulesDirectory = _path.default.resolve(farmDirectory, "..", ".candy_modules");
|
|
88
|
-
|
|
89
|
-
|
|
56
|
+
return {
|
|
57
|
+
...farmConfig,
|
|
90
58
|
farmDirectory: farmDirectory,
|
|
91
59
|
candyModulesDirectory: candyModulesDirectory
|
|
92
60
|
};
|
|
93
61
|
}
|
|
94
|
-
|
|
95
62
|
const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, currentDir, context) => {
|
|
96
63
|
const result = [];
|
|
97
|
-
|
|
98
64
|
for (const pth of allFarmDirectories) {
|
|
99
65
|
if (await (0, _fsExtra.pathExists)(_path.default.join(pth, "config.js"))) {
|
|
100
66
|
await removeTemporaryWebpackConfigFiles(pth, context.logger);
|
|
@@ -104,19 +70,15 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
104
70
|
// из за чего, внутри раннера напилен хитрый механизм поиска путей формы. Перепиливать все механики
|
|
105
71
|
// совсем не хочется, поэтому для нас, считаю поднятие до уровня engine вполне приемлемым решением
|
|
106
72
|
const pathToFarm = _path.default.join(currentDir, "..", "..", "..", pth);
|
|
107
|
-
|
|
108
73
|
if (!(await (0, _fsExtra.pathExists)(pathToFarm))) {
|
|
109
74
|
throw Error(`allFarmDirectories path = ${pathToFarm} not exist`);
|
|
110
75
|
}
|
|
111
|
-
|
|
112
76
|
await removeTemporaryWebpackConfigFiles(pathToFarm, context.logger);
|
|
113
77
|
result.push(validateFarmConfig(pathToFarm));
|
|
114
78
|
}
|
|
115
79
|
}
|
|
116
|
-
|
|
117
80
|
return result;
|
|
118
81
|
};
|
|
119
|
-
|
|
120
82
|
(0, _ConsoleApplication.runConsoleApplication)(async (argv, context) => {
|
|
121
83
|
remoteInspectFlagToDisableDebuggerInChildProcess();
|
|
122
84
|
context.logger.log("@kontur.candy/tools: " + (await (0, _SelfUpdate.getCurrentVersion)()));
|
|
@@ -127,62 +89,51 @@ const validateAndPrepareFarmDirectoriesPath = async (allFarmDirectories, current
|
|
|
127
89
|
const farmDirectory = process.cwd();
|
|
128
90
|
await removeTemporaryWebpackConfigFiles(farmDirectory, context.logger);
|
|
129
91
|
const farmConfig = (0, _ReadFarmConfig.readFarmConfig)(farmDirectory);
|
|
130
|
-
|
|
131
92
|
if (farmConfig.engineDirectory == undefined) {
|
|
132
93
|
throw new Error("EngineDirectory is not specified");
|
|
133
94
|
}
|
|
134
|
-
|
|
135
95
|
if (farmConfig.resourcesDirectory == undefined) {
|
|
136
96
|
throw new Error("ResourcesDirectory is not specified");
|
|
137
97
|
}
|
|
138
|
-
|
|
139
98
|
const engineDirectory = _path.default.resolve(farmConfig.engineDirectory);
|
|
140
|
-
|
|
141
99
|
const resourcesDirectory = _path.default.resolve(farmConfig.resourcesDirectory);
|
|
142
|
-
|
|
143
100
|
const candyModulesDirectory = _path.default.resolve(farmDirectory, "..", ".candy_modules");
|
|
144
|
-
|
|
145
101
|
if (parsedArgs.type === "build-server" || parsedArgs.type === "dev-build-server") {
|
|
146
102
|
const allFarmDirectories = parsedArgs.options.allFarmsDir;
|
|
147
103
|
context.logger.warning(`allFarmDirectories = ${parsedArgs.options.allFarmsDir}`);
|
|
148
104
|
let allFarmConfig;
|
|
149
|
-
|
|
150
105
|
if (Array.isArray(allFarmDirectories) && allFarmDirectories.length > 0) {
|
|
151
106
|
allFarmConfig = await validateAndPrepareFarmDirectoriesPath(allFarmDirectories, farmDirectory, context);
|
|
152
107
|
} else {
|
|
153
108
|
context.logger.warning(`Use default candyFarm path dir = ${farmDirectory}`);
|
|
154
109
|
allFarmConfig = await validateAndPrepareFarmDirectoriesPath([farmDirectory], farmDirectory, context);
|
|
155
110
|
}
|
|
156
|
-
|
|
157
111
|
if (parsedArgs.type === "dev-build-server") {
|
|
158
112
|
await (0, _RunBuildServer.runDevBuildServer)(context, parsedArgs.options, allFarmConfig);
|
|
159
113
|
} else {
|
|
160
114
|
await (0, _RunBuildServer.runBuildServer)(context, parsedArgs.options, allFarmConfig);
|
|
161
115
|
}
|
|
162
116
|
}
|
|
163
|
-
|
|
164
117
|
if (parsedArgs.type === "build") {
|
|
165
118
|
await (0, _RunBuildForms.runBuildForms)(context, parsedArgs.options, farmDirectory, resourcesDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
|
|
166
119
|
}
|
|
167
|
-
|
|
168
120
|
if (parsedArgs.type === "dev-build") {
|
|
169
121
|
await (0, _RunDevBuild.runDevBuild)(context, parsedArgs.options, engineDirectory, resourcesDirectory, farmDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
|
|
170
122
|
}
|
|
171
|
-
|
|
172
123
|
if (parsedArgs.type === "form-stats") {
|
|
173
124
|
await (0, _RunFormStats.runFormStats)(context, parsedArgs.options, farmDirectory);
|
|
174
125
|
}
|
|
175
|
-
|
|
176
126
|
if (parsedArgs.type === "upgrade") {
|
|
177
127
|
await (0, _RunUpgradeForm.runUpgradeForm)(context, parsedArgs.options, resourcesDirectory, farmDirectory);
|
|
178
128
|
}
|
|
179
|
-
|
|
129
|
+
if (parsedArgs.type === "rename") {
|
|
130
|
+
await (0, _RunRenameFiles.runRenameFiles)(context, parsedArgs.options, resourcesDirectory, farmDirectory);
|
|
131
|
+
}
|
|
180
132
|
if (parsedArgs.type === "localize") {
|
|
181
133
|
await (0, _RunLocalization.runLocalization)(context, parsedArgs.options, farmDirectory, engineDirectory, candyModulesDirectory, farmConfig.hlFarmDirectoryPath);
|
|
182
134
|
}
|
|
183
|
-
|
|
184
135
|
if (parsedArgs.type === "init-form") {
|
|
185
136
|
await (0, _RunInitForm.runInitForm)(context, parsedArgs.options, farmDirectory);
|
|
186
137
|
}
|
|
187
138
|
});
|
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwidmFsaWRhdGVGYXJtQ29uZmlnIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInB1c2giLCJwYXRoVG9GYXJtIiwiYXJndiIsInBhcnNlZEFyZ3MiLCJzZXRDb25zb2xlTG9nZ2luZ1ZlcmJvc2l0eSIsIm9wdGlvbnMiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwidHlwZSIsImFsbEZhcm1zRGlyIiwid2FybmluZyIsImFsbEZhcm1Db25maWciLCJBcnJheSIsImlzQXJyYXkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FB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QUFvQixXQUF4QixFQUFxQztBQUNqQyxVQUFNLDhCQUFZWixPQUFaLEVBQXFCTSxVQUFVLENBQUNFLE9BQWhDLEVBQXlDL0IsYUFBekMsQ0FBTjtBQUNIO0FBQ0osQ0F0RkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcImNvcmUtanMvc3RhYmxlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkZGlyLCB1bmxpbmsgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHJ1bkNvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvblwiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBzZXRMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcblxuY29uZmlnLmZhdGFsID0gdHJ1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBGYXJtQ29uZmlnIHtcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgZW5naW5lRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZhcm1Db25maWcoZmFybURpcmVjdG9yeTogc3RyaW5nKTogRmFybUNvbmZpZyB7XG4gICAgY29uc3QgZmFybUNvbmZpZyA9IHJlYWRGYXJtQ29uZmlnKGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgaWYgKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmdpbmVEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG4gICAgaWYgKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXNvdXJjZXNEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZhcm1Db25maWcsXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmNvbnN0IHZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGggPSBhc3luYyAoXG4gICAgYWxsRmFybURpcmVjdG9yaWVzOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50RGlyOiBzdHJpbmcsXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFxuKTogUHJvbWlzZTxGYXJtQ29uZmlnW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEZhcm1Db25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHRoIG9mIGFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocHRoLCBcImNvbmZpZy5qc1wiKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwdGgsIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbGlkYXRlRmFybUNvbmZpZyhwdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCS0YHQtSDQtNC10LvQviDQsiDRgtC+0LwsINGH0YLQviDRgdCy0Y/Qt9C60LAgc2VydmljZS1ydW5uZXItMiArIHRvb2xzINC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQsiDQv9Cw0L/QutC1INGBINGE0L7RgNC80L7QuVxuICAgICAgICAgICAgLy8g0LjQtyDQt9CwINGH0LXQs9C+LCDQstC90YPRgtGA0Lgg0YDQsNC90L3QtdGA0LAg0L3QsNC/0LjQu9C10L0g0YXQuNGC0YDRi9C5INC80LXRhdCw0L3QuNC30Lwg0L/QvtC40YHQutCwINC/0YPRgtC10Lkg0YTQvtGA0LzRiy4g0J/QtdGA0LXQv9C40LvQuNCy0LDRgtGMINCy0YHQtSDQvNC10YXQsNC90LjQutC4XG4gICAgICAgICAgICAvLyDRgdC+0LLRgdC10Lwg0L3QtSDRhdC+0YfQtdGC0YHRjywg0L/QvtGN0YLQvtC80YMg0LTQu9GPINC90LDRgSwg0YHRh9C40YLQsNGOINC/0L7QtNC90Y/RgtC40LUg0LTQviDRg9GA0L7QstC90Y8gZW5naW5lINCy0L/QvtC70L3QtSDQv9GA0LjQtdC80LvQtdC80YvQvCDRgNC10YjQtdC90LjQtdC8XG4gICAgICAgICAgICBjb25zdCBwYXRoVG9GYXJtID0gcGF0aC5qb2luKGN1cnJlbnREaXIsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIsIHB0aCk7XG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGhUb0Zhcm0pKSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBhbGxGYXJtRGlyZWN0b3JpZXMgcGF0aCA9ICR7cGF0aFRvRmFybX0gbm90IGV4aXN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMocGF0aFRvRmFybSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHBhdGhUb0Zhcm0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwibG9jYWxpemVcIikge1xuICAgICAgICBhd2FpdCBydW5Mb2NhbGl6YXRpb24oXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgZmFybURpcmVjdG9yeSk7XG4gICAgfVxufSk7XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXF1aXJlIiwiX3BhdGgiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2ZzRXh0cmEiLCJfc2hlbGxqcyIsIl9SdW5CdWlsZEZvcm1zIiwiX1J1bkJ1aWxkU2VydmVyIiwiX1J1bkRldkJ1aWxkIiwiX1J1bkZvcm1TdGF0cyIsIl9SdW5Jbml0Rm9ybSIsIl9SdW5Mb2NhbGl6YXRpb24iLCJfUnVuVXBncmFkZUZvcm0iLCJfQ29uc29sZUFwcGxpY2F0aW9uIiwiX1N0YXRpY0xvZ2dlciIsIl9DYW5keVRvb2xPcHRpb25zIiwiX1JlYWRGYXJtQ29uZmlnIiwiX1NlbGZVcGRhdGUiLCJfUnVuUmVuYW1lRmlsZXMiLCJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsInJlYWRkaXIiLCJvbGRUZW1wRmlsZU5hbWVzIiwiZmlsdGVyIiwieCIsImVuZHNXaXRoIiwibGVuZ3RoIiwibG9nIiwiZmlsZU5hbWUiLCJ1bmxpbmsiLCJwYXRoIiwiam9pbiIsInZhbGlkYXRlRmFybUNvbmZpZyIsImZhcm1Db25maWciLCJyZWFkRmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiY2FuZHlNb2R1bGVzRGlyZWN0b3J5IiwicmVzb2x2ZSIsInZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGgiLCJhbGxGYXJtRGlyZWN0b3JpZXMiLCJjdXJyZW50RGlyIiwiY29udGV4dCIsInJlc3VsdCIsInB0aCIsInBhdGhFeGlzdHMiLCJwdXNoIiwicGF0aFRvRmFybSIsInJ1bkNvbnNvbGVBcHBsaWNhdGlvbiIsImFyZ3YiLCJnZXRDdXJyZW50VmVyc2lvbiIsInBhcnNlZEFyZ3MiLCJwYXJzZU9wdGlvbnMiLCJzZXRDb25zb2xlTG9nZ2luZ1ZlcmJvc2l0eSIsIm9wdGlvbnMiLCJsb2dWZXJib3NpdHkiLCJzZXRMb2dnZXIiLCJ2ZXJib3NlIiwiY3dkIiwidHlwZSIsImFsbEZhcm1zRGlyIiwid2FybmluZyIsImFsbEZhcm1Db25maWciLCJBcnJheSIsImlzQXJyYXkiLCJydW5EZXZCdWlsZFNlcnZlciIsInJ1bkJ1aWxkU2VydmVyIiwicnVuQnVpbGRGb3JtcyIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJydW5EZXZCdWlsZCIsInJ1bkZvcm1TdGF0cyIsInJ1blVwZ3JhZGVGb3JtIiwicnVuUmVuYW1lRmlsZXMiLCJydW5Mb2NhbGl6YXRpb24iLCJydW5Jbml0Rm9ybSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcImNvcmUtanMvc3RhYmxlXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkZGlyLCB1bmxpbmsgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHJ1bkNvbnNvbGVBcHBsaWNhdGlvbiB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvblwiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBzZXRMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvU3RhdGljTG9nZ2VyXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IHJ1blJlbmFtZUZpbGVzIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvUmVuYW1lRmlsZXMvUnVuUmVuYW1lRmlsZXNcIjtcblxuY29uZmlnLmZhdGFsID0gdHJ1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBGYXJtQ29uZmlnIHtcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgZW5naW5lRGlyZWN0b3J5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZhcm1Db25maWcoZmFybURpcmVjdG9yeTogc3RyaW5nKTogRmFybUNvbmZpZyB7XG4gICAgY29uc3QgZmFybUNvbmZpZyA9IHJlYWRGYXJtQ29uZmlnKGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgaWYgKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbmdpbmVEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG4gICAgaWYgKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXNvdXJjZXNEaXJlY3RvcnkgaXMgbm90IHNwZWNpZmllZFwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZhcm1Db25maWcsXG4gICAgICAgIGZhcm1EaXJlY3Rvcnk6IGZhcm1EaXJlY3RvcnksXG4gICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgIH07XG59XG5cbmNvbnN0IHZhbGlkYXRlQW5kUHJlcGFyZUZhcm1EaXJlY3Rvcmllc1BhdGggPSBhc3luYyAoXG4gICAgYWxsRmFybURpcmVjdG9yaWVzOiBzdHJpbmdbXSxcbiAgICBjdXJyZW50RGlyOiBzdHJpbmcsXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dFxuKTogUHJvbWlzZTxGYXJtQ29uZmlnW10+ID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IEZhcm1Db25maWdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcHRoIG9mIGFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocHRoLCBcImNvbmZpZy5qc1wiKSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhwdGgsIGNvbnRleHQubG9nZ2VyKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHZhbGlkYXRlRmFybUNvbmZpZyhwdGgpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCS0YHQtSDQtNC10LvQviDQsiDRgtC+0LwsINGH0YLQviDRgdCy0Y/Qt9C60LAgc2VydmljZS1ydW5uZXItMiArIHRvb2xzINC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQsiDQv9Cw0L/QutC1INGBINGE0L7RgNC80L7QuVxuICAgICAgICAgICAgLy8g0LjQtyDQt9CwINGH0LXQs9C+LCDQstC90YPRgtGA0Lgg0YDQsNC90L3QtdGA0LAg0L3QsNC/0LjQu9C10L0g0YXQuNGC0YDRi9C5INC80LXRhdCw0L3QuNC30Lwg0L/QvtC40YHQutCwINC/0YPRgtC10Lkg0YTQvtGA0LzRiy4g0J/QtdGA0LXQv9C40LvQuNCy0LDRgtGMINCy0YHQtSDQvNC10YXQsNC90LjQutC4XG4gICAgICAgICAgICAvLyDRgdC+0LLRgdC10Lwg0L3QtSDRhdC+0YfQtdGC0YHRjywg0L/QvtGN0YLQvtC80YMg0LTQu9GPINC90LDRgSwg0YHRh9C40YLQsNGOINC/0L7QtNC90Y/RgtC40LUg0LTQviDRg9GA0L7QstC90Y8gZW5naW5lINCy0L/QvtC70L3QtSDQv9GA0LjQtdC80LvQtdC80YvQvCDRgNC10YjQtdC90LjQtdC8XG4gICAgICAgICAgICBjb25zdCBwYXRoVG9GYXJtID0gcGF0aC5qb2luKGN1cnJlbnREaXIsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIsIHB0aCk7XG4gICAgICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKHBhdGhUb0Zhcm0pKSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBhbGxGYXJtRGlyZWN0b3JpZXMgcGF0aCA9ICR7cGF0aFRvRmFybX0gbm90IGV4aXN0YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMocGF0aFRvRmFybSwgY29udGV4dC5sb2dnZXIpO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGVGYXJtQ29uZmlnKHBhdGhUb0Zhcm0pKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcblxuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkocGFyc2VkQXJncy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke3BhcnNlZEFyZ3Mub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhmYXJtRGlyZWN0b3J5KTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiIHx8IHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgY29uc3QgYWxsRmFybURpcmVjdG9yaWVzID0gcGFyc2VkQXJncy5vcHRpb25zLmFsbEZhcm1zRGlyO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBhbGxGYXJtRGlyZWN0b3JpZXMgPSAke3BhcnNlZEFyZ3Mub3B0aW9ucy5hbGxGYXJtc0Rpcn1gKTtcbiAgICAgICAgbGV0IGFsbEZhcm1Db25maWc7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbEZhcm1EaXJlY3RvcmllcykgJiYgYWxsRmFybURpcmVjdG9yaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGFsbEZhcm1Db25maWcgPSBhd2FpdCB2YWxpZGF0ZUFuZFByZXBhcmVGYXJtRGlyZWN0b3JpZXNQYXRoKGFsbEZhcm1EaXJlY3RvcmllcywgZmFybURpcmVjdG9yeSwgY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53YXJuaW5nKGBVc2UgZGVmYXVsdCBjYW5keUZhcm0gcGF0aCBkaXIgPSAke2Zhcm1EaXJlY3Rvcnl9YCk7XG4gICAgICAgICAgICBhbGxGYXJtQ29uZmlnID0gYXdhaXQgdmFsaWRhdGVBbmRQcmVwYXJlRmFybURpcmVjdG9yaWVzUGF0aChbZmFybURpcmVjdG9yeV0sIGZhcm1EaXJlY3RvcnksIGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkU2VydmVyKGNvbnRleHQsIHBhcnNlZEFyZ3Mub3B0aW9ucywgYWxsRmFybUNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGFsbEZhcm1Db25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcGFyc2VkQXJncy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChwYXJzZWRBcmdzLnR5cGUgPT09IFwicmVuYW1lXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuUmVuYW1lRmlsZXMoY29udGV4dCwgcGFyc2VkQXJncy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAocGFyc2VkQXJncy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHBhcnNlZEFyZ3Mub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHBhcnNlZEFyZ3MudHlwZSA9PT0gXCJpbml0LWZvcm1cIikge1xuICAgICAgICBhd2FpdCBydW5Jbml0Rm9ybShjb250ZXh0LCBwYXJzZWRBcmdzLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQUEsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsZ0JBQUEsR0FBQVYsT0FBQTtBQUNB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
|