@finos/legend-application-repl-deployment 11.41.0 → 11.43.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/index.237168cd.js","mappings":"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","sources":["webpack://@finos/legend-application-repl-deployment/webpack/runtime/chunk loaded","webpack://@finos/legend-application-repl-deployment/webpack/runtime/create fake namespace object","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/CommonUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/error/ErrorUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/error/AssertionUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/network/NetworkUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/log/LogService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationEvent.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/application/SerializationUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/DocumentationService.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/application/ActionState.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/network/TracerService.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/search/FuzzySearch.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/search/FuzzySearchAdvancedConfigState.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/AssistantService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/event/EventService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationTelemetry.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/ApplicationNavigationContextService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/CommandService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/KeyboardShortcutsService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/ApplicationConfig.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/terminal/Terminal.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/format/FormatterUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/keyboard/KeyBinding.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/utils/LegendStyleProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/utils/ComponentCreatorUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/dialog/Modal.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/AlertService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/ApplicationStoreProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/ActionAlert.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/panel/PanelLoadingIndicator.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/BlockingAlert.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/icon/Icon.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/NotificationService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/NotificationManager.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/menu/BaseMenu.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/menu/ContextMenu.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/menu/MenuContent.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/markdown/MarkdownTextViewer.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/panel/BlankPanelContent.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/radio-group/BaseRadioGroup.js","webpack://@finos/legend-application-repl-deployment/../legend-art/lib/popover/BasePopover.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationDocumentation.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/VirtualAssistant.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/ApplicationComponentFrameworkProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/terminal/XTerm.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/TerminalService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/IdentityService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationColorTheme.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/storage/ApplicationStorage.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/storage/StorageService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/TelemetryService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/TimeService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationSetting.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/LayoutService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/ClipboardService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/navigation/NavigationService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/util/DownloadHelperServiceWorker.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/SettingService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/navigation/DefaultNavigator.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/UserDataService.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/ApplicationStore.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/application/LegendApplication.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/format/MatcherUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/application/AbstractPluginManager.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/LegendApplicationPlugin.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/Core_LegendApplicationPlugin.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/application/LegendApplicationConfig.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/application/LegendREPLGridClientApplicationConfig.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/application/LegendApplicationPluginManager.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/application/LegendREPLGridClientPluginManager.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/__lib__/LegendApplicationNavigation.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/navigation/BrowserNavigator.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/platform/ApplicationPlatform.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/stores/platform/BrowserPlatform.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/ApplicationPlatformProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/BrowserEnvironmentProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/server/REPLServerClient.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/grid/REPLGridServerResult.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/Const.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/grid/TDSRequest.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph/MetaModelConst.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/grid/GridUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/PureLanguage.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/themes/MonacoEditorThemeUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/CodeEditorTheme.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/CodeEditorUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/action/SourceInformation.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/REPLQueryEditor.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/stores/REPLGridState.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph/Core_HashUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/application/HashUtils.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/packageableElements/domain/V1_Multiplicity.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/V1_ValueSpecification.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_DataTypeValueSpecification.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_PrimitiveValueSpecification.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CString.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CBoolean.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CDecimal.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CInteger.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CFloat.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CDate.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CDateTime.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CStrictDate.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CStrictTime.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_AbstractAppliedFunction.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/application/V1_AppliedFunction.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CoreClassInstance.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_Lambda.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/V1_Variable.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/application/V1_AppliedProperty.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_ColSpec.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_ClassInstance.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_GraphFetchTree.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_RootGraphFetchTree.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/path/V1_Path.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_Collection.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_AggregateValue.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_Pair.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_RuntimeInstance.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_ExecutionContextInstance.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_PropertyGraphFetchTree.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_SerializationConfig.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_KeyExpression.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_PureList.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_TDSAggregateValue.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_TDSColumnInformation.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_TDSSortInformation.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_TDSOlapRank.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/V1_TDSOlapAggregation.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/V1_SourceInformation.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/path/V1_PathElement.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/classInstance/path/V1_PropertyPathElement.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/packageableElements/runtime/V1_Runtime.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RuntimeSerializationHelper.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/packageableElements/runtime/V1_PackageableRuntime.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/executionContext/V1_ExecutionContext.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/executionContext/V1_AnalyticsExecutionContext.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/executionContext/V1_BaseExecutionContext.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_PackageableElementPtr.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_GenericTypeInstance.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_ColSpecArray.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_RelationStoreAccessor.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ValueSpecificationSerializer.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_EnumValue.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CLatestDate.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/model/valueSpecification/raw/V1_CByteArray.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/grid/TDSLambdaBuilder.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/action/execution/ExecutionResult.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/engine/execution/V1_ExecutionResult.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/engine/execution/V1_INTERNAL__UnknownExecutionResult.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/action/execution/INTERNAL__UnknownExecutionResult.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/engine/execution/V1_ExecutionHelper.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/engine/V1_EngineError.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/protocol/pure/v1/engine/grammar/V1_ParserError.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph-manager/action/EngineError.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/stores/CompletionResult.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/stores/REPLGridClientStore.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/REPLGridClientStoreProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/AgGrid.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/grid/ServerSideDataSource.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/CodeEditor.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/REPLGridClient.js","webpack://@finos/legend-application-repl-deployment/../legend-application/lib/components/ApplicationFrameworkProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/stores/LegendREPLGridClientBaseStore.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/LegendREPLGridClientFrameworkProvider.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/LegendREPLGridClientApplication.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/stores/LegendREPLGridClientApplicationPlugin.js","webpack://@finos/legend-application-repl-deployment/../legend-graph/lib/graph/helpers/PureLanguageHelper.js","webpack://@finos/legend-application-repl-deployment/../legend-lego/lib/code-editor/PureLanguageService.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/components/Core_LegendREPLGridClientApplicationPlugin.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/application/LegendREPLGridClient.js","webpack://@finos/legend-application-repl-deployment/../legend-application-repl/lib/index.js","webpack://@finos/legend-application-repl-deployment/./src/index.tsx","webpack://@finos/legend-application-repl-deployment/./repl.config.js","webpack://@finos/legend-application-repl-deployment/../legend-shared/lib/search/CJS__Fuse.cjs","webpack://@finos/legend-application-repl-deployment/webpack/bootstrap","webpack://@finos/legend-application-repl-deployment/webpack/runtime/amd options","webpack://@finos/legend-application-repl-deployment/webpack/runtime/compat get default export","webpack://@finos/legend-application-repl-deployment/webpack/runtime/define property getters","webpack://@finos/legend-application-repl-deployment/webpack/runtime/ensure chunk","webpack://@finos/legend-application-repl-deployment/webpack/runtime/global","webpack://@finos/legend-application-repl-deployment/webpack/runtime/hasOwnProperty shorthand","webpack://@finos/legend-application-repl-deployment/webpack/runtime/make namespace object","webpack://@finos/legend-application-repl-deployment/webpack/runtime/node module decorator","webpack://@finos/legend-application-repl-deployment/webpack/runtime/publicPath","webpack://@finos/legend-application-repl-deployment/webpack/runtime/jsonp chunk loading","webpack://@finos/legend-application-repl-deployment/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { clone, cloneDeep as deepClone, isEqual as deepEqual, findLast, isEmpty, pickBy, uniqBy, uniq, debounce, throttle, mergeWith, toNumber, isObject, } from 'lodash-es';\nimport { UnsupportedOperationError } from './error/ErrorUtils.js';\nimport { format as prettyPrintObject } from 'pretty-format';\nimport { assertTrue, guaranteeNonNullable } from './error/AssertionUtils.js';\n// NOTE: We re-export lodash utilities like this so we centralize utility usage in our app\n// in case we want to swap out the implementation\nexport { clone, deepClone, deepEqual, findLast, isEmpty, pickBy, uniqBy, uniq, debounce, throttle, };\n// NOTE: we can use the `rng` option in UUID V4 to control the random seed during testing\n// See https://github.com/uuidjs/uuid#version-4-random\nexport { v4 as uuid } from 'uuid';\nexport const getClass = (obj) => obj.constructor;\nexport const getSuperclass = (_class) => {\n if (!_class.name) {\n throw new UnsupportedOperationError(`Cannot get superclass for non user-defined classes`);\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n const superclass = Object.getPrototypeOf(_class);\n /**\n * When it comes to inheritance, JavaScript only has one construct: objects.\n * Each object has a private property which holds a link to another object called its prototype.\n * That prototype object has a prototype of its own, and so on until an object is reached\n * with null as its prototype. By definition, null has no prototype,\n * and acts as the final link in this prototype chain.\n *\n * NOTE: when the prototype name is `empty` we know it's not user-defined classes, so we can return undefined\n */\n return superclass?.name ? superclass : undefined;\n};\n/**\n * Check if the specified class is either the same as, or is a superclass of the provided class.\n */\nexport const isClassAssignableFrom = (cls1, cls2) => {\n let currentPrototype = cls2;\n while (currentPrototype) {\n if (currentPrototype === cls1) {\n return true;\n }\n currentPrototype = getSuperclass(currentPrototype);\n }\n return false;\n};\nexport const noop = () => () => {\n /* do nothing */\n};\n/**\n * Recursively omit keys from an object\n */\nexport const recursiveOmit = (obj, \n/**\n * Checker function which returns `true` if the object field should be omit\n */\nchecker) => {\n const newObj = deepClone(obj);\n const omit = (_obj, _checker) => {\n if (Array.isArray(_obj)) {\n _obj.forEach((o) => omit(o, _checker));\n }\n else {\n const o = _obj;\n for (const propKey in o) {\n if (Object.prototype.hasOwnProperty.call(_obj, propKey)) {\n const value = o[propKey];\n if (_checker(_obj, propKey)) {\n delete o[propKey];\n }\n else if (isObject(value)) {\n omit(value, _checker);\n }\n }\n }\n }\n };\n omit(newObj, checker);\n return newObj;\n};\n/**\n * Recursively remove fields with undefined values in object\n */\nexport const pruneObject = (obj) => pickBy(obj, (val) => val !== undefined);\n/**\n * Recursively remove fields with null values in object\n *\n * This is particularly useful in serialization, especially when handling response\n * coming from servers where `null` are returned for missing fields. We would like to\n * treat them as `undefined` instead, so we want to strip all the `null` values from the\n * plain JSON object.\n */\nexport const pruneNullValues = (obj) => pickBy(obj, (val) => val !== null);\n/**\n * Recursively sort object keys alphabetically\n */\nexport const sortObjectKeys = (value) => {\n const _sort = (obj) => {\n if (Array.isArray(obj)) {\n return obj.map(sortObjectKeys);\n }\n else if (typeof obj === 'object' && obj !== null) {\n const oldObj = obj;\n const newObj = {};\n Object.keys(oldObj)\n .sort((a, b) => a.localeCompare(b))\n .forEach((key) => {\n newObj[key] = _sort(oldObj[key]);\n });\n return newObj;\n }\n return obj;\n };\n return _sort(value);\n};\nexport const parseNumber = (val) => {\n const num = toNumber(val);\n if (isNaN(num)) {\n throw new Error(`Can't parse number '${val}'`);\n }\n return num;\n};\n/**\n * Stringify object shallowly\n * See https://stackoverflow.com/questions/16466220/limit-json-stringification-depth\n */\nexport const shallowStringify = (object) => JSON.stringify(object, (key, val) => key && val && typeof val !== 'number'\n ? Array.isArray(val)\n ? '[object Array]'\n : `${val}`\n : val);\nexport const generateEnumerableNameFromToken = (existingNames, token) => {\n if (!token.match(/^[\\w_-]+$/)) {\n throw new Error(`Token must only contain digits, letters, or special characters _ and -`);\n }\n const maxCounter = existingNames\n .map((name) => {\n const matchingCount = name.match(new RegExp(`^${token}_(?<count>\\\\d+)$`));\n return matchingCount?.groups?.count\n ? parseInt(matchingCount.groups.count, 10)\n : 0;\n })\n .reduce((max, num) => Math.max(max, num), 0);\n return `${token}_${maxCounter + 1}`;\n};\n/**\n * NOTE: These are small helpers to workaround Typescript strictness check with the flag --noUncheckedIndexedAccess enabled\n */\nexport const getNullableFirstEntry = (array) => array.length ? array[0] : undefined;\nexport const getNullableLastEntry = (array) => array.length ? array[array.length - 1] : undefined;\nexport const getNullableEntry = (array, idx) => {\n if (idx < 0 || idx >= array.length) {\n return undefined;\n }\n return array.length > idx ? array[idx] : undefined;\n};\nexport const getNonNullableEntry = (array, idx, message) => {\n assertTrue(0 <= idx && idx < array.length, `Index out of bound: ${idx}`);\n return guaranteeNonNullable(array[idx], message);\n};\n/**\n * NOTE: This object mutates the input object (obj1)\n * To disable this behavior, set `createClone=true`\n */\nexport const mergeObjects = (obj1, obj2, createClone) => mergeWith(createClone ? deepClone(obj1) : obj1, obj2, (o1, o2) => {\n if (Array.isArray(o1)) {\n return o1.concat(o2);\n }\n return undefined;\n});\nexport const promisify = (func) => new Promise((resolve, reject) => setTimeout(() => {\n try {\n resolve(func());\n }\n catch (error) {\n reject(error);\n }\n}, 0));\nexport const addUniqueEntry = (array, newEntry, comparator = (val1, val2) => val1 === val2) => {\n if (!array.find((entry) => comparator(entry, newEntry))) {\n array.push(newEntry);\n return true;\n }\n return false;\n};\nexport const changeEntry = (array, oldEntry, newEntry, comparator = (val1, val2) => val1 === val2) => {\n const idx = array.findIndex((entry) => comparator(entry, oldEntry));\n if (idx !== -1) {\n array[idx] = newEntry;\n return true;\n }\n return false;\n};\nexport const swapEntry = (array, entryOne, entryTwo, comparator = (val1, val2) => val1 === val2) => {\n const idxX = array.findIndex((entry) => comparator(entry, entryOne));\n const idxY = array.findIndex((entry) => comparator(entry, entryTwo));\n if (idxX !== -1 && idxY !== -1) {\n array[idxX] = entryTwo;\n array[idxY] = entryOne;\n return true;\n }\n return false;\n};\nexport const deleteEntry = (array, entryToDelete, comparator = (val1, val2) => val1 === val2) => {\n const idx = array.findIndex((entry) => comparator(entry, entryToDelete));\n if (idx !== -1) {\n array.splice(idx, 1);\n return true;\n }\n return false;\n};\nexport const printObject = (value, options) => {\n const opts = pruneObject({\n printFunctionName: false,\n maxDepth: options?.deep ? undefined : 1,\n });\n const text = prettyPrintObject(value, opts);\n return (text\n // We do these replacements because when we do this for production and the class name is minified,\n // we'd better show `[Object]` instead.\n .replace(/.*\\s\\{/g, '{')\n .replace(/\\[.*\\]/g, (val) => ['[Array]', '[Function]'].includes(val) ? val : '[Object]'));\n};\nexport const hasWhiteSpace = (val) => Boolean(val.match(/\\s/));\n//# sourceMappingURL=CommonUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { printObject, uuid, } from '../CommonUtils.js';\n/**\n * A generic error that can be used for building other errors in the application\n * which does not require Javascript stack trace.\n *\n * If the Javascript stack trace is needed to trace back where the problem occurs,\n * `EnrichedError` is the more suitable candidate.\n *\n * This type of error is useful for wrapping the innermost error or errors coming\n * from the servers. Since we enforce in the app that errors thrown must be of type\n * `Error`, this acts as a good wrapper to manage errors better.\n * See https://github.com/microsoft/TypeScript/issues/13219\n */\nexport class ApplicationError extends Error {\n uuid = uuid();\n constructor(message) {\n super();\n this.message =\n message === undefined || message === '' ? '(no error message)' : message;\n }\n /**\n * This provides more detail (better context) about the error, including the error message\n * stack trace, etc.\n */\n get detail() {\n return this.message;\n }\n}\n// Since Javascript does not fully support rethrowing error, we need to customize and manipulate the stack trace\n// See https://stackoverflow.com/questions/42754270/re-throwing-exception-in-nodejs-and-not-losing-stack-trace\nexport class EnrichedError extends Error {\n constructor(name, error, overideMessage) {\n super(overideMessage\n ? overideMessage\n : error instanceof Error\n ? error.message\n : error);\n this.name = name;\n // if the material used to make this error is also an error, we maintain the stack trace and\n // follow the `rethrown` error stack trace convention\n // See https://www.twilio.com/blog/how-to-read-and-understand-a-java-stacktrace\n if (error instanceof Error) {\n const messageLines = (this.message.match(/\\n/g) ?? []).length + 1;\n this.stack = `${(this.stack ?? '')\n .split('\\n')\n .slice(0, messageLines + 1)\n .join('\\n')}\\nCaused by: ${error.stack}`;\n }\n else {\n if (typeof Error.captureStackTrace === 'function') {\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // This only works in Chrome for now. Firefox (as of Feb 2020) will throw error\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\n Error.captureStackTrace(this, this.constructor);\n }\n else {\n // otherwise, use the non-standard but defacto stack trace (available in most browser)\n this.stack = new Error(error).stack;\n }\n }\n }\n}\n/**\n * Signals that a method has been invoked at an illegal or\n * inappropriate time. In other words, the environment or\n * application is not in an appropriate state for the requested\n * operation.\n */\nexport class IllegalStateError extends EnrichedError {\n constructor(error) {\n super('Illegal State Error [PLEASE NOTIFY DEVELOPER]', error);\n }\n}\nexport class UnsupportedOperationError extends EnrichedError {\n constructor(message, unsupportedObject) {\n super('Unsupported Operation Error', message || unsupportedObject\n ? `${message}${unsupportedObject ? `\\n${printObject(unsupportedObject)}` : ''}`\n : undefined);\n }\n}\n/**\n * This is a relatively crude way to handle error of type unknown thrown for now.\n * We should revisit this when Typescript supports `throws` clause\n * See https://github.com/microsoft/TypeScript/issues/13219\n *\n * NOTE: There's a problem with this check in JSDOM leading so we have to disable this in test environment\n * JSDOM uses their own isolated object rather than native object for performance purpose\n * See https://github.com/jsdom/jsdom/issues/3082\n * For example, TypeErrors generated by `webidl2js` or `whatwg-url` used by `jsdom`, or manually-thrown ones inside impl classes,\n * are thrown using global.TypeError, not dom.window.TypeError. This change is hard to implement as of now\n * See https://github.com/jsdom/jsdom/issues/2727\n * See https://github.com/facebook/jest/issues/2549\n *\n * Read more related discussions at:\n * https://github.com/jsdom/jsdom/issues/1737\n * https://github.com/webcomponents/polyfills/issues/105\n * https://github.com/jsdom/jsdom/issues/1769\n * https://github.com/jsdom/jsdom/issues/2555\n */\nexport function assertErrorThrown(error) {\n // eslint-disable-next-line no-process-env\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n if (!(error instanceof Error)) {\n throw new IllegalStateError('Expected error to be thrown');\n }\n}\nexport const returnUndefOnError = (fn) => {\n try {\n return fn();\n }\n catch {\n return undefined;\n }\n};\nexport const decorateErrorMessageIfExists = (fn, errorMessageDecorator) => {\n try {\n return fn();\n }\n catch (error) {\n assertErrorThrown(error);\n error.message = errorMessageDecorator(error.message);\n throw error;\n }\n};\n//# sourceMappingURL=ErrorUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { EnrichedError } from './ErrorUtils.js';\nexport class AssertionError extends EnrichedError {\n constructor(error, message) {\n super('Assertion Error', error, message);\n }\n}\nexport const isNonNullable = (value) => value !== null && value !== undefined;\nexport function assertNonNullable(value, message = '') {\n if (value === null || value === undefined) {\n throw new AssertionError(message || 'Value is nullable');\n }\n}\nexport const guaranteeNonNullable = (value, message = '') => {\n assertNonNullable(value, message);\n return value;\n};\nexport const isType = (value, clazz) => value instanceof clazz;\nexport const filterByType = (clazz) => (value) => isType(value, clazz);\n// Aserts typing doesn't work with all arrow function type declaration form\n// So we can use this: export const assertType: <T>(value: unknown, clazz: Clazz<T>, message: string) => asserts value is T = (value, clazz, message = '') => {\n// or the normal function form\n// See https://github.com/microsoft/TypeScript/issues/34523\n// See https://github.com/microsoft/TypeScript/pull/33622\nexport function assertType(value, clazz, message = '') {\n if (!(value instanceof clazz)) {\n throw new AssertionError(message || `Value is expected to be of type '${clazz.name}'`);\n }\n}\nexport const guaranteeType = (value, clazz, message = '') => {\n assertType(value, clazz, message);\n return value;\n};\nexport function assertNonEmptyString(str, message = '') {\n if (guaranteeNonNullable(str, message) === '') {\n throw new AssertionError(message || `Expected string value to be non-empty`);\n }\n}\nexport function guaranteeNonEmptyString(str, message = '') {\n assertNonEmptyString(str, message);\n return str;\n}\nexport function assertTrue(assertionValue, message = '') {\n if (!assertionValue) {\n throw new AssertionError(message || `Expected predicate to be truthy`);\n }\n}\nexport const isString = (val) => typeof val === 'string';\nexport const isNumber = (val) => typeof val === 'number' && !isNaN(val);\nexport const isBoolean = (val) => typeof val === 'boolean';\nexport const isObject = (val) => typeof val === 'object' && val !== null;\nexport const isPlainObject = (val) => isObject(val) && val.constructor.name === 'Object';\nexport function assertIsString(val, message = '') {\n if (!isString(val)) {\n throw new AssertionError(message || `Value is expected to be a string`);\n }\n}\nexport function assertIsNumber(val, message = '') {\n if (!isNumber(val)) {\n throw new AssertionError(message || `Value is expected to be a number`);\n }\n}\nexport function assertIsBoolean(val, message = '') {\n if (!isBoolean(val)) {\n throw new AssertionError(message || `Value is expected to be a boolean`);\n }\n}\nexport function assertIsObject(val, message = '') {\n if (!isObject(val)) {\n throw new AssertionError(message || `Value is expected to be a object`);\n }\n}\nexport const guaranteeIsString = (val, message = '') => {\n assertIsString(val, message);\n return val;\n};\nexport const guaranteeIsNumber = (val, message = '') => {\n assertIsNumber(val, message);\n return val;\n};\nexport const guaranteeIsBoolean = (val, message = '') => {\n assertIsBoolean(val, message);\n return val;\n};\nexport const guaranteeIsObject = (val, message = '') => {\n assertIsObject(val, message);\n return val;\n};\n//# sourceMappingURL=AssertionUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { StatusCodes } from 'http-status-codes';\nimport { isNonNullable, isString, isObject, AssertionError, assertTrue, } from '../error/AssertionUtils.js';\nimport { deflate } from 'pako';\nimport queryString from 'query-string';\nimport { returnUndefOnError } from '../error/ErrorUtils.js';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\n/**\n * Unlike the download call (GET requests) which is gziped, the upload call send uncompressed data which is in megabytes realms\n * for bigger project. This really slows down operations. As such, we compress data using `zlib` for all network calls to execution\n * server. This requires the backend to uncompress, which for small models might end up adding a little overhead, so in the future, we might\n * want to make this decision `to compress or to not compress` more smartly and dynamicly (e.g. potentially to scan the size of the data/model\n * and decide the compression strategy).\n */\nconst compressData = (data) => new Blob([deflate(isObject(data) ? JSON.stringify(data) : data)]);\nexport const URL_SEPARATOR = '/';\n/**\n * Reference: https://uibakery.io/regex-library/url\n */\nconst URL_REGEX = new RegExp('^https?://(?:www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\\\\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$');\nexport const HttpStatus = StatusCodes;\nexport const CHARSET = 'charset=utf-8';\nexport var HttpHeader;\n(function (HttpHeader) {\n HttpHeader[\"CONTENT_TYPE\"] = \"Content-Type\";\n HttpHeader[\"ACCEPT\"] = \"Accept\";\n})(HttpHeader || (HttpHeader = {}));\nexport var ContentType;\n(function (ContentType) {\n ContentType[\"APPLICATION_JSON\"] = \"application/json\";\n ContentType[\"APPLICATION_XML\"] = \"application/xml\";\n ContentType[\"APPLICATION_ZLIB\"] = \"application/zlib\";\n ContentType[\"TEXT_PLAIN\"] = \"text/plain\";\n ContentType[\"TEXT_CSV\"] = \"text/csv\";\n ContentType[\"ALL\"] = \"*/*\";\n})(ContentType || (ContentType = {}));\nexport var HttpMethod;\n(function (HttpMethod) {\n HttpMethod[\"GET\"] = \"GET\";\n HttpMethod[\"PUT\"] = \"PUT\";\n HttpMethod[\"POST\"] = \"POST\";\n HttpMethod[\"DELETE\"] = \"DELETE\";\n})(HttpMethod || (HttpMethod = {}));\nconst DEFAULT_CLIENT_REQUEST_OPTIONS = {\n mode: 'cors',\n credentials: 'include',\n /**\n * NOTE: We must set this to `follow` for the fetch to handle 3xx redirects automatically.\n * The other modes available are `error` which will throw error and does not really give a\n * response object, and `manual` which returns an opaque response object with status code 0;\n * either way, we cannot really handle the redirect manually ourselves.\n * See https://fetch.spec.whatwg.org/#concept-request-redirect-mode\n * See https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect\n */\n redirect: 'follow',\n};\n// NOTE: We could further improve this by using the MIME library https://flaviocopes.com/node-get-file-extension-mime-type/\nexport const getContentTypeFileExtension = (type) => {\n switch (type) {\n case ContentType.APPLICATION_JSON:\n return 'json';\n case ContentType.APPLICATION_XML:\n return 'xml';\n case ContentType.TEXT_CSV:\n return 'csv';\n default:\n return 'txt';\n }\n};\n/**\n * NOTE: the latter headers value will override the those of the first\n */\nexport const mergeRequestHeaders = (headersOne, headersTwo) => {\n const requestHeaders = {};\n if (headersOne) {\n Object.entries(headersOne).forEach(([key, value]) => {\n requestHeaders[key] = value;\n });\n }\n if (headersTwo) {\n Object.entries(headersTwo).forEach(([key, value]) => {\n requestHeaders[key] = value;\n });\n }\n return requestHeaders;\n};\nconst MAX_ERROR_MESSAGE_LENGTH = 5000;\n/**\n * Custom error for service client with response details.\n * NOTE: Since is particular to execution error we might want to separate this out to another place and leave network client\n * as pure/generic as possible\n */\nconst extractMessage = (payload) => {\n if (isObject(payload)) {\n return isString(payload.message)\n ? payload.message\n : JSON.stringify(payload);\n }\n let payloadAsObject;\n try {\n payloadAsObject = JSON.parse(payload);\n }\n catch {\n // NOTE: ignored, above is best effort\n }\n return payloadAsObject && isString(payloadAsObject.message)\n ? payloadAsObject.message\n : payload;\n};\n/**\n * This is a fairly basic way to attempt re-authentication.\n * We create an <iframe> to load a re-authentication url\n * which suppose to silently refresh the authentication cookie\n * and requires no action from users.\n *\n * NOTE: authentication is very specific to the deployment context\n * i.e. how the servers are being setup, so this way of re-authenticate\n * should be optional and configurable.\n */\nexport const autoReAuthenticate = (url) => \n// eslint-disable-next-line @typescript-eslint/ban-types\nnew Promise((resolve) => {\n const id = 'AUTO_AUTHENTICATION_IFRAME';\n const previous = document.getElementById(id);\n previous?.remove();\n const element = document.createElement('iframe');\n element.id = id;\n element.src = url;\n element.style.display = 'none';\n element.addEventListener('load', () => {\n element.remove();\n resolve();\n });\n document.body.appendChild(element);\n});\nexport class NetworkClientError extends Error {\n response;\n payload;\n constructor(response, payload) {\n super();\n if (typeof Error.captureStackTrace === 'function') {\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // This only works in Chrome for now. Firefox (as of Feb 2020) will throw error\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error\n Error.captureStackTrace(this, this.constructor);\n }\n else {\n // otherwise, use the non-standard but defacto stack trace (available in most browser)\n this.stack = new Error().stack;\n }\n this.name = 'Network Client Error';\n this.response = response;\n const { status, statusText, url } = response;\n const summary = `Received response with status ${status} (${statusText}) for ${url}`;\n this.message =\n (payload\n ? extractMessage(payload).substring(0, MAX_ERROR_MESSAGE_LENGTH)\n : '') || summary;\n this.payload = payload;\n }\n}\nexport const makeUrl = (baseUrl, url, parameters) => {\n if (!baseUrl && !returnUndefOnError(() => new URL(url))) {\n throw new Error(`Can't build URL string: base URL is not specified and the provided URL '${url}' is not absolute`);\n }\n const fullUrl = new URL(url, baseUrl);\n if (parameters instanceof Object) {\n Object.entries(parameters).forEach(([name, value]) => {\n if (value !== undefined) {\n if (Array.isArray(value)) {\n // if value is an array, keep adding it to the URL with the same parameter name, for example: /reviews?revisionIds=rev2&revisionIds=rev1\n value\n .filter(isNonNullable)\n .forEach((subVal) => fullUrl.searchParams.append(name, subVal.toString()));\n }\n else {\n fullUrl.searchParams.append(name, value.toString());\n }\n }\n });\n }\n return fullUrl.toString();\n};\n// NOTE: in case of missing CORS headers, failed authentication manifests itself as CORS error\nconst couldBeCORS = (error) => error instanceof TypeError && error.message === 'Failed to fetch';\nconst processResponse = async (response, init, responseProcessConfig) => {\n responseProcessConfig?.preprocess?.(response);\n if (!response.ok) {\n let payload;\n try {\n payload = await response.text();\n payload = JSON.parse(payload);\n }\n catch {\n // NOTE: ignored, above is best effort\n }\n return Promise.reject(new NetworkClientError(response, payload));\n }\n if (responseProcessConfig?.skipProcessing) {\n return Promise.resolve(response);\n }\n if (response.status === HttpStatus.NO_CONTENT) {\n return Promise.resolve(undefined);\n }\n // TODO: might need to handle */* ContentType and other types\n // Note that right now what we support is rather simplistic, as we always expect `application/json` or `text/plain`\n // and use these to determine how we should decode the response. However, we should properly allow passing in\n // a field in response process config to specify the format of the expected response body\n //\n // See https://www.npmjs.com/package/mime-types\n // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types\n // See https://github.github.io/fetch/\n const accept = init.headers.Accept;\n switch (accept) {\n case ContentType.APPLICATION_JSON:\n return response.json();\n case ContentType.TEXT_PLAIN:\n return response.text();\n default:\n return Promise.reject(new NetworkClientError(response, `Can't process response for request with Content-Type '${accept}'`));\n }\n};\nexport const createRequestHeaders = (method, headers) => {\n const baseRequestHeaders = {};\n /**\n * NOTE: here we set the accept header to application/json instead of the default value\n * as that will imply the server can send us text/html sometimes when there is an\n * authentication problem, which is not desirable.\n */\n baseRequestHeaders.Accept = ContentType.APPLICATION_JSON;\n if (method !== HttpMethod.GET) {\n baseRequestHeaders[HttpHeader.CONTENT_TYPE] = `${ContentType.APPLICATION_JSON};${CHARSET}`;\n }\n return mergeRequestHeaders(baseRequestHeaders, headers);\n};\n/**\n * Simple wrapper around native `fetch` API. For `options`, see documentation for \"init\"\n * See https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\n */\nexport class NetworkClient {\n options = {};\n baseUrl;\n constructor(config) {\n this.baseUrl = config?.baseUrl;\n this.options = {\n ...DEFAULT_CLIENT_REQUEST_OPTIONS,\n ...(config?.options ?? {}),\n };\n }\n async get(url, options = {}, headers, parameters, requestProcessConfig, responseProcessConfig) {\n // NOTE: do not use Content-Type for GET to avoid unnecessary pre-flight when cross-origin\n return this.request(HttpMethod.GET, url, undefined, options, headers, parameters, requestProcessConfig, responseProcessConfig);\n }\n async put(url, data = {}, options = {}, headers, parameters, requestProcessConfig, responseProcessConfig) {\n return this.request(HttpMethod.PUT, url, data, options, headers, parameters, requestProcessConfig, responseProcessConfig);\n }\n async post(url, data = {}, options = {}, headers, parameters, requestProcessConfig, responseProcessConfig) {\n return this.request(HttpMethod.POST, url, data, options, headers, parameters, requestProcessConfig, responseProcessConfig);\n }\n async delete(url, data = {}, options = {}, headers, parameters, requestProcessConfig, responseProcessConfig) {\n return this.request(HttpMethod.DELETE, url, data, options, headers, parameters, requestProcessConfig, responseProcessConfig);\n }\n async request(method, url, data, options, headers, parameters, requestProcessConfig, responseProcessConfig) {\n const requestUrl = makeUrl(this.baseUrl, url, parameters ?? {});\n if ((isString(data) || isObject(data)) &&\n requestProcessConfig?.enableCompression) {\n assertTrue(method !== HttpMethod.GET, ' GET request should not have any request payload');\n data = compressData(data);\n // NOTE: do not use Content-Type for GET to avoid unnecessary pre-flight when cross-origin\n headers = mergeRequestHeaders(headers, {\n // Override Content-Type header when compression is enabled\n [HttpHeader.CONTENT_TYPE]: `${ContentType.APPLICATION_ZLIB};${CHARSET}`,\n });\n }\n let body;\n if (data !== undefined) {\n if (isString(data) || data instanceof Blob) {\n body = data;\n }\n else if (isObject(data)) {\n body = JSON.stringify(data);\n }\n else {\n throw new AssertionError(`Request body can only be either a 'string' or an 'object'`);\n }\n }\n const requestInit = {\n ...this.options,\n ...options,\n method,\n body: body,\n headers: createRequestHeaders(method, headers),\n };\n /**\n * For network client to work, we need an implementation of `window.fetch` to be present.\n * Modern browsers should already have native support for `fetch`.\n * In case they don't (such as in test where we use `jsdom` for example),\n * there are several ways to go about this,but we recommend using `whatwg-fetch` polyfill.\n *\n * Why favor `whatwg-fetch`?\n * It's Github's polyfill for a subset of features of Fetch API.\n * See https://github.com/github/fetch#read-this-first\n * What about `axios`? `axios` has pretty nice API, but larger bundle-size for no particular reason\n * See https://github.com/axios/axios/issues/1333#issuecomment-511375282\n * What about `node-fetch`? `node-fetch` is for server-side only, while `whatwg-fetch` is for client-side\n * See https://www.npmjs.com/package/node-fetch#motivation\n */\n return fetch(requestUrl, requestInit)\n .then((response) => {\n if (\n // NOTE: status 0 is either timeout or client error possibly caused by authentication\n response.status === 0 ||\n response.status === HttpStatus.UNAUTHORIZED) {\n // NOTE: we might want to consider different handling here rather than just proceeding with a retry\n // this is a good place to add an auto retry/authenticate mechanism\n if (responseProcessConfig?.autoReAuthenticateUrl) {\n return autoReAuthenticate(responseProcessConfig.autoReAuthenticateUrl)\n .then(() => fetch(requestUrl, requestInit))\n .then((resp) => processResponse(resp, requestInit, responseProcessConfig));\n }\n return fetch(requestUrl, requestInit).then((resp) => processResponse(resp, requestInit, responseProcessConfig));\n }\n return processResponse(response, requestInit, responseProcessConfig);\n })\n .catch((error) => couldBeCORS(error)\n ? // NOTE: we might want to consider different handling here rather than just proceeding with a retry\n fetch(requestUrl, requestInit).then((resp) => processResponse(resp, requestInit, responseProcessConfig))\n : Promise.reject(error));\n }\n}\n/**\n * Create and download a file using data URI\n * See http://stackoverflow.com/questions/283956\n */\nexport const downloadFileUsingDataURI = (fileName, content, contentType) => {\n const blob = new Blob([content], { type: contentType });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n if (typeof link.download === 'string') {\n document.body.appendChild(link); // Firefox requires the link to be in the body\n link.download = fileName;\n link.href = url;\n link.click();\n document.body.removeChild(link); // remove the link when done\n }\n else {\n location.replace(url);\n }\n};\nexport const createUrlStringFromData = (data, contentType, base64) => base64\n ? `data:${contentType};base64,${window.btoa(data)}`\n : `data:${contentType},${encodeURIComponent(data)}`;\n// Buffer.from(str, 'base64')` and`buf.toString('base64')\n// NOTE: we can potentially use the native `URLSearchParams` as it provides\n// fairly good API and structured output, but it does not support duplicated query\n// such as `?foo=1&foo=2`, only the first value of `foo` will be recorded\n// See https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\nexport const getQueryParameters = (url, isFullUrl = false) => {\n const params = isFullUrl\n ? queryString.parseUrl(url).query\n : queryString.parse(url);\n return params;\n};\nexport const getQueryParameterValue = (key, data) => {\n const paramValue = data[key];\n return paramValue ? decodeURIComponent(paramValue) : undefined;\n};\nexport const stringifyQueryParams = (params) => {\n const data = {};\n Object.entries(params).forEach(([key, value]) => {\n if (!value) {\n return;\n }\n data[key] = value.toString();\n });\n return queryString.stringify(data);\n};\nexport const addQueryParametersToUrl = (url, val) => (val ? `${url}?${val}` : url);\nexport const buildUrl = (parts) => parts\n .map((part) => part.replaceAll(/^\\/+/g, '').replaceAll(/\\/+$/g, ''))\n .join(URL_SEPARATOR);\nexport const sanitizeURL = (val) => sanitizeUrl(val);\nexport const isValidURL = (val) => URL_REGEX.test(val);\n//# sourceMappingURL=NetworkUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPlugin, } from '../application/AbstractPluginManager.js';\n// We use numeric enum here for because we want to do comparison\n// In order to retrieve the name of the enum we can do reverse mapping, for example: LogLevel[LogLevel.INFO] -> INFO\n// https://www.typescriptlang.org/docs/handbook/enums.html#reverse-mappings\nexport var LOG_LEVEL;\n(function (LOG_LEVEL) {\n LOG_LEVEL[LOG_LEVEL[\"DEBUG\"] = 1] = \"DEBUG\";\n LOG_LEVEL[LOG_LEVEL[\"INFO\"] = 2] = \"INFO\";\n LOG_LEVEL[LOG_LEVEL[\"WARN\"] = 3] = \"WARN\";\n LOG_LEVEL[LOG_LEVEL[\"ERROR\"] = 4] = \"ERROR\";\n LOG_LEVEL[LOG_LEVEL[\"SILENT\"] = 5] = \"SILENT\";\n})(LOG_LEVEL || (LOG_LEVEL = {}));\nexport class LogEvent {\n channel;\n name;\n timestamp = Date.now();\n /**\n * TODO: we should make channel required and potentially name required as well, and for each\n * channel, there should be a list of known event names. Unknown event name, or wrong channel\n * will result in error.\n */\n static create(name) {\n const event = new LogEvent();\n event.name = name;\n return event;\n }\n}\nexport class LoggerPlugin extends AbstractPlugin {\n level = LOG_LEVEL.DEBUG;\n setLevel(level) {\n this.level = level;\n }\n install(pluginManager) {\n pluginManager.registerLoggerPlugin(this);\n }\n debug(event, ...data) {\n if (this.level <= LOG_LEVEL.DEBUG) {\n this._debug(event, ...data);\n }\n }\n info(event, ...data) {\n if (this.level <= LOG_LEVEL.INFO) {\n this._info(event, ...data);\n }\n }\n warn(event, ...data) {\n if (this.level <= LOG_LEVEL.WARN) {\n this._warn(event, ...data);\n }\n }\n error(event, ...data) {\n if (this.level <= LOG_LEVEL.ERROR) {\n this._error(event, ...data);\n }\n }\n}\nexport class LogService {\n loggers = [];\n registerPlugins(loggerPlugins) {\n this.loggers = loggerPlugins;\n }\n debug(event, ...data) {\n this.loggers.forEach((logger) => logger.debug(event, ...data));\n }\n info(event, ...data) {\n this.loggers.forEach((logger) => logger.info(event, ...data));\n }\n warn(event, ...data) {\n this.loggers.forEach((logger) => logger.warn(event, ...data));\n }\n error(event, ...data) {\n this.loggers.forEach((logger) => logger.error(event, ...data));\n }\n}\n//# sourceMappingURL=LogService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var APPLICATION_EVENT;\n(function (APPLICATION_EVENT) {\n APPLICATION_EVENT[\"APPLICATION_SETUP__FAILURE\"] = \"application.setup.failure\";\n APPLICATION_EVENT[\"APPLICATION_LOAD__SUCCESS\"] = \"application.load.success\";\n APPLICATION_EVENT[\"APPLICATION_LOAD__FAILURE\"] = \"application.load.failure\";\n APPLICATION_EVENT[\"ILLEGAL_APPLICATION_STATE_OCCURRED\"] = \"application.error.illegal-state\";\n APPLICATION_EVENT[\"APPLICATION_CONFIGURATION__FAILURE\"] = \"application.configuration.failure\";\n APPLICATION_EVENT[\"IDENTITY_AUTO_FETCH__FAILURE\"] = \"application.identity.auto-fetch.failure\";\n APPLICATION_EVENT[\"DOCUMENTATION_FETCH__FAILURE\"] = \"application.documentation.fetch.failure\";\n APPLICATION_EVENT[\"DOCUMENTATION_LOAD__SKIP\"] = \"application.documentation.load.skip\";\n APPLICATION_EVENT[\"DOCUMENTATION_REQUIREMENT_CHECK__FAILURE\"] = \"application.documentation.requirement-check.failure\";\n APPLICATION_EVENT[\"CONTEXTUAL_DOCUMENTATION_LOAD__SKIP\"] = \"application.virtual-assistant.contextual-documentation-load.skip\";\n APPLICATION_EVENT[\"VIRTUAL_ASSISTANT_DOCUMENTATION_ENTRY__ACCESS\"] = \"application.virtual-assistant.documentation-entry.access\";\n APPLICATION_EVENT[\"TERMINAL_COMMAND_CONFIGURATION_CHECK__FAILURE\"] = \"application.load.terminal-command.configuration-check.failure\";\n APPLICATION_EVENT[\"COLOR_THEME_CONFIGURATION_CHECK__FAILURE\"] = \"application.layout.color-theme.configuration-check.failure\";\n APPLICATION_EVENT[\"SETTING_CONFIGURATION_CHECK__FAILURE\"] = \"application.setting.configuration-check.failure\";\n APPLICATION_EVENT[\"SETTING_RETRIVE_FAILURE\"] = \"application.setting.retrieve.failure\";\n APPLICATION_EVENT[\"USER_DATA_RETRIEVE_FAILURE\"] = \"application.user-data.retrieve.failure\";\n APPLICATION_EVENT[\"COMMAND_CENTER_REGISTRATION__FAILURE\"] = \"application.command.registration.failure\";\n APPLICATION_EVENT[\"DEVELOPMENT_ISSUE\"] = \"development.issue\";\n APPLICATION_EVENT[\"APPLICATION_CONTEXT__ACCESS\"] = \"application.context.access\";\n APPLICATION_EVENT[\"APPLICATION_USAGE__INTERRUPT\"] = \"application.usage.interrupt\";\n APPLICATION_EVENT[\"APPLICATION_TELEMETRY_EVENT__FAILURE\"] = \"application.telemetry-event.failure\";\n})(APPLICATION_EVENT || (APPLICATION_EVENT = {}));\n//# sourceMappingURL=LegendApplicationEvent.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { pruneNullValues } from '../CommonUtils.js';\nimport { custom, SKIP, deserialize, serialize, } from 'serializr';\nexport class SerializationFactory {\n schema;\n deserializeNullAsUndefined;\n constructor(schema, options) {\n this.schema = schema;\n this.deserializeNullAsUndefined = Boolean(options?.deserializeNullAsUndefined);\n }\n toJson(val) {\n return serialize(this.schema, val);\n }\n fromJson(val) {\n return deserialize(this.schema, this.deserializeNullAsUndefined ? pruneNullValues(val) : val);\n }\n}\nexport const usingModelSchema = (schema) => custom((value) => (value === undefined ? SKIP : serialize(schema, value)), (value) => deserialize(schema, value));\n// NOTE: we need these methods because `map()` of `serializr` tries to smartly\n// determines if it should produce object or ES6 Map but we always want ES6 Map,\n// so we would use this function\nexport const deserializeMap = (val, itemDeserializer) => {\n const result = new Map();\n Object.keys(val).forEach((key) => result.set(key, itemDeserializer(val[key])));\n return result;\n};\nexport const serializeMap = (val, itemSerializer) => {\n const result = {};\n val.forEach((v, key) => {\n result[key] = itemSerializer(v);\n });\n return result;\n};\nexport const usingConstantValueSchema = (value) => custom(() => value, () => value);\n/**\n * This is the idiomatic usage pattern for `optional(custom(...))`.\n *\n * `optional` only affects serialization so we must make sure to check\n * if the value is `undefined` or not, if yes, serialize, else, return `undefined`\n * which will be processed by `optional(...)` as `SKIP`.\n *\n * `optional` does not affect deserialization, however, as `undefined` values\n * are automatically skipped\n * See https://github.com/mobxjs/serializr/issues/73#issuecomment-535641545\n */\nexport const optionalCustom = (\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nserializer, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndeserializer) => custom((val) => (val ? serializer(val) : SKIP), (val) => (val ? deserializer(val) : SKIP));\nexport const optionalCustomUsingModelSchema = (schema) => custom((val) => (val ? serialize(schema, val) : SKIP), (val) => (val ? deserialize(schema, val) : SKIP));\nexport const deserializeArray = (values, itemDeserializer, options) => {\n if (Array.isArray(values)) {\n return values.map(itemDeserializer);\n }\n return options?.skipIfEmpty ? SKIP : [];\n};\nexport const serializeArray = (values, itemSerializer, options) => {\n let forceReturnEmptyInTest = false;\n // NOTE: this block is meant for test, `webpack` will tree-shake it\n // so we never reach inside, else we would get error about `process is not defined` as we're\n // in browser environment\n // eslint-disable-next-line no-process-env\n if (process.env.NODE_ENV === 'test') {\n forceReturnEmptyInTest =\n Boolean(options?.INTERNAL__forceReturnEmptyInTest) &&\n // eslint-disable-next-line no-process-env\n process.env.TEST_MODE === 'grammar';\n }\n if (Array.isArray(values)) {\n return values.length\n ? values.map((value) => itemSerializer(value))\n : forceReturnEmptyInTest\n ? []\n : options?.skipIfEmpty\n ? SKIP\n : [];\n }\n return forceReturnEmptyInTest ? [] : SKIP;\n};\n/**\n * This is the idiomatic usage pattern for serialization of optional list of objects.\n *\n * Notice our particular usage of `serializeArray` and `deserializeArray` that is deisnged\n * for testing and accounting for logic mismatches between servers and studio\n */\nexport const customListWithSchema = (schema, options) => custom((values) => serializeArray(values, (value) => serialize(schema, value), {\n skipIfEmpty: true,\n INTERNAL__forceReturnEmptyInTest: options?.INTERNAL__forceReturnEmptyInTest,\n}), (values) => deserializeArray(values, (value) => deserialize(schema, value), {\n skipIfEmpty: false,\n}));\nexport const customList = (serializer, deserializer, options) => custom((values) => serializeArray(values, (value) => serializer(value), {\n skipIfEmpty: true,\n INTERNAL__forceReturnEmptyInTest: options?.INTERNAL__forceReturnEmptyInTest,\n}), (values) => deserializeArray(values, (value) => deserializer(value), {\n skipIfEmpty: false,\n}));\nexport const customEquivalentList = (options) => customList((value) => value, (value) => value, options);\nexport const optionalCustomListWithSchema = (schema, options) => optionalCustom((values) => serializeArray(values, (value) => serialize(schema, value), {\n skipIfEmpty: true,\n INTERNAL__forceReturnEmptyInTest: options?.INTERNAL__forceReturnEmptyInTest,\n}), (values) => deserializeArray(values, (value) => deserialize(schema, value), {\n skipIfEmpty: false,\n}));\nexport const optionalCustomList = (serializer, deserializer, options) => optionalCustom((values) => serializeArray(values, (value) => serializer(value), {\n skipIfEmpty: true,\n INTERNAL__forceReturnEmptyInTest: options?.INTERNAL__forceReturnEmptyInTest,\n}), (values) => deserializeArray(values, (value) => deserializer(value), {\n skipIfEmpty: false,\n}));\n/**\n * NOTE: this is a workaround for `serializr` to avoid the magic extension mechanism provided\n * by `createModelSchema`, where depending on the order schemas are defined, if the schema of the\n * super class is specified first, when we serialize subclasses, we would get fields of the order\n * of fields from the super classes first, followed by fields from the subclasses, not the order\n * specified in the subclass's schema.\n *\n * See https://github.com/mobxjs/serializr/issues/179\n */\nexport const TEMPORARY__disableModelSchemaExtensionMechanism = (schema) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n schema.extends = undefined;\n return schema;\n};\n//# sourceMappingURL=SerializationUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { SerializationFactory, LogEvent, uniq, guaranteeNonEmptyString, } from '@finos/legend-shared';\nimport { createModelSchema, custom, list, optional, primitive, } from 'serializr';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nexport class DocumentationEntry {\n key;\n markdownText;\n title;\n text;\n url;\n related;\n static serialization = new SerializationFactory(createModelSchema(DocumentationEntry, {\n markdownText: custom((val) => val, (val) => (val.value ? val : undefined)),\n related: optional(list(primitive())),\n title: optional(primitive()),\n text: optional(primitive()),\n url: optional(primitive()),\n }));\n static create(json, documentationKey) {\n const entry = DocumentationEntry.serialization.fromJson(json);\n entry.key = documentationKey;\n return entry;\n }\n}\nexport const collectKeyedDocumentationEntriesFromConfig = (rawEntries) => Object.entries(rawEntries).map((entry) => ({\n key: entry[0],\n content: DocumentationEntry.create(entry[1], entry[0]),\n}));\nexport const collectDocumentationLinkEntryFromConfig = (rawEntries) => Object.entries(rawEntries).map((entry) => ({\n key: guaranteeNonEmptyString(entry[0], \"Documentation link 'key' is missing\"),\n label: guaranteeNonEmptyString(entry[1].label, \"Documentation link 'label' is missing\"),\n url: guaranteeNonEmptyString(entry[1].url, \"Documentation link 'url' is missing\"),\n}));\nexport const collectContextualDocumentationEntries = (config) => Object.entries(config).map((entry) => ({\n context: entry[0],\n documentationKey: entry[1],\n}));\nexport class DocumentationService {\n url;\n links;\n docRegistry = new Map();\n contextualDocIndex = new Map();\n constructor(applicationStore) {\n // set the main documenation site url\n this.url = applicationStore.config.documentationUrl;\n this.links = applicationStore.config.documentationLinkEntries;\n /**\n * NOTE: the order of documentation entry overidding is (the later override the former):\n * 1. Natively specified: specified in the codebase (no overriding allowed within this group of documentation entries):\n * since we have extension mechanism, the order of plugins matter,\n * we do not allow overriding, i.e. so the first specification for a documentation key wins\n * 2. Fetched from documentation registries (no overriding allowed within this group of documentation entries):\n * since we have extension mechanism and allow specifying multiple registry URLS,\n * we do not allow overriding, i.e. so the first specification for a documentation key wins\n * 3. Configured in application config (overiding allowed within this group)\n */\n // build doc registry\n applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraKeyedDocumentationEntries?.() ?? [])\n .forEach((entry) => {\n // NOTE: Entries specified natively will not override each other. This is to prevent entries from extensions\n // accidentally overide entries from core.\n if (this.hasDocEntry(entry.key)) {\n applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.DOCUMENTATION_LOAD__SKIP), entry.key);\n }\n else {\n this.docRegistry.set(entry.key, entry.content);\n }\n });\n // entries from config will override entries specified natively\n applicationStore.config.keyedDocumentationEntries.forEach((entry) => this.docRegistry.set(entry.key, entry.content));\n const contextualDocEntries = applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraContextualDocumentationEntries?.() ?? []);\n // verify that required documentations are available\n const missingDocumentationEntries = [];\n uniq(applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraRequiredDocumentationKeys?.() ?? [])\n .concat(contextualDocEntries.map((entry) => entry.documentationKey))).forEach((key) => {\n if (!this.docRegistry.has(key)) {\n missingDocumentationEntries.push(key);\n }\n });\n if (missingDocumentationEntries.length) {\n applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.DOCUMENTATION_REQUIREMENT_CHECK__FAILURE), `Can't find corresponding documentation entry for keys:\\n${missingDocumentationEntries\n .map((key) => `- ${key}`)\n .join('\\n')}`);\n }\n // Contextual Documentation\n contextualDocEntries.forEach((entry) => {\n // NOTE: Entries specified natively will not override each other. This is to prevent entries from extensions\n // overriding entries from core.\n //\n // However, it might be useful to allow extending the list of related doc entries.\n // This allows extensions to broaden related doc entries for contextual docs\n // If we need to support this behavior, we could create a dedicated extension method\n if (this.hasContextualDocEntry(entry.context)) {\n applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.CONTEXTUAL_DOCUMENTATION_LOAD__SKIP), entry.context);\n }\n else {\n const existingDocEntry = this.getDocEntry(entry.documentationKey);\n if (existingDocEntry) {\n this.contextualDocIndex.set(entry.context, existingDocEntry);\n }\n }\n });\n // entries from config will override entries specified natively\n applicationStore.config.contextualDocEntries.forEach((entry) => {\n const existingDocEntry = this.getDocEntry(entry.documentationKey);\n if (existingDocEntry) {\n this.contextualDocIndex.set(entry.context, existingDocEntry);\n }\n });\n }\n getDocEntry(key) {\n return this.docRegistry.get(key);\n }\n hasDocEntry(key) {\n return this.docRegistry.has(key);\n }\n getContextualDocEntry(key) {\n return this.contextualDocIndex.get(key);\n }\n hasContextualDocEntry(key) {\n return this.contextualDocIndex.has(key);\n }\n getAllDocEntries() {\n return Array.from(this.docRegistry.values());\n }\n publishDocRegistry() {\n const result = {};\n this.docRegistry.forEach((value, key) => {\n result[key] = DocumentationEntry.serialization.toJson(value);\n });\n return result;\n }\n publishContextualDocIndex() {\n const result = {};\n this.contextualDocIndex.forEach((value, key) => {\n result[key] = value.key;\n });\n return result;\n }\n}\n//# sourceMappingURL=DocumentationService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, computed, makeObservable, observable } from 'mobx';\nvar ACTION_STATE;\n(function (ACTION_STATE) {\n ACTION_STATE[\"INITIAL\"] = \"INITIAL\";\n ACTION_STATE[\"IN_PROGRESS\"] = \"IN_PROGRESS\";\n ACTION_STATE[\"SUCCEEDED\"] = \"SUCEEDED\";\n ACTION_STATE[\"FAILED\"] = \"FAILED\";\n})(ACTION_STATE || (ACTION_STATE = {}));\nexport class ActionState {\n state;\n _message;\n _messageFormatter;\n constructor() {\n this.state = ACTION_STATE.INITIAL;\n }\n setMessage(val) {\n this._message = val;\n }\n setMessageFormatter(val) {\n this._messageFormatter = val;\n }\n reset() {\n this.state = ACTION_STATE.INITIAL;\n return this;\n }\n inProgress() {\n this.state = ACTION_STATE.IN_PROGRESS;\n return this;\n }\n fail() {\n this.state = ACTION_STATE.FAILED;\n return this;\n }\n pass() {\n this.state = ACTION_STATE.SUCCEEDED;\n return this;\n }\n complete(hasSucceeded = true) {\n if (hasSucceeded) {\n this.pass();\n }\n else {\n this.fail();\n }\n return this;\n }\n sync(val) {\n const data = val.exportData();\n this.state = data.state;\n this._message = data.message;\n }\n exportData() {\n return {\n state: this.state,\n message: this._message,\n };\n }\n get isInInitialState() {\n return this.state === ACTION_STATE.INITIAL;\n }\n get isInProgress() {\n return this.state === ACTION_STATE.IN_PROGRESS;\n }\n get hasFailed() {\n return this.state === ACTION_STATE.FAILED;\n }\n get hasSucceeded() {\n return this.state === ACTION_STATE.SUCCEEDED;\n }\n get message() {\n return this._message\n ? this._messageFormatter\n ? this._messageFormatter(this._message)\n : this._message\n : undefined;\n }\n /**\n * Use this if only the completion state of the action is of concern,\n * i.e. we don't care if it fails or succeeds.\n */\n get hasCompleted() {\n return this.hasFailed || this.hasSucceeded;\n }\n static create() {\n return makeObservable(new ActionState(), {\n state: observable,\n _message: observable,\n reset: action,\n inProgress: action,\n pass: action,\n fail: action,\n complete: action,\n setMessage: action,\n sync: action,\n isInInitialState: computed,\n isInProgress: computed,\n hasFailed: computed,\n hasSucceeded: computed,\n hasCompleted: computed,\n message: computed,\n });\n }\n}\n//# sourceMappingURL=ActionState.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPlugin, } from '../application/AbstractPluginManager.js';\nexport var CORE_TRACER_TAG;\n(function (CORE_TRACER_TAG) {\n CORE_TRACER_TAG[\"USER\"] = \"user\";\n CORE_TRACER_TAG[\"ENV\"] = \"env\";\n CORE_TRACER_TAG[\"RESULT\"] = \"result\";\n CORE_TRACER_TAG[\"ERROR\"] = \"error\";\n CORE_TRACER_TAG[\"HTTP_STATUS\"] = \"status\";\n CORE_TRACER_TAG[\"HTTP_REQUEST_METHOD\"] = \"method\";\n CORE_TRACER_TAG[\"HTTP_REQUEST_URL\"] = \"url\";\n})(CORE_TRACER_TAG || (CORE_TRACER_TAG = {}));\nexport class TracerServicePlugin extends AbstractPlugin {\n install(pluginManager) {\n pluginManager.registerTracerServicePlugin(this);\n }\n}\nexport class Trace {\n traceEntries = [];\n setup(traceEntries) {\n this.traceEntries = traceEntries;\n }\n bootstrap(response) {\n this.traceEntries.forEach((entry) => {\n entry.plugin.bootstrap(entry.clientSpan, response);\n });\n }\n reportSuccess() {\n this.traceEntries.forEach((entry) => {\n entry.plugin.concludeClientSpan(entry.clientSpan, undefined);\n });\n }\n reportError(error) {\n this.traceEntries.forEach((entry) => {\n entry.plugin.concludeClientSpan(entry.clientSpan, error);\n });\n }\n close() {\n this.traceEntries.forEach((entry) => {\n entry.plugin.concludeServerSpan(entry.serverSpan);\n });\n }\n}\nexport class TracerService {\n plugins = [];\n registerPlugins(plugins) {\n this.plugins = plugins;\n }\n createTrace(traceData, method, url, headers) {\n const trace = new Trace();\n if (traceData) {\n trace.setup(this.plugins.map((plugin) => {\n const clientSpan = plugin.createClientSpan(traceData);\n const serverSpan = plugin.createServerSpan(clientSpan, method, url, headers);\n return {\n clientSpan,\n serverSpan,\n plugin,\n };\n }));\n }\n return trace;\n }\n}\n//# sourceMappingURL=TracerService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Previously, these exports rely on ES module interop to expose `default` export\n * properly. But since we use `ESM` for Typescript resolution now, we lose this\n * so we have to workaround by importing these and re-export them from CJS\n *\n * TODO: remove these when the package properly work with Typescript's nodenext\n * module resolution\n *\n * @workaround ESM\n * See https://github.com/microsoft/TypeScript/issues/49298\n */\nimport Fuse from './CJS__Fuse.cjs';\nexport const FuzzySearchEngine = Fuse.Fuse.default;\n// NOTE: due to the way we export the constructor of `FuzzySearchEngine`, when we run this with ESM\n// we can remove this workaround once Fuse supports ESM\n// See https://github.com/krisk/Fuse/pull/727\nexport const ESM__FuzzySearchEngine = Fuse.Fuse;\n//# sourceMappingURL=FuzzySearch.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, computed, makeObservable, observable } from 'mobx';\nexport var ADVANCED_FUZZY_SEARCH_MODE;\n(function (ADVANCED_FUZZY_SEARCH_MODE) {\n ADVANCED_FUZZY_SEARCH_MODE[\"STANDARD\"] = \"standard\";\n ADVANCED_FUZZY_SEARCH_MODE[\"INCLUDE\"] = \"include match\";\n ADVANCED_FUZZY_SEARCH_MODE[\"EXACT\"] = \"exact match\";\n ADVANCED_FUZZY_SEARCH_MODE[\"INVERSE\"] = \"excludes exact match\";\n})(ADVANCED_FUZZY_SEARCH_MODE || (ADVANCED_FUZZY_SEARCH_MODE = {}));\nexport class FuzzySearchAdvancedConfigState {\n currentMode = ADVANCED_FUZZY_SEARCH_MODE.STANDARD;\n onSearchModeChange;\n constructor(onSearchModeChange) {\n makeObservable(this, {\n currentMode: observable,\n isAdvancedSearchActive: computed,\n setCurrentMode: action,\n });\n this.onSearchModeChange = onSearchModeChange;\n }\n get isAdvancedSearchActive() {\n return this.currentMode !== ADVANCED_FUZZY_SEARCH_MODE.STANDARD;\n }\n generateSearchText(val) {\n switch (this.currentMode) {\n case ADVANCED_FUZZY_SEARCH_MODE.INCLUDE: {\n return `'\"${val}\"`;\n }\n case ADVANCED_FUZZY_SEARCH_MODE.EXACT: {\n return `=\"${val}\"`;\n }\n case ADVANCED_FUZZY_SEARCH_MODE.INVERSE: {\n return `!\"${val}\"`;\n }\n default: {\n return val;\n }\n }\n }\n setCurrentMode(val) {\n this.currentMode = val;\n this.onSearchModeChange();\n }\n}\n//# sourceMappingURL=FuzzySearchAdvancedConfigState.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, makeObservable, observable, computed } from 'mobx';\nimport { guaranteeNonEmptyString, uuid, isNonNullable, ActionState, FuzzySearchEngine, FuzzySearchAdvancedConfigState, } from '@finos/legend-shared';\nexport var VIRTUAL_ASSISTANT_TAB;\n(function (VIRTUAL_ASSISTANT_TAB) {\n VIRTUAL_ASSISTANT_TAB[\"SEARCH\"] = \"SEARCH\";\n VIRTUAL_ASSISTANT_TAB[\"CONTEXTUAL_SUPPORT\"] = \"CONTEXTUAL_SUPPORT\";\n})(VIRTUAL_ASSISTANT_TAB || (VIRTUAL_ASSISTANT_TAB = {}));\nexport const DOCUMENTATION_SEARCH_RESULTS_LIMIT = 100;\nexport class VirtualAssistantDocumentationEntry {\n uuid = uuid();\n documentationKey;\n title;\n content;\n url;\n isOpen = false;\n constructor(docEntry) {\n makeObservable(this, {\n isOpen: observable,\n setIsOpen: action,\n });\n this.documentationKey = docEntry.key;\n this.title = guaranteeNonEmptyString(docEntry.title);\n this.content = docEntry.markdownText ?? docEntry.text;\n this.url = docEntry.url;\n }\n setIsOpen(val) {\n this.isOpen = val;\n }\n}\nexport class VirtualAssistantContextualDocumentationEntry {\n uuid = uuid();\n context;\n title;\n content;\n url;\n related;\n constructor(context, docEntry, related) {\n this.context = context;\n this.title = docEntry.title;\n this.content = docEntry.markdownText ?? docEntry.text;\n this.url = docEntry.url;\n this.related = related;\n }\n}\n/**\n * NOTE: since we're displaying the documentation entry in virtual assistant\n * we want only user-friendly docs, we will discard anything that doesn't\n * come with a title, or does not have any content/url\n */\nexport const isValidVirtualAssistantDocumentationEntry = (entry) => Boolean(entry.title && (entry.url ?? entry.text ?? entry.markdownText));\n/**\n * Check if the documentation entry should be displayed in virtual assistant,\n * i.e. it has some text content, rather just a link\n */\nexport const shouldDisplayVirtualAssistantDocumentationEntry = (entry) => isValidVirtualAssistantDocumentationEntry(entry) &&\n Boolean(entry.text ?? entry.markdownText);\nexport class AssistantService {\n applicationStore;\n /**\n * This key is used to allow programmatic re-rendering of the assistant panel\n */\n panelRenderingKey = uuid();\n isHidden = true; // hide by default unless specified by the application to show\n isOpen = false;\n isPanelMaximized = false;\n selectedTab = VIRTUAL_ASSISTANT_TAB.SEARCH;\n currentDocumentationEntry;\n // search text\n searchEngine;\n searchConfigurationState;\n searchState = ActionState.create();\n searchText = '';\n searchResults = [];\n showSearchConfigurationMenu = false;\n isOverSearchLimit = false;\n constructor(applicationStore) {\n makeObservable(this, {\n isHidden: observable,\n isOpen: observable,\n isPanelMaximized: observable,\n panelRenderingKey: observable,\n isOverSearchLimit: observable,\n selectedTab: observable,\n searchText: observable,\n searchResults: observable,\n currentDocumentationEntry: observable,\n showSearchConfigurationMenu: observable,\n currentContextualDocumentationEntry: computed,\n setIsHidden: action,\n setIsOpen: action,\n setIsPanelMaximized: action,\n setSelectedTab: action,\n setSearchText: action,\n resetSearch: action,\n search: action,\n openDocumentationEntry: action,\n refreshPanelRendering: action,\n setShowSearchConfigurationMenu: action,\n });\n this.applicationStore = applicationStore;\n this.searchEngine = new FuzzySearchEngine(this.applicationStore.documentationService\n .getAllDocEntries()\n .filter(isValidVirtualAssistantDocumentationEntry), {\n includeScore: true,\n shouldSort: true,\n // Ignore location when computing the search score\n // See https://fusejs.io/concepts/scoring-theory.html\n ignoreLocation: true,\n // This specifies the point the search gives up\n // `0.0` means exact match where `1.0` would match anything\n // We set a relatively low threshold to filter out irrelevant results\n threshold: 0.2,\n keys: [\n {\n // NOTE: for now, we would weight title the most\n name: 'title',\n weight: 4,\n },\n {\n name: 'text',\n weight: 1,\n },\n {\n name: 'markdownText.value',\n weight: 1,\n },\n ],\n // extended search allows for exact word match through single quote\n // See https://fusejs.io/examples.html#extended-search\n useExtendedSearch: true,\n });\n this.searchConfigurationState = new FuzzySearchAdvancedConfigState(() => {\n this.search();\n });\n }\n get currentContextualDocumentationEntry() {\n if (!this.applicationStore.navigationContextService.currentContext) {\n return undefined;\n }\n const currentContext = this.applicationStore.navigationContextService.currentContext.key;\n const currentContextualDocumentationEntry = this.applicationStore.documentationService.getContextualDocEntry(currentContext);\n return currentContextualDocumentationEntry\n ? new VirtualAssistantContextualDocumentationEntry(currentContext, currentContextualDocumentationEntry, (currentContextualDocumentationEntry.related ?? [])\n .map((entry) => this.applicationStore.documentationService.getDocEntry(entry))\n .filter(isNonNullable)\n .filter(isValidVirtualAssistantDocumentationEntry)\n .map((entry) => new VirtualAssistantDocumentationEntry(entry)))\n : undefined;\n }\n openDocumentationEntry(key) {\n const entry = this.applicationStore.documentationService.getDocEntry(key);\n if (entry) {\n this.setIsOpen(true);\n this.setIsHidden(false);\n this.currentDocumentationEntry = new VirtualAssistantDocumentationEntry(entry);\n this.currentDocumentationEntry.setIsOpen(true);\n this.resetSearch();\n }\n }\n openDocumentationEntryLink(key) {\n const entry = this.applicationStore.documentationService.getDocEntry(key);\n if (entry) {\n if (shouldDisplayVirtualAssistantDocumentationEntry(entry)) {\n this.openDocumentationEntry(entry.key);\n }\n else if (entry.url) {\n this.applicationStore.navigationService.navigator.visitAddress(entry.url);\n }\n }\n }\n setIsHidden(val) {\n this.isHidden = val;\n }\n setIsPanelMaximized(val) {\n this.isPanelMaximized = val;\n }\n hideAssistant() {\n this.setIsHidden(true);\n this.setIsOpen(false);\n }\n toggleAssistant() {\n const newVal = !this.isHidden;\n if (newVal) {\n this.hideAssistant();\n }\n else {\n this.setIsHidden(false);\n }\n }\n setIsOpen(val) {\n this.isOpen = val;\n }\n setSelectedTab(val) {\n this.selectedTab = val;\n }\n refreshPanelRendering() {\n this.panelRenderingKey = uuid();\n }\n setSearchText(val) {\n this.searchText = val;\n }\n resetSearch() {\n this.searchText = '';\n this.searchResults = [];\n this.searchState.complete();\n }\n search() {\n if (!this.searchText) {\n this.searchResults = [];\n return;\n }\n this.currentDocumentationEntry = undefined;\n this.searchState.inProgress();\n this.searchResults = Array.from(this.searchEngine\n .search(this.searchConfigurationState.generateSearchText(this.searchText), {\n // NOTE: search for limit + 1 item so we can know if there are more search results\n limit: DOCUMENTATION_SEARCH_RESULTS_LIMIT + 1,\n })\n .values()).map((result) => new VirtualAssistantDocumentationEntry(result.item));\n // check if the search results exceed the limit\n if (this.searchResults.length > DOCUMENTATION_SEARCH_RESULTS_LIMIT) {\n this.isOverSearchLimit = true;\n this.searchResults = this.searchResults.slice(0, DOCUMENTATION_SEARCH_RESULTS_LIMIT);\n }\n else {\n this.isOverSearchLimit = false;\n }\n this.searchState.complete();\n }\n setShowSearchConfigurationMenu(val) {\n this.showSearchConfigurationMenu = val;\n }\n}\n//# sourceMappingURL=AssistantService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPlugin, } from '@finos/legend-shared';\nexport class EventNotifierPlugin extends AbstractPlugin {\n install(pluginManager) {\n pluginManager.registerEventNotifierPlugin(this);\n }\n}\nexport class EventService {\n notifierPlugins = [];\n registerEventNotifierPlugins(plugins) {\n this.notifierPlugins = plugins;\n }\n notify(event, data) {\n this.notifierPlugins.forEach((plugin) => plugin.notify(event, data));\n }\n}\n//# sourceMappingURL=EventService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { APPLICATION_EVENT } from './LegendApplicationEvent.js';\nexport class LegendApplicationTelemetryHelper {\n static logEvent_ApplicationInitializationSucceeded(service, applicationStore) {\n service.logEvent(APPLICATION_EVENT.APPLICATION_LOAD__SUCCESS, {\n application: {\n name: applicationStore.config.appName,\n version: applicationStore.config.appVersion,\n env: applicationStore.config.env,\n },\n browser: {\n userAgent: navigator.userAgent,\n },\n screen: {\n height: window.screen.height,\n width: window.screen.width,\n },\n });\n }\n static logEvent_ApplicationContextAccessed(service, data) {\n service.logEvent(APPLICATION_EVENT.APPLICATION_CONTEXT__ACCESS, data);\n }\n static logEvent_VirtualAssistantDocumentationEntryAccessed(service, data) {\n service.logEvent(APPLICATION_EVENT.VIRTUAL_ASSISTANT_DOCUMENTATION_ENTRY__ACCESS, data);\n }\n static logEvent_ApplicationUsageInterrupted(service) {\n service.logEvent(APPLICATION_EVENT.APPLICATION_USAGE__INTERRUPT, {});\n }\n}\n//# sourceMappingURL=LegendApplicationTelemetry.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { IllegalStateError } from '@finos/legend-shared';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { LegendApplicationTelemetryHelper } from '../__lib__/LegendApplicationTelemetry.js';\n/**\n * Context data refers to the area of the application that the user is\n * currently navigating.\n *\n * NOTE: note that this is navigation-driven, do not associate places\n * which present in the app screen that is not a direct consequence\n * of user's navigation. e.g. the status bar is not a good area to\n * be considered a context, the editor screen is because it means\n * the user must have navigated to the editor screen from somewhere,\n * for instance, the setup page.\n */\nexport class ApplicationNavigationContextData {\n key;\n /**\n * There are 2 types of context data: `standard` and `transient`\n * 1. standard context data represents an application context layer that\n * would be pushed to the stack and the context will be popped as we leave\n * the application, in other words, the context will be properly cleaned up\n * e.g. when we go in an editor, we will push context data to the stack and\n * pop it when we leave that editor\n * 2. transient context does not guarantee to be cleaned up properly, this\n * corresponds to application areas whose presense is transient and not stable:\n * such as those triggered by on-flight events, whose exit-state is hard to capture\n * e.g. user focuses on an input\n *\n * NOTE: transient context must not be mistakened as event, even in the example of\n * user focusing on an input, that's an area of the application that we might want\n * to get record of in terms of context. Events like a notification pop up, failure\n * of some long-running processes are not considered application contexts\n */\n isTransient = false;\n constructor(key, isTransient) {\n this.key = key;\n this.isTransient = isTransient;\n }\n static create(key) {\n return new ApplicationNavigationContextData(key, false);\n }\n static createTransient(key) {\n return new ApplicationNavigationContextData(key, true);\n }\n}\nexport class ApplicationNavigationContextService {\n applicationStore;\n contextStack = [];\n constructor(applicationStore) {\n makeObservable(this, {\n contextStack: observable,\n currentContext: computed,\n push: action,\n pop: action,\n });\n this.applicationStore = applicationStore;\n }\n get currentContext() {\n return this.contextStack.length\n ? this.contextStack[this.contextStack.length - 1]\n : undefined;\n }\n /**\n * Add the context to the stack.\n *\n * If the context is already if the context is already part of the stack\n * we will throw an error. This is to make sure we context is unique in the stack\n * and we do proper context stack cleanups on navigation.\n */\n push(context) {\n // first, filter out all transient contexts, so we can be sure that\n // all of the remaining contexts are standard and they should be cleaned up properly\n // this makes our duplication meaningful\n const newContextStack = this.contextStack.filter((ctx) => !ctx.isTransient);\n if (newContextStack.find((ctx) => ctx.key === context.key)) {\n throw new IllegalStateError(`Found multiple context '${context.key}' in application navigation context stack`);\n }\n newContextStack.push(context);\n // log the context being accessed if it's in the list of interested context keys\n if (this.applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraAccessEventLoggingApplicationContextKeys?.() ?? [])\n .includes(context.key)) {\n LegendApplicationTelemetryHelper.logEvent_ApplicationContextAccessed(this.applicationStore.telemetryService, {\n key: context.key,\n });\n }\n this.contextStack = newContextStack;\n }\n /**\n * Remove the context from the stack.\n *\n * NOTE: we will check from bottom of the stack up, for the specified context,\n * if it's found in the context stack, we will pop until the specified context.\n * This is to allow popping deeper context layers from very high up in the application\n * context stack, e.g. removing a context of an element editor when leaving the editor\n * to go to setup page.\n */\n pop(context) {\n const existingCtx = this.contextStack.find((ctx) => ctx.key === context.key);\n if (!existingCtx) {\n return;\n }\n // NOTE: since we should not have any duplicated contexts\n // it's safe to search from bottom to top of the stack\n const idx = this.contextStack.indexOf(existingCtx);\n if (idx !== -1) {\n this.contextStack = this.contextStack\n .slice(0, idx)\n // remove all transient contexts\n .filter((ctx) => !ctx.isTransient);\n }\n }\n}\n//# sourceMappingURL=ApplicationNavigationContextService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LogEvent } from '@finos/legend-shared';\nimport { action, makeObservable, observable } from 'mobx';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nexport const collectKeyedCommandConfigEntriesFromConfig = (rawEntries) => Object.entries(rawEntries).map((entry) => ({\n key: entry[0],\n content: entry[1],\n}));\nexport class CommandService {\n applicationStore;\n commandRegistry = new Map();\n constructor(applicationStore) {\n makeObservable(this, {\n commandRegistry: observable,\n registerCommand: action,\n deregisterCommand: action,\n });\n this.applicationStore = applicationStore;\n }\n registerCommand(command) {\n const commandKey = command.key;\n if (this.commandRegistry.has(commandKey)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.COMMAND_CENTER_REGISTRATION__FAILURE), `Can't register command: command is already registered`);\n return;\n }\n this.commandRegistry.set(commandKey, command);\n }\n deregisterCommand(commandKey) {\n this.commandRegistry.delete(commandKey);\n }\n runCommand(commandKey, args) {\n const command = this.commandRegistry.get(commandKey);\n if (command && (!command.trigger || command.trigger())) {\n command.action?.(args);\n return true;\n }\n return false;\n }\n}\n//# sourceMappingURL=CommandService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { isNonNullable } from '@finos/legend-shared';\nimport { action, makeObservable, observable } from 'mobx';\nexport class KeyboardShortcutsService {\n applicationStore;\n /**\n * NOTE: with this design, the relationship between command and key is many-to-many\n * We can have multiple commands being mapped to the same key combination, and vice versa\n */\n keyMap = new Map();\n commandKeyMap = new Map();\n isHotkeysBlocked = false;\n constructor(applicationStore) {\n makeObservable(this, {\n keyMap: observable,\n commandKeyMap: observable,\n isHotkeysBlocked: observable,\n addHotkey: action,\n blockGlobalHotkeys: action,\n unblockGlobalHotkeys: action,\n });\n this.applicationStore = applicationStore;\n this.applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraKeyedCommandConfigEntries?.() ?? [])\n .forEach((entry) => {\n // NOTE: since we allow mapping multiple commands to the same key combination\n // and when dispatching the command with a particular key combination, we only\n // execute the first matching command, if we override the config, we would need\n // to add them to the beginning of this list.\n // TODO: do validation on hot keys, hot keys which consist only of modifier keys, e.g. `Shift Shift` should not be supported\n const shortcuts = [\n entry.content.defaultKeyboardShortcut,\n ...(entry.content.additionalKeyboardShortcuts ?? []),\n ].filter(isNonNullable);\n if (shortcuts.length) {\n shortcuts.forEach((shortcut) => this.addHotkey(entry.key, shortcut));\n }\n else {\n if (!this.commandKeyMap.has(entry.key)) {\n this.commandKeyMap.set(entry.key, []);\n }\n }\n });\n }\n blockGlobalHotkeys() {\n this.isHotkeysBlocked = true;\n }\n unblockGlobalHotkeys() {\n this.isHotkeysBlocked = false;\n }\n addHotkey(commandKey, keyCombination) {\n // add shortcut to command key map\n this.commandKeyMap.set(commandKey, [\n ...(this.commandKeyMap.get(commandKey) ?? []),\n keyCombination,\n ]);\n // add new key map\n this.keyMap.set(keyCombination, [\n ...(this.keyMap.get(keyCombination) ?? []).filter((key) => key !== commandKey),\n commandKey,\n ]);\n }\n dispatch(keyCombination) {\n if (this.isHotkeysBlocked) {\n return;\n }\n const mappedCommandKeys = this.keyMap.get(keyCombination) ?? [];\n for (const commandKey of mappedCommandKeys) {\n // find the first command that works then escape\n if (this.applicationStore.commandService.runCommand(commandKey)) {\n return;\n }\n }\n }\n}\n//# sourceMappingURL=KeyboardShortcutsService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const DEFAULT_TAB_SIZE = 2;\nexport const DEFAULT_MONOSPACED_FONT_FAMILY = 'Roboto Mono';\nexport const DEFAULT_DATE_TIME_FORMAT = \"yyyy-MM-dd'T'HH:mm:ss\";\nexport const DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH = 2;\nexport const DEFAULT_TYPEAHEAD_SEARCH_LIMIT = 10;\n//# sourceMappingURL=ApplicationConfig.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, makeObservable, observable } from 'mobx';\n// NOTE: using Unicode for ANSI escape\n// See https://stackoverflow.com/questions/26153308/best-ansi-escape-beginning\n// See https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797\nexport var DISPLAY_ANSI_ESCAPE;\n(function (DISPLAY_ANSI_ESCAPE) {\n DISPLAY_ANSI_ESCAPE[\"RESET\"] = \"\\u001B[0m\";\n // text decoration\n DISPLAY_ANSI_ESCAPE[\"BOLD\"] = \"\\u001B[1m\";\n DISPLAY_ANSI_ESCAPE[\"DIM\"] = \"\\u001B[2m\";\n DISPLAY_ANSI_ESCAPE[\"ITALIC\"] = \"\\u001B[3m\";\n DISPLAY_ANSI_ESCAPE[\"UNDERLINE\"] = \"\\u001B[4m\";\n DISPLAY_ANSI_ESCAPE[\"BLINKING\"] = \"\\u001B[5m\";\n DISPLAY_ANSI_ESCAPE[\"STRIKETHROUGH\"] = \"\\u001B[9m\";\n // foreground\n DISPLAY_ANSI_ESCAPE[\"BLACK\"] = \"\\u001B[30m\";\n DISPLAY_ANSI_ESCAPE[\"RED\"] = \"\\u001B[31m\";\n DISPLAY_ANSI_ESCAPE[\"GREEN\"] = \"\\u001B[32m\";\n DISPLAY_ANSI_ESCAPE[\"YELLOW\"] = \"\\u001B[33m\";\n DISPLAY_ANSI_ESCAPE[\"BLUE\"] = \"\\u001B[34m\";\n DISPLAY_ANSI_ESCAPE[\"MAGENTA\"] = \"\\u001B[35m\";\n DISPLAY_ANSI_ESCAPE[\"CYAN\"] = \"\\u001B[36m\";\n DISPLAY_ANSI_ESCAPE[\"WHITE\"] = \"\\u001B[37m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_BLACK\"] = \"\\u001B[1;30m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_RED\"] = \"\\u001B[1;31m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_GREEN\"] = \"\\u001B[1;32m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_YELLOW\"] = \"\\u001B[1;33m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_BLUE\"] = \"\\u001B[1;34m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_MAGENTA\"] = \"\\u001B[1;35m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_CYAN\"] = \"\\u001B[1;36m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_WHITE\"] = \"\\u001B[1;37m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_BLACK\"] = \"\\u001B[2;30m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_RED\"] = \"\\u001B[2;31m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_GREEN\"] = \"\\u001B[2;32m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_YELLOW\"] = \"\\u001B[2;33m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_BLUE\"] = \"\\u001B[2;34m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_MAGENTA\"] = \"\\u001B[2;35m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_CYAN\"] = \"\\u001B[2;36m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_WHITE\"] = \"\\u001B[2;37m\";\n // background\n DISPLAY_ANSI_ESCAPE[\"BLACK_BG\"] = \"\\u001B[40m\";\n DISPLAY_ANSI_ESCAPE[\"RED_BG\"] = \"\\u001B[41m\";\n DISPLAY_ANSI_ESCAPE[\"GREEN_BG\"] = \"\\u001B[42m\";\n DISPLAY_ANSI_ESCAPE[\"YELLOW_BG\"] = \"\\u001B[43m\";\n DISPLAY_ANSI_ESCAPE[\"BLUE_BG\"] = \"\\u001B[44m\";\n DISPLAY_ANSI_ESCAPE[\"MAGENTA_BG\"] = \"\\u001B[45m\";\n DISPLAY_ANSI_ESCAPE[\"CYAN_BG\"] = \"\\u001B[46m\";\n DISPLAY_ANSI_ESCAPE[\"WHITE_BG\"] = \"\\u001B[47m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_BLACK_BG\"] = \"\\u001B[1;40m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_RED_BG\"] = \"\\u001B[1;41m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_GREEN_BG\"] = \"\\u001B[1;42m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_YELLOW_BG\"] = \"\\u001B[1;43m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_BLUE_BG\"] = \"\\u001B[1;44m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_MAGENTA_BG\"] = \"\\u001B[1;45m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_CYAN_BG\"] = \"\\u001B[1;46m\";\n DISPLAY_ANSI_ESCAPE[\"BRIGHT_WHITE_BG\"] = \"\\u001B[1;47m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_BLACK_BG\"] = \"\\u001B[2;40m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_RED_BG\"] = \"\\u001B[2;41m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_GREEN_BG\"] = \"\\u001B[2;42m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_YELLOW_BG\"] = \"\\u001B[2;43m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_BLUE_BG\"] = \"\\u001B[2;44m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_MAGENTA_BG\"] = \"\\u001B[2;45m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_CYAN_BG\"] = \"\\u001B[2;46m\";\n DISPLAY_ANSI_ESCAPE[\"DIMMED_WHITE_BG\"] = \"\\u001B[2;47m\";\n})(DISPLAY_ANSI_ESCAPE || (DISPLAY_ANSI_ESCAPE = {}));\n/**\n * NOTE: this is the line and the column of the viewport of the terminal;\n * Also, line and column start from 1\n */\nexport const ANSI_moveCursor = (line, column) => `\\x1b[${line};${column}H`;\nexport const ANSI_moveCursorUp = (val, start) => start ? `\\x1b[${val}F` : `\\x1b[${val}A`;\nexport const ANSI_moveCursorDown = (val, start) => start ? `\\x1b[${val}E` : `\\x1b[${val}B`;\nexport const ANSI_moveCursorRight = (val) => `\\x1b[${val}C`;\nexport const ANSI_moveCursorLeft = (val) => `\\x1b[${val}D`;\nexport const ANSI_moveCursorToColumn = (val) => `\\x1b[${val}G`;\nclass ConsoleSearchConfiguration {\n searchInput;\n searchText = '';\n useRegex = false;\n matchWholeWord = false;\n matchCaseSensitive = false;\n resultCount;\n currentResultIndex;\n constructor() {\n makeObservable(this, {\n searchText: observable,\n useRegex: observable,\n matchWholeWord: observable,\n matchCaseSensitive: observable,\n resultCount: observable,\n currentResultIndex: observable,\n });\n }\n setSearchInput(el) {\n this.searchInput = el;\n }\n focus() {\n this.searchInput?.focus();\n }\n}\nexport class Console {\n applicationStore;\n searchConfig = new ConsoleSearchConfiguration();\n constructor(applicationStore) {\n makeObservable(this, {\n setSearchText: action,\n setSearchRegex: action,\n setSearchWholeWord: action,\n setSearchCaseSensitive: action,\n setSearchResultCount: action,\n setSearchCurrentResultIndex: action,\n });\n this.applicationStore = applicationStore;\n }\n setSearchText(val) {\n this.searchConfig.searchText = val;\n }\n setSearchRegex(val) {\n this.searchConfig.useRegex = val;\n }\n setSearchWholeWord(val) {\n this.searchConfig.matchWholeWord = val;\n }\n setSearchCaseSensitive(val) {\n this.searchConfig.matchCaseSensitive = val;\n }\n setSearchResultCount(val) {\n this.searchConfig.resultCount = val;\n }\n setSearchCurrentResultIndex(val) {\n this.searchConfig.currentResultIndex = val;\n }\n}\nexport class OutputConsole extends Console {\n}\nexport class Terminal extends Console {\n preserveLog = false;\n commandRegistry = new Map();\n constructor(applicationStore) {\n super(applicationStore);\n makeObservable(this, {\n preserveLog: observable,\n setPreserveLog: action,\n });\n }\n setPreserveLog(val) {\n this.preserveLog = val;\n }\n showHelp() {\n // do nothing\n }\n showCommonANSIEscapeSequences() {\n // do nothing\n }\n}\n//# sourceMappingURL=Terminal.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { stringify as losslessStringify, parse as losslessParse, isSafeNumber as lossIsSafeNumber, } from 'lossless-json';\nimport CSVParser from 'papaparse';\nimport { assertNonNullable } from '../error/AssertionUtils.js';\nexport const capitalize = (value) => value.length >= 1\n ? `${value[0].toUpperCase()}${value.substring(1, value.length)}`\n : value;\nexport const toSentenceCase = (value) => (value ?? '').trim().replace(/^(?:\\w+)\\b/u, (val) => capitalize(val));\nexport const TITLE_CASE_EXCEPTION_WORDS = [\n // We roughly follow AP style for simplicity\n // See https://en.wikipedia.org/wiki/Title_case\n 'a',\n 'an',\n 'the',\n 'but',\n 'by',\n 'nor',\n 'and',\n 'or',\n 'so',\n 'as',\n 'yet',\n 'for',\n 'in',\n 'nor',\n 'of',\n 'on',\n 'at',\n 'out',\n 'to',\n 'up',\n];\nexport const toTitleCase = (value) => (value ?? '')\n .trim()\n .replace(/\\b(?:\\w+)\\b/gu, (val) => {\n // lowercase minor words (typically articles, short prepositions, and some conjunctions)\n if (TITLE_CASE_EXCEPTION_WORDS.includes(val.toLowerCase())) {\n return val.toLowerCase();\n }\n return capitalize(val);\n})\n // always capitalize first and last word\n .replace(/^(?:\\w+)\\b/u, (val) => capitalize(val))\n .replace(/\\b(?:\\w+)$/u, (val) => capitalize(val));\nexport const prettyCONSTName = (value) => {\n if (!value) {\n return '';\n }\n // This handles our constant naming convention, e.g. SOME_VALUE, __PRIVATE_VALUE__, etc.\n if (value.trim().match(/^[A-Z_]+$/)) {\n return toTitleCase(value.trim().replace(/_+/gu, ' ').toLowerCase());\n }\n return (capitalize(value.trim())\n // NOTE: here we must use capturing group as we also need to capture the breakpoint/separator as chunks\n .split(/(?<chunk>[A-Z][a-z]+|[0-9]+)/)\n .map((chunk) => chunk.toUpperCase() === chunk\n ? chunk\n : chunk.charAt(0).toUpperCase() + chunk.slice(1).toLowerCase())\n .filter(Boolean)\n .join(' ')\n .replace(/_+/gu, ' ')\n .replace(/\\s+/gu, ' '));\n};\nexport const tryToFormatJSONString = (value, tabSize = 2) => {\n try {\n return JSON.stringify(JSON.parse(value), undefined, tabSize);\n }\n catch {\n return value;\n }\n};\nexport const tryToMinifyJSONString = (value) => {\n try {\n return JSON.stringify(JSON.parse(value));\n }\n catch {\n return value.replace(/\\n\\s*/g, '');\n }\n};\n/**\n * NOTE: this splits a string value into an array of strings by using a\n * delimiter of a comma if the string is only one line. However, if the\n * string has multiple lines, the delimiter will not be applied. This is so\n * that for an example input of multiple lines like\n * One, Comma in One\n * Two\n * Three\n * will still equal 3 elements (['One, Comma in One', 'Two', 'Three']) rather than 4\n */\nexport const parseCSVString = (value) => {\n let parseData;\n if (value.includes('\\n')) {\n parseData = value.trim().split(/\\r?\\n|\\r|\\n/g);\n return parseData;\n }\n else {\n const parseResult = CSVParser.parse(value.trim(), {\n delimiter: ',',\n });\n parseData = parseResult.data.flat();\n if (parseResult.errors.length) {\n // if (\n // parseResult.errors[0] &&\n // parseResult.errors[0].code === 'UndetectableDelimiter' &&\n // parseResult.errors[0].type === 'Delimiter' &&\n // parseResult.data.length === 1\n // ) {\n // // NOTE: this happens when the user only put one item in the value input\n // // we can go the other way by ensure the input has a comma but this is arguably neater\n // // as it tinkers with the parser\n // } else {\n // // there were some parsing error, escape\n // // NOTE: ideally, we could show a warning here\n // }\n return undefined;\n }\n else {\n return parseData;\n }\n }\n};\nexport const csvStringify = (value) => CSVParser.unparse(value);\n/**\n * One very common use case is that we get the JSON as response from the server than we will convert this to a string and persist\n * in the protocol. As such, we have to make sure this string is safe in PURE grammar format, i.e. it will escape single quotes\n * properly since PURE strings are wrapped in a pair of single quotes. The following pair of escape/unescape method does the simple job of\n * converting a JSON string to/from PURE grammar string\n *\n * NOTE: this is slightly different than escaping/unescaping JS string or normal JSON string, this is conversion is actually simplier since\n * the escaping is naturally handling by string conversion in Javascript, we just need to have special handling for the escaping of single-quotes\n * See https://stackoverflow.com/questions/3020094/how-should-i-escape-strings-in-json\n * See https://github.com/joliss/js-string-escape/blob/master/index.js\n */\nexport const fromGrammarString = (value) => value.replace(/\\\\'/gu, \"'\");\nexport const toGrammarString = (value) => value.replace(/'/gu, \"\\\\'\");\n/**\n * These are the sets of methods that helps with lossless conversion of JSON to/from text.\n *\n * The implementation of `JSON.parse` and `JSON.stringify` in Javascript is not lossless, e.g. values like 1.0 (a double) is automatically converted to 1 (an integer).\n * This pairs of method will convert the JSON losslessly. One caveat is that numeric values are stored as LosslessNumber, a data type which stores the numeric value as a string.\n *\n * NOTE: One can perform regular operations with a LosslessNumber, and it will throw an error when this would result in losing information.\n * But use this with discretion since it it does not result in the same object as `JSON.parse`\n */\nexport { losslessParse as parseLosslessJSON };\nexport { lossIsSafeNumber as isLossSafeNumber };\nexport const stringifyLosslessJSON = (val, replacer, space) => {\n const result = losslessStringify(val, replacer, space);\n assertNonNullable(result, `Can't stringify lossless JSON value`);\n return result;\n};\nexport const tryToFormatLosslessJSONString = (value, tabSize = 2) => {\n try {\n return stringifyLosslessJSON(losslessParse(value), undefined, tabSize);\n }\n catch {\n return value;\n }\n};\nexport const tryToMinifyLosslessJSONString = (value) => {\n try {\n return tryToFormatLosslessJSONString(value, 0);\n }\n catch {\n return value.replace(/\\n\\s*/g, '');\n }\n};\nexport const indent = (value, indentText) => value\n .split('\\n')\n .map((line) => `${indentText}${line}`)\n .join('\\n');\nexport const quantify = (value, label, pluralForm) => value <= 0\n ? `no ${pluralForm ?? `${label}s`}`\n : value > 1\n ? `${value} ${pluralForm ?? `${label}s`}`\n : `1 ${label}`;\nexport const quantifyList = (val, label, pluralForm) => quantify(val.length, label, pluralForm);\n//# sourceMappingURL=FormatterUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { uniqBy } from '../CommonUtils.js';\nimport { guaranteeNonNullable } from '../error/AssertionUtils.js';\n/**\n * List of keyboard named key\n * See https://www.w3.org/TR/uievents-key/#named-key-attribute-values\n * See https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values\n */\nexport var KEYBOARD_NAMED_KEY;\n(function (KEYBOARD_NAMED_KEY) {\n KEYBOARD_NAMED_KEY[\"TAB\"] = \"Tab\";\n KEYBOARD_NAMED_KEY[\"CAPSLOCK\"] = \"CapsLock\";\n KEYBOARD_NAMED_KEY[\"SHIFT\"] = \"Shift\";\n KEYBOARD_NAMED_KEY[\"META\"] = \"Meta\";\n KEYBOARD_NAMED_KEY[\"ALT\"] = \"Alt\";\n KEYBOARD_NAMED_KEY[\"CONTROL\"] = \"Control\";\n KEYBOARD_NAMED_KEY[\"SPACE\"] = \"Space\";\n KEYBOARD_NAMED_KEY[\"ESC\"] = \"Escape\";\n KEYBOARD_NAMED_KEY[\"LEFT\"] = \"ArrowLeft\";\n KEYBOARD_NAMED_KEY[\"RIGHT\"] = \"ArrowRight\";\n KEYBOARD_NAMED_KEY[\"UP\"] = \"ArrowUp\";\n KEYBOARD_NAMED_KEY[\"DOWN\"] = \"ArrowDown\";\n KEYBOARD_NAMED_KEY[\"ENTER\"] = \"Enter\";\n KEYBOARD_NAMED_KEY[\"DELETE\"] = \"Delete\";\n KEYBOARD_NAMED_KEY[\"BACKSPACE\"] = \"Backspace\";\n KEYBOARD_NAMED_KEY[\"BACKQUOTE\"] = \"Backquote\";\n})(KEYBOARD_NAMED_KEY || (KEYBOARD_NAMED_KEY = {}));\n/**\n * Parses key bindings and pack them into parts\n *\n * grammar = `<sequence>`\n * <sequence> = `<press> <press> <press> ...`\n * <press> = `<key>` or `<mods>+<key>`\n * <mods> = `<mod>+<mod>+...`\n */\nexport function parseKeybinding(value) {\n return value\n .trim()\n .split(' ')\n .map((press) => {\n const modifiers = press.split(/\\b\\+/);\n const key = guaranteeNonNullable(modifiers.pop(), `Can't parse key binding: last part must be a non-modifier key`);\n return { modifiers, key };\n });\n}\n/**\n * Checks if a series of keypress events matches a key binding sequence either partially or exactly.\n */\nexport const isMatchingKeyPressData = (event, keyPressData) => \n// NOTE: we allow specifying with `event.code` only\n// - key: value of the key pressed by the user, taking into consideration the state of modifier keys\n// such as `Shift` as well as the keyboard locale and layout. This is not desirable, because\n// for matching, we have to do uppercase comparison, in Mac, if we presss Alt+B for example, we will\n// get symbols\n// - code: represents a physical key on the keyboard (as opposed to the character generated by pressing the key);\n// i.e. this property returns a value that isn't altered by keyboard layout or the state of the modifier keys\n// See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key\n// See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code\nkeyPressData.key === event.code &&\n // ensure all the modifiers in the keybinding are pressed\n keyPressData.modifiers.every((modifier) => event.getModifierState(modifier)) &&\n // modifier keys (Shift, Control, etc.) change the meaning of a keybinding,\n // so if they are pressed but aren't part of the current keypress sequence, it's not a match.\n ![\n KEYBOARD_NAMED_KEY.SHIFT,\n KEYBOARD_NAMED_KEY.META,\n KEYBOARD_NAMED_KEY.ALT,\n KEYBOARD_NAMED_KEY.CONTROL,\n ].find((modifier) => \n // check if the current key pressed is one of the modifier keys\n keyPressData.key !== modifier &&\n event.getModifierState(modifier) &&\n // check if the modifier key pressed is part of the key combination\n !keyPressData.modifiers.includes(modifier));\nexport const isMatchingKeyCombination = (event, keyCombination) => isMatchingKeyPressData(event, guaranteeNonNullable(parseKeybinding(keyCombination)[0]));\n/**\n * Create event listener for keyboard event (recommended to be used with `keydown/keyup` event)\n *\n * This succinct logic is adapted from `tinykeys`\n * See https://github.com/jamiebuilds/tinykeys\n */\nexport function createKeybindingsHandler(config) {\n // this holds the possible hotkey matches for the current sequence of keyboard events\n const possibleMatches = new Map();\n // NOTE: this timer is used to time the duration between key presses to determine when to\n // cancel the sequence, we set the default timeout to be 1000, as short timeout\n // can be slightly too fast for users\n let timer = null;\n const DEFAULT_TIMEOUT_DURATION = 1000;\n return (event) => {\n // Ensure and stop any event that isn't an keyboard event.\n // e.g. auto-complete option navigation and selection could fire an event\n if (!(event instanceof KeyboardEvent)) {\n return;\n }\n // NOTE: create a flat collection of key combination to handler, make sure\n // for each combination, only the first matching entry is considered,\n // i.e. explicitly here, we don't handle multiple handling\n // See https://github.com/finos/legend-studio/issues/1969\n uniqBy(Object.values(config)\n .flatMap((entry) => entry.combinations.map((combination) => ({\n combination,\n handler: entry.handler,\n })))\n .filter((entry) => entry.combination.length), (val) => val.combination)\n // here, we go through each hotkey combination, and:\n // 1. parse the key combination\n // 2. if the key combination is already part of the possible matches,\n // retrieve the current match result: this result is the list of the\n // keypresses left to complete the combination, else, we just add the\n // new combination and proceed the same way\n .forEach((entry) => {\n const keyCombination = entry.combination;\n const parsedKeyCombination = parseKeybinding(entry.combination);\n // abort when we encounter an empty key combination\n if (!parsedKeyCombination.length) {\n return;\n }\n const remainingExpectedKeyPresses = possibleMatches.get(keyCombination) ?? parsedKeyCombination;\n // this should never be empty, as it becomes empty, it must mean:\n // 1. either the key combination has been matched before and not cleared\n // 2. the key combination is empty, which should not be possible due to the guard above\n const currentExpectedKeyPress = guaranteeNonNullable(remainingExpectedKeyPresses[0]);\n const matches = isMatchingKeyPressData(event, currentExpectedKeyPress);\n if (!matches) {\n // if the current key pressed is a modifier key\n // we don't consider this as a non-match yet\n // NOTE: here we use `event.key` instead of `event.code` since for `Shift` key,\n // the key is always `Shift` where the key code can be `ShiftLeft`\n if (!event.getModifierState(event.key)) {\n possibleMatches.delete(keyCombination);\n }\n }\n else if (remainingExpectedKeyPresses.length > 1) {\n // matches found, not all keypresses of the key combination have been fulfilled, remove\n // the matched keypress part of the combination (if it's in the list of possible matches)\n possibleMatches.set(keyCombination, remainingExpectedKeyPresses.slice(1));\n }\n else {\n // matches found, all keypresses of the combination have been fulfilled, call the handler\n possibleMatches.delete(keyCombination);\n entry.handler(keyCombination, event);\n }\n });\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(possibleMatches.clear.bind(possibleMatches), DEFAULT_TIMEOUT_DURATION);\n };\n}\n//# sourceMappingURL=KeyBinding.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createTheme, StyledEngineProvider, ThemeProvider, } from '@mui/material';\nconst LegendCustomMUITheme = createTheme({\n transitions: {\n // disable all transition\n // NOTE: this is a catch-all way to remove all transitions\n // We technically don't need this because we can configure transition props for each component\n create: () => 'none',\n },\n});\nexport const LegendStyleProvider = (props) => {\n const { children } = props;\n return (\n // Make sure CSS for MUI generated by `emotion` are injected before our styling code\n // this ensures our styling code can override MUI styles\n // See https://mui.com/guides/interoperability/#css-injection-order-3\n _jsx(StyledEngineProvider, { injectFirst: true, children: _jsx(ThemeProvider, { theme: LegendCustomMUITheme, children: children }) }));\n};\n//# sourceMappingURL=LegendStyleProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { clsx } from 'clsx';\nexport const generateSimpleDIVComponent = (componentName, divClassName) => {\n const component = (props) => {\n const { children, className } = props;\n return (_jsx(\"div\", { className: clsx(divClassName, className), \"data-testid\": props['data-testid'], children: children }));\n };\n component.displayName = componentName;\n return component;\n};\n//# sourceMappingURL=ComponentCreatorUtils.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { prettyCONSTName, toTitleCase } from '@finos/legend-shared';\nimport { clsx } from 'clsx';\nimport { generateSimpleDIVComponent } from '../utils/ComponentCreatorUtils.js';\nexport const Modal = (props) => {\n const { children, darkMode, className } = props;\n return (_jsx(\"div\", { className: clsx('modal', { 'modal--dark': darkMode }, className), children: children }));\n};\nexport const ModalTitle = (props) => {\n const { title, icon, className } = props;\n return (_jsxs(\"div\", { className: clsx('modal__title', className), children: [icon && _jsx(\"div\", { className: \"modal__title__icon\", children: icon }), _jsx(\"div\", { className: \"modal__title__label\", children: toTitleCase(title) })] }));\n};\nexport const ModalHeader = (props) => {\n const { title, children, className } = props;\n if (!children && title) {\n return (_jsx(\"div\", { className: clsx('modal__header', className), children: _jsx(ModalTitle, { title: title }) }));\n }\n return _jsx(\"div\", { className: clsx('modal__header', className), children: children });\n};\nexport const ModalHeaderActions = generateSimpleDIVComponent('ModalHeaderActions', 'modal__header__actions');\nexport const ModalBody = generateSimpleDIVComponent('ModalBody', 'modal__body');\nexport const ModalFooter = generateSimpleDIVComponent('ModalFooter', 'modal__footer');\nexport const ModalFooterStatus = generateSimpleDIVComponent('ModalFooterStatus', 'modal__footer__status');\nexport const ModalFooterButton = (props) => {\n const { onClick, inProgressText, text, title, children, disabled, className, darkMode, formatText, type, preventFormSubmit, } = props;\n const isDarkMode = darkMode ?? true;\n const isFormatText = formatText ?? true;\n const isSecondary = type === 'secondary';\n const isPreventFormSubmit = preventFormSubmit ?? false;\n return (_jsxs(\"button\", { className: clsx('btn', 'modal__footer__btn', {\n 'btn--dark': isDarkMode,\n 'btn--light': !isDarkMode,\n 'modal__footer__btn--primary': !isSecondary,\n 'modal__footer__btn--secondary': isSecondary,\n }, className), title: title, onClick: onClick, disabled: Boolean(inProgressText) || disabled, type: isPreventFormSubmit ? 'button' : undefined, children: [inProgressText\n ? prettyCONSTName(inProgressText)\n : isFormatText\n ? prettyCONSTName(text)\n : text, children] }));\n};\n//# sourceMappingURL=Modal.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, makeObservable, observable } from 'mobx';\nexport var ActionAlertType;\n(function (ActionAlertType) {\n ActionAlertType[\"STANDARD\"] = \"STANDARD\";\n ActionAlertType[\"CAUTION\"] = \"CAUTION\";\n})(ActionAlertType || (ActionAlertType = {}));\nexport var ActionAlertActionType;\n(function (ActionAlertActionType) {\n ActionAlertActionType[\"STANDARD\"] = \"STANDARD\";\n ActionAlertActionType[\"PROCEED_WITH_CAUTION\"] = \"PROCEED_WITH_CAUTION\";\n ActionAlertActionType[\"PROCEED\"] = \"PROCEED\";\n})(ActionAlertActionType || (ActionAlertActionType = {}));\nexport class AlertService {\n applicationStore;\n blockingAlertInfo;\n actionAlertInfo;\n constructor(applicationStore) {\n makeObservable(this, {\n blockingAlertInfo: observable,\n actionAlertInfo: observable,\n setBlockingAlert: action,\n setActionAlertInfo: action,\n });\n this.applicationStore = applicationStore;\n }\n setBlockingAlert(alertInfo) {\n if (alertInfo) {\n this.applicationStore.keyboardShortcutsService.blockGlobalHotkeys();\n }\n else {\n this.applicationStore.keyboardShortcutsService.unblockGlobalHotkeys();\n }\n this.blockingAlertInfo = alertInfo;\n }\n setActionAlertInfo(alertInfo) {\n if (this.actionAlertInfo && alertInfo) {\n this.applicationStore.notificationService.notifyIllegalState('Action alert is stacked: new alert is invoked while another one is being displayed');\n }\n if (alertInfo) {\n this.applicationStore.keyboardShortcutsService.blockGlobalHotkeys();\n }\n else {\n this.applicationStore.keyboardShortcutsService.unblockGlobalHotkeys();\n }\n this.actionAlertInfo = alertInfo;\n }\n}\n//# sourceMappingURL=AlertService.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContext, useContext } from 'react';\nimport { useLocalObservable } from 'mobx-react-lite';\nimport { guaranteeNonNullable } from '@finos/legend-shared';\nconst ApplicationStoreContext = createContext(undefined);\nexport const useApplicationStore = () => guaranteeNonNullable(useContext(ApplicationStoreContext), `Can't find application store in context`);\nexport const ApplicationStoreProvider = ({ children, store, }) => {\n const applicationStore = useLocalObservable(() => store);\n return (_jsx(ApplicationStoreContext.Provider, { value: applicationStore, children: children }));\n};\n//# sourceMappingURL=ApplicationStoreProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Dialog, ModalBody, ModalFooter, ModalHeader } from '@finos/legend-art';\nimport { ActionAlertActionType, ActionAlertType, } from '../stores/AlertService.js';\nimport { observer } from 'mobx-react-lite';\nimport { noop } from '@finos/legend-shared';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nconst getActionButtonClassName = (type) => {\n switch (type) {\n case ActionAlertActionType.PROCEED_WITH_CAUTION:\n return 'btn--caution';\n case ActionAlertActionType.PROCEED:\n case ActionAlertActionType.STANDARD:\n default:\n return 'btn--dark';\n }\n};\nconst ActionAlertContent = observer((props) => {\n const { info } = props;\n const applicationStore = useApplicationStore();\n const { title, message, prompt, type, onClose, onEnter, actions } = info;\n const handleClose = () => {\n onClose?.();\n applicationStore.alertService.setActionAlertInfo(undefined);\n };\n const handleEnter = () => onEnter?.();\n const handleSubmit = () => {\n actions.find((action) => action.default)?.handler?.();\n handleClose();\n };\n return (_jsx(Dialog, { open: Boolean(applicationStore.alertService.actionAlertInfo), onClose: noop, TransitionProps: {\n onEnter: handleEnter,\n }, children: _jsxs(\"form\", { onSubmit: (event) => {\n event.preventDefault();\n handleSubmit();\n }, className: `modal search-modal modal--dark blocking-alert blocking-alert--${(type ?? ActionAlertType.STANDARD).toLowerCase()}`, children: [title && _jsx(ModalHeader, { title: title }), _jsxs(ModalBody, { children: [_jsx(\"div\", { className: \"blocking-alert__summary-text\", children: message }), _jsx(\"div\", { className: \"blocking-alert__prompt-text\", children: prompt })] }), _jsxs(ModalFooter, { children: [actions.map((action, idx) => {\n // NOTE: need to prevent default for the submit button, otherwise, we would get the warning \"Form submission canceled because the form is not connected\"\n // See https://stackoverflow.com/a/58234405\n const handler = (e) => {\n e.preventDefault();\n action.handler?.();\n handleClose();\n };\n return (_jsx(\"button\", { type: action.default ? 'submit' : 'button', className: `btn btn--dark ${getActionButtonClassName(action.type ?? ActionAlertActionType.STANDARD)}`, onClick: handler, autoFocus: Boolean(action.default), children: action.label }, idx));\n }), !actions.length && (_jsx(\"button\", { type: \"button\" // prevent this toggler being activated on form submission\n , className: \"btn btn--dark blocking-alert__action--standard\", onClick: handleClose, children: \"Cancel\" }))] })] }) }));\n});\nexport const ActionAlert = observer(() => {\n const applicationStore = useApplicationStore();\n const actionAlertInfo = applicationStore.alertService.actionAlertInfo;\n if (!actionAlertInfo) {\n return null;\n }\n return _jsx(ActionAlertContent, { info: actionAlertInfo });\n});\n//# sourceMappingURL=ActionAlert.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useEffect, useRef } from 'react';\nimport { clsx } from '../utils/ComponentUtils.js';\nexport const PanelLoadingIndicator = (props) => {\n const { isLoading, className } = props;\n const ref = useRef(null);\n useEffect(() => {\n if (ref.current) {\n if (isLoading) {\n ref.current.parentElement?.classList.add('panel-loading-indicator__container');\n }\n else {\n ref.current.parentElement?.classList.remove('panel-loading-indicator__container');\n }\n }\n }, [isLoading]);\n return (_jsx(\"div\", { ref: ref, className: clsx(className, `panel-loading-indicator${isLoading ? '' : '--disabled'}`) }));\n};\n//# sourceMappingURL=PanelLoadingIndicator.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { observer } from 'mobx-react-lite';\nimport { PanelLoadingIndicator, Dialog, Modal, ModalBody, } from '@finos/legend-art';\nimport { noop } from '@finos/legend-shared';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\n/**\n * The users of this need to justify their use case because blocking app disrupts the UX flow.\n * Of course there are legitimate use cases but please consult the team when you do so.\n * See https://material.io/components/dialogs#usage\n */\nexport const BlockingAlert = observer(() => {\n const applicationStore = useApplicationStore();\n const info = applicationStore.alertService.blockingAlertInfo;\n if (!info) {\n return null;\n }\n return (_jsx(Dialog, { open: Boolean(info), onClose: noop, classes: {\n root: 'blocking-alert__root-container',\n container: 'blocking-alert__container',\n }, children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, className: \"blocking-alert\", children: [_jsx(PanelLoadingIndicator, { isLoading: Boolean(info.showLoading) }), _jsxs(ModalBody, { children: [_jsx(\"div\", { className: \"blocking-alert__message\", children: info.message }), info.prompt && (_jsx(\"div\", { className: \"blocking-alert__message__prompt\", children: info.prompt }))] })] }) }));\n});\n//# sourceMappingURL=BlockingAlert.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Previously, these exports rely on ES module interop to expose `default` export\n * properly. But since we use `ESM` for Typescript resolution now, we lose this\n * so we have to workaround by importing these and re-export them from CJS\n *\n * TODO: remove these when the package properly work with Typescript's nodenext\n * module resolution\n *\n * @workaround ESM\n * See https://github.com/microsoft/TypeScript/issues/49298\n */\n/**\n * HEADS-UP: use 'react-icons/{..}/index.js' to import icons, which is not good-looking but it helps\n * to reduce bundle size to 22.46MB to 66.46kb significantly.\n * Reference:\n * https://github.com/react-icons/react-icons/blob/master/README.md\n * https://github.com/react-icons/react-icons/issues/154#issuecomment-895976123\n */\n/* eslint @typescript-eslint/no-unsafe-assignment: 0 */\n//======================================================= TB =======================================================\nimport { TbArrowsJoin2, TbArrowsSplit2, TbMathFunction, TbBook, TbCircleOff, TbCalendarTime, TbClockEdit, TbSql, TbBrandSnowflake, } from 'react-icons/tb/index.js';\nexport const ArrowsJoinIcon = TbArrowsJoin2;\nexport const ArrowsSplitIcon = TbArrowsSplit2;\nexport const FunctionIcon = TbMathFunction;\nexport const RepoIcon = TbBook;\nexport const OffIcon = TbCircleOff;\nexport const CalendarClockIcon = TbCalendarTime;\nexport const LastModifiedIcon = TbClockEdit;\nexport const SQLIcon = TbSql;\nexport const Snowflake_BrandIcon = TbBrandSnowflake;\n//======================================================= MD =======================================================\nimport { MdManageSearch, MdModeEdit, MdTextFields, MdMoreVert, MdMoreHoriz, MdWrapText, MdSaveAs, MdSave, MdVerticalAlignBottom, MdRefresh, MdFunctions, MdCompareArrows, MdPlaylistAddCheck, MdAdd, // to be reviewed\nMdEdit, // to be reviewed\nMdSubject, MdViewHeadline, MdAssistant, MdSettingsEthernet, MdLink, MdWindow, MdReviews, MdCalculate, MdRocketLaunch, MdOutlineDataset, MdVerified, MdQueryStats, MdFilterCenterFocus, MdOutlineDescription, MdQuestionAnswer, MdUnfoldLess, MdUnfoldMore, } from 'react-icons/md/index.js';\nexport const ManageSearchIcon = MdManageSearch; // to be reviewed\nexport const PencilIcon = MdModeEdit;\nexport const StringTypeIcon = MdTextFields;\nexport const MoreVerticalIcon = MdMoreVert;\nexport const MoreHorizontalIcon = MdMoreHoriz;\nexport const WrapTextIcon = MdWrapText;\nexport const SaveAsIcon = MdSaveAs;\nexport const SaveCurrIcon = MdSave;\nexport const VerticalAlignBottomIcon = MdVerticalAlignBottom;\nexport const RefreshIcon = MdRefresh;\nexport const SigmaIcon = MdFunctions;\nexport const CompareIcon = MdCompareArrows;\nexport const CheckListIcon = MdPlaylistAddCheck;\nexport const AddIcon = MdAdd; // to be reviewed\nexport const EditIcon = MdEdit; // to be reviewed\nexport const SubjectIcon = MdSubject;\nexport const ViewHeadlineIcon = MdViewHeadline;\nexport const AssistantIcon = MdAssistant;\nexport const SettingsEthernetIcon = MdSettingsEthernet;\nexport const LinkIcon = MdLink;\nexport const WindowIcon = MdWindow;\nexport const ReviewIcon = MdReviews;\nexport const CalculateIcon = MdCalculate;\nexport const LaunchIcon = MdRocketLaunch;\nexport const DatasetIcon = MdOutlineDataset;\nexport const VerifiedIcon = MdVerified;\nexport const QueryIcon = MdQueryStats;\nexport const CenterFocusIcon = MdFilterCenterFocus;\nexport const DescriptionIcon = MdOutlineDescription;\nexport const QuestionAnswerIcon = MdQuestionAnswer;\nexport const FoldIcon = MdUnfoldLess;\nexport const UnfoldIcon = MdUnfoldMore;\n//======================================================= VSC =======================================================\nimport { VscError, VscWarning, VscWordWrap, VscGoToFile, VscClose, VscRunAll, VscRunErrors, VscOpenPreview, VscDiff, VscRegex, VscVersions, VscCaseSensitive, VscWholeWord, VscReferences, VscWand, VscCollapseAll, VscExpandAll, VscJson, VscTable, } from 'react-icons/vsc/index.js';\nexport const ErrorIcon = VscError;\nexport const WarningIcon = VscWarning;\nexport const WordWrapIcon = VscWordWrap;\nexport const GoToFileIcon = VscGoToFile;\nexport const CloseIcon = VscClose;\nexport const RunAllIcon = VscRunAll;\nexport const RunErrorsIcon = VscRunErrors;\nexport const OpenPreviewIcon = VscOpenPreview;\nexport const DiffIcon = VscDiff;\nexport const RegexIcon = VscRegex;\nexport const VersionsIcon = VscVersions;\nexport const CaseSensitiveIcon = VscCaseSensitive;\nexport const WholeWordMatchIcon = VscWholeWord;\nexport const ReferencesIcon = VscReferences;\nexport const WandIcon = VscWand;\nexport const CollapseTreeIcon = VscCollapseAll;\nexport const ExpandTreeIcon = VscExpandAll;\nexport const SerializeIcon = VscJson;\nexport const TableIcon = VscTable;\n//======================================================= BS =======================================================\nimport { BsFillTriangleFill, BsFillFileEarmarkSpreadsheetFill, BsBoxSeam, BsGripVertical, BsAlignTop, BsAlignMiddle, BsAlignBottom, BsAlignStart, BsAlignCenter, BsAlignEnd, BsDistributeHorizontal, BsDistributeVertical, BsDatabaseFillLock, BsDatabaseFillCheck, BsChevronUp, BsChevronDown, BsChevronRight, BsChevronLeft, BsQuestionSquare, BsQuestionSquareFill, BsTextLeft, } from 'react-icons/bs/index.js';\nexport const FilledTriangleIcon = BsFillTriangleFill;\nexport const TabulatedDataFileIcon = BsFillFileEarmarkSpreadsheetFill;\nexport const BundleIcon = BsBoxSeam;\nexport const ThinVerticalDragHandleIcon = BsGripVertical;\nexport const AlignTopIcon = BsAlignTop;\nexport const AlignMiddleIcon = BsAlignMiddle;\nexport const AlignBottomIcon = BsAlignBottom;\nexport const AlignStartIcon = BsAlignStart;\nexport const AlignCenterIcon = BsAlignCenter;\nexport const AlignEndIcon = BsAlignEnd;\nexport const DistributeHorizontalIcon = BsDistributeHorizontal;\nexport const DistributeVerticalIcon = BsDistributeVertical;\nexport const DataAccessIcon = BsDatabaseFillLock;\nexport const DataReadyIcon = BsDatabaseFillCheck;\nexport const ThinChevronUpIcon = BsChevronUp;\nexport const ThinChevronDownIcon = BsChevronDown;\nexport const ThinChevronRightIcon = BsChevronRight;\nexport const ThinChevronLeftIcon = BsChevronLeft;\nexport const QuestionSquareIcon = BsQuestionSquare;\nexport const QuestionSquareFillIcon = BsQuestionSquareFill;\nexport const GenericTextFileIcon = BsTextLeft;\n//======================================================= HI =======================================================\nimport { HiCode, HiHome } from 'react-icons/hi/index.js';\nexport const CodeIcon = HiCode;\nexport const HomeIcon = HiHome;\n//======================================================= io5 =======================================================\nimport { IoOpenOutline, IoResize, IoFileTrayFullOutline, IoMenuOutline, IoBeaker, IoFlaskSharp, IoSyncCircleSharp, IoStatsChart, IoHelpBuoy, IoCloudDownloadOutline, IoCloudUploadOutline, IoHelp, } from 'react-icons/io5/index.js';\nexport const OpenIcon = IoOpenOutline;\nexport const ResizeIcon = IoResize;\nexport const FileTrayIcon = IoFileTrayFullOutline;\nexport const MenuIcon = IoMenuOutline;\nexport const BeakerIcon = IoBeaker;\nexport const FlaskIcon = IoFlaskSharp;\nexport const AvailabilityIcon = IoSyncCircleSharp;\nexport const StatisticsIcon = IoStatsChart;\nexport const SupportIcon = IoHelpBuoy;\nexport const CloudDownloadIcon = IoCloudDownloadOutline;\nexport const CloudUploadIcon = IoCloudUploadOutline;\nexport const QuestionThinIcon = IoHelp;\n//======================================================= FA =======================================================\nimport { FaHistory, FaCrosshairs, FaLayerGroup, FaGhost, FaLock, FaMask, FaFile, FaLongArrowAltRight, FaTimes, FaTimesCircle, FaPlus, FaCog, FaEye, FaEyeSlash, FaCaretUp, FaCaretDown, FaFire, FaSave, FaSquare, FaRegSquare, FaCheckSquare, FaMinusSquare, FaHashtag, FaHammer, FaCommentDots, FaClock, FaRegClock, FaToggleOn, FaQuestion, FaQuestionCircle, FaInfoCircle, FaCompress, FaMap, FaPlay, FaGripVertical, FaRobot, FaArrowLeft, FaArrowRight, FaArrowAltCircleDown, FaArrowAltCircleRight, FaArrowCircleRight, FaUser, FaShapes, FaEnvelope, FaSkull, FaDollarSign, FaSearch, FaStar, FaKey, FaExternalLinkAlt, FaExternalLinkSquareAlt, FaLightbulb, FaRegLightbulb, FaList, FaCircle, FaMinusCircle, FaTrash, FaRegCircle, FaShieldAlt, FaTag, FaTags, FaBolt, FaCheckCircle, FaExclamationTriangle, FaBug, FaCircleNotch, FaRegKeyboard, FaUserSecret, FaBuffer, FaSitemap, FaExpand, FaExpandArrowsAlt, FaSortAlphaDown, FaSort, FaSortAlphaDownAlt, FaFolderPlus, FaCaretRight, FaCaretLeft, FaWrench, FaArrowDown, FaArrowUp, FaTerminal, FaTruckLoading, FaFolderOpen, FaFolder, FaFileCode, FaCodeBranch, FaArrowAltCircleUp, FaArrowAltCircleLeft, FaRegStopCircle, FaAsterisk, FaFilter, FaExclamationCircle, FaRocket, FaCheck, FaBan, FaFileImport, FaUserFriends, FaDownload, FaUpload, FaRegWindowRestore, FaPauseCircle, FaShare, FaRegCopy, FaFileAlt, FaEdit, FaArrowsAltH, FaRegWindowMaximize, FaWindowMaximize, FaLongArrowAltDown, FaLongArrowAltUp, FaMeteor, FaPiedPiperSquare, FaPuzzlePiece, FaToggleOff, FaMapMarkerAlt, FaHatWizard, FaRegLaughWink, FaRegSadTear, FaBusinessTime, FaDatabase, FaServer, FaArchive, FaBrain, FaBookOpen, FaLevelDownAlt, FaRegCalendarAlt, FaCalculator, FaReadme, FaRedo, FaUndo, } from 'react-icons/fa/index.js';\nexport const HistoryIcon = FaHistory;\nexport const CrosshairsIcon = FaCrosshairs;\nexport const LayerGroupIcon = FaLayerGroup;\nexport const GhostIcon = FaGhost;\nexport const LockIcon = FaLock;\nexport const MaskIcon = FaMask;\nexport const FileIcon = FaFile;\nexport const LongArrowRightIcon = FaLongArrowAltRight;\nexport const TimesIcon = FaTimes;\nexport const TimesCircleIcon = FaTimesCircle;\nexport const PlusIcon = FaPlus;\nexport const CogIcon = FaCog;\nexport const EyeIcon = FaEye;\nexport const CloseEyeIcon = FaEyeSlash;\nexport const CaretUpIcon = FaCaretUp;\nexport const CaretDownIcon = FaCaretDown;\nexport const FireIcon = FaFire;\nexport const SaveIcon = FaSave;\nexport const SquareIcon = FaSquare;\nexport const EmptySquareIcon = FaRegSquare;\nexport const CheckSquareIcon = FaCheckSquare;\nexport const MinusSquareIcon = FaMinusSquare;\nexport const HashtagIcon = FaHashtag;\nexport const HammerIcon = FaHammer;\nexport const ChatIcon = FaCommentDots;\nexport const ClockIcon = FaClock;\nexport const EmptyClockIcon = FaRegClock;\nexport const ToggleIcon = FaToggleOn;\nexport const QuestionIcon = FaQuestion;\nexport const QuestionCircleIcon = FaQuestionCircle;\nexport const InfoCircleIcon = FaInfoCircle;\nexport const CompressIcon = FaCompress;\nexport const MapIcon = FaMap;\nexport const PlayIcon = FaPlay;\nexport const VerticalDragHandleIcon = FaGripVertical;\nexport const RobotIcon = FaRobot;\nexport const ArrowLeftIcon = FaArrowLeft;\nexport const ArrowRightIcon = FaArrowRight;\nexport const ArrowCircleDownIcon = FaArrowAltCircleDown;\nexport const ArrowCircleRightIcon = FaArrowAltCircleRight;\nexport const StickArrowCircleRightIcon = FaArrowCircleRight;\nexport const UserIcon = FaUser;\nexport const ShapesIcon = FaShapes;\nexport const EnvelopIcon = FaEnvelope;\nexport const SkullIcon = FaSkull;\nexport const DollarIcon = FaDollarSign;\nexport const SearchIcon = FaSearch;\nexport const StarIcon = FaStar;\nexport const KeyIcon = FaKey;\nexport const ExternalLinkIcon = FaExternalLinkAlt;\nexport const ExternalLinkSquareIcon = FaExternalLinkSquareAlt;\nexport const LightBulbIcon = FaLightbulb;\nexport const EmptyLightBulbIcon = FaRegLightbulb;\nexport const ListIcon = FaList;\nexport const CircleIcon = FaCircle;\nexport const MinusCircleIcon = FaMinusCircle;\nexport const TrashIcon = FaTrash;\nexport const EmptyCircleIcon = FaRegCircle;\nexport const ShieldIcon = FaShieldAlt;\nexport const TagIcon = FaTag;\nexport const TagsIcon = FaTags;\nexport const BoltIcon = FaBolt;\nexport const CheckCircleIcon = FaCheckCircle;\nexport const ExclamationTriangleIcon = FaExclamationTriangle;\nexport const BugIcon = FaBug;\nexport const CircleNotchIcon = FaCircleNotch;\nexport const KeyboardIcon = FaRegKeyboard;\nexport const HackerIcon = FaUserSecret;\nexport const BufferIcon = FaBuffer; // to be reviewed, moved to LegendIcon\nexport const SitemapIcon = FaSitemap; // to be reviewed, moved to LegendIcon\nexport const ExpandIcon = FaExpand;\nexport const ExpandAllIcon = FaExpandArrowsAlt;\nexport const SortDownIcon = FaSortAlphaDown;\nexport const SortIcon = FaSort;\nexport const SortDownAltIcon = FaSortAlphaDownAlt;\nexport const NewFolderIcon = FaFolderPlus;\nexport const CaretRightIcon = FaCaretRight;\nexport const CaretLeftIcon = FaCaretLeft;\nexport const WrenchIcon = FaWrench;\nexport const ArrowDownIcon = FaArrowDown;\nexport const ArrowUpIcon = FaArrowUp;\nexport const TerminalIcon = FaTerminal;\nexport const TruckLoadingIcon = FaTruckLoading;\nexport const FolderOpenIcon = FaFolderOpen;\nexport const FolderIcon = FaFolder;\nexport const FileCodeIcon = FaFileCode;\nexport const CodeBranchIcon = FaCodeBranch;\nexport const ArrowCircleUpIcon = FaArrowAltCircleUp;\nexport const ArrowCircleLeftIcon = FaArrowAltCircleLeft;\nexport const EmptyStopCircleIcon = FaRegStopCircle;\nexport const AsteriskIcon = FaAsterisk;\nexport const FilterIcon = FaFilter;\nexport const ExclamationCircleIcon = FaExclamationCircle;\nexport const RocketIcon = FaRocket;\nexport const CheckIcon = FaCheck;\nexport const BanIcon = FaBan;\nexport const FileImportIcon = FaFileImport;\nexport const UsersIcon = FaUserFriends;\nexport const DownloadIcon = FaDownload;\nexport const UploadIcon = FaUpload;\nexport const EmptyWindowRestoreIcon = FaRegWindowRestore;\nexport const PauseCircleIcon = FaPauseCircle;\nexport const ShareIcon = FaShare;\nexport const CopyIcon = FaRegCopy;\nexport const FileAltIcon = FaFileAlt; // to be reviewed/combined\nexport const PencilEditIcon = FaEdit; // to be reviewed/combined\nexport const ArrowsAltHIcon = FaArrowsAltH; // to be reviewed/combined\nexport const WindowMaximizeIcon = FaRegWindowMaximize; // to be reviewed/combined\nexport const FilledWindowMaximizeIcon = FaWindowMaximize; // to be reviewed/combined\nexport const LongArrowAltDownIcon = FaLongArrowAltDown; // to be reviewed/combined\nexport const LongArrowAltUpIcon = FaLongArrowAltUp; // to be reviewed/combined\nexport const MeteorIcon = FaMeteor; // to be reviewed/combined\nexport const PiedPiperSquareIcon = FaPiedPiperSquare; // to be reviewed/combined\nexport const PuzzlePieceIcon = FaPuzzlePiece; // to be reviewed/combined\nexport const ToggleOffIcon = FaToggleOff;\nexport const MapMarkerIcon = FaMapMarkerAlt;\nexport const WizardHatIcon = FaHatWizard;\nexport const FaceLaughWinkIcon = FaRegLaughWink;\nexport const FaceSadTearIcon = FaRegSadTear;\nexport const BusinessTimeIcon = FaBusinessTime; // to be reviewed/combined\nexport const DatabaseIcon = FaDatabase;\nexport const ServerIcon = FaServer;\nexport const ArchiveIcon = FaArchive;\nexport const BrainIcon = FaBrain;\nexport const DocumentationIcon = FaBookOpen;\nexport const LevelDownIcon = FaLevelDownAlt; // to be reviewed/combined\nexport const CalendarIcon = FaRegCalendarAlt;\nexport const CalculatorIcon = FaCalculator;\nexport const ReadMeIcon = FaReadme;\nexport const UndoIcon = FaUndo;\nexport const RedoIcon = FaRedo;\n//======================================================= GI =======================================================\nimport { GiWaterDrop, GiBeard, GiSunglasses, GiHouseKeys, } from 'react-icons/gi/index.js';\nexport const WaterDropIcon = GiWaterDrop;\nexport const BeardIcon = GiBeard;\nexport const SunglassesIcon = GiSunglasses;\nexport const HouseKeys = GiHouseKeys;\n//======================================================= GO =======================================================\nimport { GoChevronDown, GoChevronUp, GoChevronLeft, GoChevronRight, GoFileBinary, GoGitPullRequest, GoGitMerge, GoSync, GoGitBranch, GoX, GoPlug, } from 'react-icons/go/index.js';\nexport const ChevronDownIcon = GoChevronDown;\nexport const ChevronUpIcon = GoChevronUp;\nexport const ChevronLeftIcon = GoChevronLeft;\nexport const ChevronRightIcon = GoChevronRight;\nexport const BinaryTypeIcon = GoFileBinary;\nexport const GitPullRequestIcon = GoGitPullRequest;\nexport const GitMergeIcon = GoGitMerge;\nexport const SyncIcon = GoSync;\nexport const GitBranchIcon = GoGitBranch;\nexport const XIcon = GoX;\nexport const PluginIcon = GoPlug;\n//======================================================= SI =======================================================\nimport { SiSwagger } from 'react-icons/si/index.js';\nexport const SwaggerIcon = SiSwagger; // to be reviewed\n//======================================================= BI =======================================================\nimport { BiShapeTriangle, BiAtom, BiCabinet } from 'react-icons/bi/index.js';\nexport const ShapeTriangleIcon = BiShapeTriangle;\nexport const AtomIcon = BiAtom;\nexport const CabinetIcon = BiCabinet;\n//======================================================= CG =======================================================\nimport { CgOptions } from 'react-icons/cg/index.js';\nexport const OptionsIcon = CgOptions;\n//======================================================= FI =======================================================\nimport { FiPackage, FiMinus, FiMousePointer, FiMove, FiPlusCircle, FiSidebar, FiTriangle, FiZoomIn, FiZoomOut, FiGitMerge, FiLink, } from 'react-icons/fi/index.js';\nexport const PackageIcon = FiPackage;\nexport const MinusIcon = FiMinus;\nexport const MousePointerIcon = FiMousePointer;\nexport const MoveIcon = FiMove;\nexport const PlusCircleIcon = FiPlusCircle;\nexport const SidebarIcon = FiSidebar;\nexport const TriangleIcon = FiTriangle;\nexport const ZoomInIcon = FiZoomIn;\nexport const ZoomOutIcon = FiZoomOut;\nexport const TruncatedGitMergeIcon = FiGitMerge; // to be reviewed/combined\nexport const AnchorLinkIcon = FiLink;\n//======================================================= RI =======================================================\nimport { RiShapeLine, RiShareBoxFill, RiTestTubeFill, RiRobotFill, RiGovernmentFill, RiMoneyDollarCircleFill, } from 'react-icons/ri/index.js';\nexport const ShareBoxIcon = RiShareBoxFill;\nexport const ShapeLineIcon = RiShapeLine;\nexport const TestTubeIcon = RiTestTubeFill;\nexport const DroidIcon = RiRobotFill;\nexport const GovernanceIcon = RiGovernmentFill;\nexport const CostCircleIcon = RiMoneyDollarCircleFill;\n//======================================================= Fc =======================================================\nimport { FcWorkflow } from 'react-icons/fc/index.js';\nexport const WorkflowIcon = FcWorkflow;\n//# sourceMappingURL=Icon.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ApplicationError, assertErrorThrown, assertTrue, isString, } from '@finos/legend-shared';\nimport { action, makeObservable, observable } from 'mobx';\nexport const DEFAULT_NOTIFICATION_HIDE_TIME = 6000; // ms\nexport const DEFAULT_ERROR_NOTIFICATION_HIDE_TIME = 10000; // ms\nexport var NOTIFCATION_SEVERITY;\n(function (NOTIFCATION_SEVERITY) {\n NOTIFCATION_SEVERITY[\"ILEGAL_STATE\"] = \"ILEGAL_STATE\";\n NOTIFCATION_SEVERITY[\"ERROR\"] = \"ERROR\";\n NOTIFCATION_SEVERITY[\"WARNING\"] = \"WARNING\";\n NOTIFCATION_SEVERITY[\"SUCCESS\"] = \"SUCCESS\";\n NOTIFCATION_SEVERITY[\"INFO\"] = \"INFO\";\n})(NOTIFCATION_SEVERITY || (NOTIFCATION_SEVERITY = {}));\nexport class Notification {\n severity;\n message;\n actions;\n autoHideDuration;\n constructor(severity, message, actions, autoHideDuration) {\n this.severity = severity;\n this.message = message;\n this.actions = actions;\n this.autoHideDuration = autoHideDuration;\n }\n}\nexport class NotificationService {\n notification;\n constructor() {\n makeObservable(this, {\n notification: observable,\n setNotification: action,\n notify: action,\n notifySuccess: action,\n notifyWarning: action,\n notifyIllegalState: action,\n notifyError: action,\n });\n }\n setNotification(notification) {\n this.notification = notification;\n }\n notify(message, actions, autoHideDuration) {\n this.setNotification(new Notification(NOTIFCATION_SEVERITY.INFO, message, actions ?? [], autoHideDuration === null\n ? undefined\n : autoHideDuration ?? DEFAULT_NOTIFICATION_HIDE_TIME));\n }\n notifySuccess(message, actions, autoHideDuration) {\n this.setNotification(new Notification(NOTIFCATION_SEVERITY.SUCCESS, message, actions ?? [], autoHideDuration === null\n ? undefined\n : autoHideDuration ?? DEFAULT_NOTIFICATION_HIDE_TIME));\n }\n notifyWarning(content, actions, autoHideDuration) {\n this.setNotification(new Notification(NOTIFCATION_SEVERITY.WARNING, content instanceof Error ? content.message : content, actions ?? [], autoHideDuration === null\n ? undefined\n : autoHideDuration ?? DEFAULT_NOTIFICATION_HIDE_TIME));\n }\n notifyError(content, actions) {\n let message;\n if (content instanceof ApplicationError) {\n message = content.detail;\n }\n else if (content instanceof Error) {\n message = content.message;\n }\n else {\n assertTrue(isString(content), `Can't display error`);\n message = content;\n }\n if (message) {\n this.setNotification(new Notification(NOTIFCATION_SEVERITY.ERROR, message, actions ?? [], undefined));\n }\n }\n notifyIllegalState(message, actions, autoHideDuration) {\n this.setNotification(new Notification(NOTIFCATION_SEVERITY.ILEGAL_STATE, isString(message) ? `[PLEASE NOTIFY DEVELOPER] ${message}` : message, actions ?? [], autoHideDuration === null\n ? undefined\n : autoHideDuration ?? DEFAULT_NOTIFICATION_HIDE_TIME));\n }\n notifyUnsupportedFeature(featureName) {\n this.notifyWarning(`Unsupported feature: ${featureName}`);\n }\n /**\n * This function creates a more user-friendly way to throw error in the UI. Rather than crashing the whole app, we will\n * just notify and replacing the value should get with an alternative (e.g. `undefined`). A good use-case for this\n * is where we would not expect an error to throw (i.e. `IllegalStateError`), but we want to be sure that if the error\n * ever occurs, it still shows very apparently in the UI, as such, printing out in the console is not good enough,\n * but crashing the app is bad too, so this is a good balance.\n */\n notifyAndReturnAlternativeOnError = (fn, alternative) => {\n try {\n return fn();\n }\n catch (error) {\n assertErrorThrown(error);\n this.notifyIllegalState(error.message);\n return alternative;\n }\n };\n}\n//# sourceMappingURL=NotificationService.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { observer } from 'mobx-react-lite';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nimport { Notification, NotificationContent, ChevronDownIcon, ChevronUpIcon, TimesIcon, ExclamationTriangleIcon, TimesCircleIcon, CheckCircleIcon, InfoCircleIcon, BugIcon, clsx, } from '@finos/legend-art';\nimport { useState } from 'react';\nimport { DEFAULT_NOTIFICATION_HIDE_TIME, NOTIFCATION_SEVERITY, } from '../stores/NotificationService.js';\nexport const NotificationManager = observer(() => {\n const applicationStore = useApplicationStore();\n const notification = applicationStore.notificationService.notification;\n const isOpen = Boolean(notification);\n const message = notification?.message ?? '';\n const severity = notification?.severity ?? NOTIFCATION_SEVERITY.INFO;\n const [isExpanded, setIsExpanded] = useState(false);\n let notificationIcon = (_jsx(\"div\", { className: \"notification__message__content__icon notification__message__content__icon--info\", children: _jsx(InfoCircleIcon, {}) }));\n switch (severity) {\n case NOTIFCATION_SEVERITY.ILEGAL_STATE:\n notificationIcon = (_jsx(\"div\", { className: \"notification__message__content__icon notification__message__content__icon--error\", children: _jsx(BugIcon, {}) }));\n break;\n case NOTIFCATION_SEVERITY.ERROR:\n notificationIcon = (_jsx(\"div\", { className: \"notification__message__content__icon notification__message__content__icon--error\", children: _jsx(TimesCircleIcon, {}) }));\n break;\n case NOTIFCATION_SEVERITY.WARNING:\n notificationIcon = (_jsx(\"div\", { className: \"notification__message__content__icon notification__message__content__icon--warning\", children: _jsx(ExclamationTriangleIcon, {}) }));\n break;\n case NOTIFCATION_SEVERITY.SUCCESS:\n notificationIcon = (_jsx(\"div\", { className: \"notification__message__content__icon notification__message__content__icon--success\", children: _jsx(CheckCircleIcon, {}) }));\n break;\n default:\n break;\n }\n const handleClose = () => {\n applicationStore.notificationService.setNotification(undefined);\n setIsExpanded(false);\n };\n const handleCopy = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(message));\n const toggleExpansion = () => setIsExpanded(!isExpanded);\n const onSnackbarAutoHideOrClickAway = (event, reason) => {\n // NOTE: we only should not allow dismissing the notification on click-away. First of call, this might not be desirable\n // second, this clashes with modal that traps focus, e.g. when we have another modal open and want to show a notification\n // the notification focus is stolen by the modal leading to the notification immediately gets clicked-away and closed\n if (reason === 'timeout') {\n handleClose();\n }\n };\n return (_jsx(Notification, { classes: {\n root: 'notification',\n anchorOriginBottomRight: 'notification__position',\n }, anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n }, open: isOpen, \n // setting the auto-hide duration to null will stop it from hiding automatically\n autoHideDuration: notification\n ? notification.autoHideDuration ?? null\n : DEFAULT_NOTIFICATION_HIDE_TIME, onClose: onSnackbarAutoHideOrClickAway, children: _jsx(NotificationContent, { classes: {\n root: 'notification__content',\n message: 'notification__message',\n action: 'notification__actions',\n }, message: _jsxs(\"div\", { className: \"notification__message__content\", children: [notificationIcon, _jsx(\"div\", { className: clsx('notification__message__content__text', {\n 'notification__message__content__text--expanded': isExpanded,\n }), onClick: handleCopy, title: \"Click to Copy\", children: message })] }), action: [\n _jsx(\"button\", { className: \"notification__action\", onClick: toggleExpansion, tabIndex: -1, title: isExpanded ? 'Collapse' : 'Expand', children: isExpanded ? _jsx(ChevronDownIcon, {}) : _jsx(ChevronUpIcon, {}) }, \"expand\"),\n _jsx(\"button\", { className: \"notification__action\", onClick: handleClose, tabIndex: -1, title: \"Dismiss\", children: _jsx(TimesIcon, {}) }, \"close\"),\n ] }) }, typeof message === 'string' || typeof message === 'number'\n ? message\n : ''));\n});\n//# sourceMappingURL=NotificationManager.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Menu as MuiMenu } from '@mui/material';\nexport const BaseMenu = (props) => {\n const { children, classes, ...otherProps } = props;\n return (_jsx(MuiMenu, { classes: {\n ...(classes ?? {}),\n paper: 'mui-menu__paper',\n list: 'mui-menu__list',\n }, transitionDuration: 0, ...otherProps, children: props.children }));\n};\n//# sourceMappingURL=BaseMenu.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useState, useRef } from 'react';\nimport { BaseMenu } from './BaseMenu.js';\nexport const ContextMenu = (props) => {\n const { className, children, menuProps, content, disabled, onClose, onOpen } = props;\n const contextMenuRoot = useRef(null);\n const [isOpen, setIsOpen] = useState(false);\n const [anchorEl, setAnchorEl] = useState();\n const [left, setLeft] = useState(0);\n const [top, setTop] = useState(0);\n const reset = () => {\n setAnchorEl(undefined);\n setIsOpen(false);\n setTop(0);\n setLeft(0);\n };\n const close = (event) => {\n event.stopPropagation();\n event.preventDefault();\n reset();\n onClose?.();\n };\n const onContextMenu = (event) => {\n event.stopPropagation();\n event.preventDefault();\n if (disabled) {\n return;\n }\n onOpen?.();\n if (contextMenuRoot.current) {\n // Get position of the container element relative to the page document\n // See https://plainjs.com/javascript/styles/get-the-position-of-an-element-relative-to-the-document-24/\n const containerRect = contextMenuRoot.current.getBoundingClientRect();\n const containerLeft = containerRect.left +\n (window.scrollX || document.documentElement.scrollLeft);\n const containerTop = containerRect.top +\n (window.scrollY || document.documentElement.scrollTop);\n const { clientX, clientY, target } = event;\n const eventTarget = target;\n if (anchorEl !== eventTarget) {\n // NOTE: since this method is not supported in JSDom, we will disable this optimization in test\n // eslint-disable-next-line no-process-env\n if (process.env.NODE_ENV !== 'test') {\n const elements = document.elementsFromPoint(clientX, clientY);\n // Besides checking for the element containment, we also want to check for position as MUI\n // Menu have a background that spans the whole screen to check for clickout and trap focus\n // which means right click on other part of the screen will also result in context menu being shown\n const hasAnchor = elements.some((element) => element === eventTarget) &&\n containerLeft <= clientX &&\n clientX <= containerLeft + containerRect.width &&\n containerTop <= clientY &&\n clientY <= containerTop + containerRect.height;\n if (!hasAnchor) {\n reset();\n onClose?.();\n return;\n }\n }\n }\n setAnchorEl(eventTarget);\n setIsOpen(true);\n setTop(clientY);\n setLeft(clientX);\n }\n };\n return (_jsxs(\"div\", { ref: contextMenuRoot, className: className, onContextMenu: onContextMenu, children: [children, _jsx(BaseMenu, { open: isOpen, anchorPosition: { left, top }, onClose: close, anchorReference: \"anchorPosition\", BackdropProps: {\n invisible: true,\n onContextMenu,\n }, disableRestoreFocus: true, transitionDuration: 0, onClick: close, ...menuProps, children: isOpen && content }, `${left}, ${top}`)] }));\n};\n//# sourceMappingURL=ContextMenu.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { generateSimpleDIVComponent } from '../utils/ComponentCreatorUtils.js';\nexport const MenuContent = forwardRef(function MenuContent(props, ref) {\n const { className, children, ...otherProps } = props;\n return (_jsx(\"div\", { ref: ref, className: clsx('menu', className), ...otherProps, children: children }));\n});\nexport const MenuContentItem = (props) => {\n const { className, onClick, title, disabled, children, ...otherProps } = props;\n return (_jsx(\"button\", { className: clsx('menu__item', className), disabled: Boolean(disabled), title: title, onClick: onClick, ...otherProps, children: children }));\n};\nexport const MenuContentDivider = generateSimpleDIVComponent('MenuContentDivider', 'menu__divider');\nexport const MenuContentItemIcon = generateSimpleDIVComponent('MenuContentItemIcon', 'menu__item__icon');\nexport const MenuContentItemBlankIcon = (props) => {\n const { className, ...otherProps } = props;\n return (_jsx(\"div\", { className: clsx('menu__item__icon', className), ...otherProps }));\n};\nexport const MenuContentItemLabel = generateSimpleDIVComponent('MenuContentItemLabel', 'menu__item__label');\n//# sourceMappingURL=MenuContent.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport ReactMarkdown from 'react-markdown';\nimport remarkGFM from 'remark-gfm';\nimport { clsx } from 'clsx';\nimport { useEffect } from 'react';\nimport mermaid from 'mermaid';\nexport const MarkdownTextViewer = (props) => {\n useEffect(() => {\n // this will render the mermaid diagram\n mermaid.initialize({ startOnLoad: true, theme: 'dark' });\n mermaid.contentLoaded();\n }, [props.value]);\n return (_jsx(ReactMarkdown, { className: clsx('markdown-content', props.className), remarkPlugins: [remarkGFM], components: props.components ?? {\n // customize the rendering of the <code> block, if the language is mermaid\n // the class name must include `mermaid` and it will get picked up by the mermaid renderer\n code: (_props) => {\n const { children, className, node, ...rest } = _props;\n const match = /language-(?<language>\\w+)/.exec(className ?? '');\n return match?.groups?.language ? (_jsx(\"code\", { ...rest, className: clsx(match.groups.language), children: children })) : (_jsx(\"code\", { ...rest, className: className, children: children }));\n },\n }, children: props.value.value }));\n};\n//# sourceMappingURL=MarkdownTextViewer.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useEffect, useState } from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\nimport { clsx } from 'clsx';\nconst DEFAULT_CONTENT_PADDING = 20;\n/**\n * Use this component for panel with empty content, it has a resize detector that will\n * help to show/hide the content as the panel is resized\n */\nexport const BlankPanelContent = (props) => {\n const { children } = props;\n const { ref: contentRef, width: contentWidth, height: contentHeight, } = useResizeDetector({\n refreshMode: 'throttle',\n refreshRate: 50,\n refreshOptions: { trailing: true },\n });\n const [showContent, setShowContent] = useState(false);\n const { ref: containerRef, width: containerWidth, height: containerHeight, } = useResizeDetector({\n refreshMode: 'throttle',\n refreshRate: 50,\n refreshOptions: { trailing: true },\n });\n useEffect(() => {\n setShowContent((containerWidth ?? 0) >\n (contentWidth ?? 0) + DEFAULT_CONTENT_PADDING * 2 &&\n (containerHeight ?? 0) >\n (contentHeight ?? 0) + DEFAULT_CONTENT_PADDING * 2);\n }, [containerWidth, containerHeight, contentWidth, contentHeight]);\n return (_jsx(\"div\", { ref: containerRef, className: \"panel__content__blank\", children: _jsx(\"div\", { ref: contentRef, className: clsx('panel__content__blank__content', {\n 'panel__content__blank__content--hide': !showContent,\n }), children: children }) }));\n};\n//# sourceMappingURL=BlankPanelContent.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { RadioGroup as MuiRadioGroup, FormControlLabel, Radio, } from '@mui/material';\nimport { clsx } from 'clsx';\nconst transformToMatrix = (arr, stepSize) => {\n const matrix = [];\n for (let i = 0; i < arr.length; i += stepSize) {\n matrix.push(arr.slice(i, i + stepSize));\n }\n return matrix;\n};\nexport const BaseRadioGroup = (props) => {\n const { children, options, size, className, ...otherProps } = props;\n // For displaying avaible options in a [n,size] matrix\n const targetOptionsValuesInMatrix = transformToMatrix(options, size);\n return (_jsxs(\"div\", { className: clsx('mui-radio-group', className), children: [targetOptionsValuesInMatrix.map((row, idx) => (\n // eslint-disable-next-line react/no-array-index-key\n _jsx(\"div\", { children: _jsx(MuiRadioGroup, { className: \"mui-radio-group__group\", ...otherProps, children: row.map((op) => (_jsx(FormControlLabel, { className: \"mui-radio-group__group__column\", style: { width: `${100 / size}%` }, value: op, control: _jsx(Radio, { className: \"mui-radio-group__group__item__radio-btn\" }), label: _jsx(\"div\", { className: \"mui-radio-group__group__item__label\", children: op }) }, op))) }) }, idx))), children] }));\n};\n//# sourceMappingURL=BaseRadioGroup.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Popover as MuiPopover, } from '@mui/material';\nexport const BasePopover = (props) => {\n const { children, ...otherProps } = props;\n return (_jsx(MuiPopover, { classes: {\n paper: 'mui-popover__paper',\n }, transitionDuration: 0, ...otherProps, children: props.children }));\n};\n//# sourceMappingURL=BasePopover.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var LEGEND_APPLICATION_DOCUMENTATION_KEY;\n(function (LEGEND_APPLICATION_DOCUMENTATION_KEY) {\n LEGEND_APPLICATION_DOCUMENTATION_KEY[\"QUESTION_HOW_TO_USE_ADVANCED_SEARCH_SYNTAX\"] = \"question.how-to-use-advanced-search-syntax\";\n})(LEGEND_APPLICATION_DOCUMENTATION_KEY || (LEGEND_APPLICATION_DOCUMENTATION_KEY = {}));\n//# sourceMappingURL=LegendApplicationDocumentation.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { clsx, TimesIcon, SearchIcon, MapMarkerIcon, CloseIcon, ContextMenu, MenuContent, MenuContentItem, MarkdownTextViewer, ChevronDownIcon, ChevronRightIcon, BlankPanelContent, BeardIcon, SunglassesIcon, WizardHatIcon, FaceLaughWinkIcon, ThinVerticalDragHandleIcon, PanelLoadingIndicator, BasePopover, FaceSadTearIcon, CogIcon, Draggable, BaseRadioGroup, QuestionCircleIcon, EmptyWindowRestoreIcon, WindowMaximizeIcon, MinusCircleIcon, } from '@finos/legend-art';\nimport { ADVANCED_FUZZY_SEARCH_MODE, ContentType, debounce, downloadFileUsingDataURI, formatDate, isString, uuid, } from '@finos/legend-shared';\nimport { observer } from 'mobx-react-lite';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { DEFAULT_DATE_TIME_FORMAT, DEFAULT_TAB_SIZE, } from '../stores/ApplicationConfig.js';\nimport { VIRTUAL_ASSISTANT_TAB, } from '../stores/AssistantService.js';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nimport { LegendApplicationTelemetryHelper } from '../__lib__/LegendApplicationTelemetry.js';\nimport { LEGEND_APPLICATION_DOCUMENTATION_KEY } from '../__lib__/LegendApplicationDocumentation.js';\nconst WIZARD_GREETING = `Bonjour, It's Pierre!`;\nconst VirtualAssistantDocumentationEntryViewer = observer((props) => {\n const { entry } = props;\n const applicationStore = useApplicationStore();\n const toggleExpand = () => {\n if (!entry.isOpen) {\n LegendApplicationTelemetryHelper.logEvent_VirtualAssistantDocumentationEntryAccessed(applicationStore.telemetryService, {\n key: entry.documentationKey,\n });\n }\n entry.setIsOpen(!entry.isOpen);\n };\n const onDocumentationLinkClick = () => {\n LegendApplicationTelemetryHelper.logEvent_VirtualAssistantDocumentationEntryAccessed(applicationStore.telemetryService, {\n key: entry.documentationKey,\n });\n };\n const copyDocumentationKey = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(entry.documentationKey));\n return (_jsx(ContextMenu, { className: \"virtual-assistant__doc-entry\", menuProps: {\n elevation: 7,\n classes: {\n root: 'virtual-assistant__context-menu',\n },\n }, content: _jsx(MenuContent, { children: _jsx(MenuContentItem, { onClick: copyDocumentationKey, children: \"Copy Documentation Key\" }) }), children: _jsxs(\"div\", { className: \"virtual-assistant__doc-entry\", children: [_jsxs(\"div\", { className: \"virtual-assistant__doc-entry__header\", children: [_jsx(\"button\", { className: clsx('virtual-assistant__doc-entry__expand-icon', {\n 'virtual-assistant__doc-entry__expand-icon--disabled': !entry.content,\n }), disabled: !entry.content, tabIndex: -1, onClick: toggleExpand, children: entry.isOpen ? _jsx(ChevronDownIcon, {}) : _jsx(ChevronRightIcon, {}) }), entry.url ? (_jsx(\"a\", { className: \"virtual-assistant__doc-entry__title virtual-assistant__doc-entry__title--link\", rel: \"noopener noreferrer\", target: \"_blank\", href: entry.url, onClick: onDocumentationLinkClick, title: \"Click to see external documentation\", children: entry.title })) : (_jsx(\"div\", { className: \"virtual-assistant__doc-entry__title\", onClick: toggleExpand, children: entry.title }))] }), entry.isOpen && entry.content && (_jsx(\"div\", { className: \"virtual-assistant__doc-entry__content\", children: isString(entry.content) ? (_jsx(\"div\", { className: \"virtual-assistant__doc-entry__content__text\", children: entry.content })) : (_jsx(MarkdownTextViewer, { className: \"virtual-assistant__doc-entry__content__markdown-text\", value: entry.content })) }))] }) }));\n});\nconst VirtualAssistantContextualSupportPanel = observer(() => {\n const applicationStore = useApplicationStore();\n const assistantService = applicationStore.assistantService;\n const contextualEntry = assistantService.currentContextualDocumentationEntry;\n const copyContextIDToClipboard = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(contextualEntry?.context ?? ''));\n const copyCurrentContextIDToClipboard = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(applicationStore.navigationContextService.currentContext?.key ?? ''));\n const copyContextStackToClipboard = applicationStore.guardUnhandledError(() => applicationStore.clipboardService.copyTextToClipboard(applicationStore.navigationContextService.contextStack\n .map((context) => context.key)\n .join(' > ')));\n return (_jsxs(ContextMenu, { className: \"virtual-assistant__contextual-support\", disabled: !contextualEntry, menuProps: {\n elevation: 7,\n classes: {\n root: 'virtual-assistant__context-menu',\n },\n }, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: copyContextIDToClipboard, children: \"Copy Context ID\" }), _jsx(MenuContentItem, { onClick: copyCurrentContextIDToClipboard, children: \"Copy Current Context ID\" }), _jsx(MenuContentItem, { onClick: copyContextStackToClipboard, children: \"Copy Context Stack\" })] }), children: [contextualEntry && (_jsxs(\"div\", { className: \"virtual-assistant__contextual-support__content\", children: [contextualEntry.title && (_jsx(\"div\", { className: \"virtual-assistant__contextual-support__title\", children: contextualEntry.title })), contextualEntry.content && (_jsx(_Fragment, { children: isString(contextualEntry.content) ? (_jsx(\"div\", { className: \"virtual-assistant__contextual-support__text\", children: contextualEntry.content })) : (_jsx(MarkdownTextViewer, { className: \"virtual-assistant__contextual-support__markdown-text\", value: contextualEntry.content })) })), contextualEntry.related.length && (_jsxs(\"div\", { className: \"virtual-assistant__contextual-support__relevant-entries\", children: [_jsxs(\"div\", { className: \"virtual-assistant__contextual-support__relevant-entries__title\", children: [\"Related entries (\", contextualEntry.related.length, \")\"] }), contextualEntry.related.map((entry) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: entry }, entry.uuid)))] }))] })), !contextualEntry && (_jsx(BlankPanelContent, { children: _jsxs(\"div\", { className: \"virtual-assistant__panel__placeholder\", children: [_jsx(FaceLaughWinkIcon, { className: \"virtual-assistant__panel__placeholder__icon\" }), _jsx(\"div\", { className: \"virtual-assistant__panel__placeholder__message\", children: \"No contextual documentation found!\" }), _jsx(\"div\", { className: \"virtual-assistant__panel__placeholder__instruction\", children: \"Keep using the app. When contextual help is available, we will let you know!\" })] }) }))] }));\n});\nconst VirtualAssistantSearchPanel = observer(() => {\n const applicationStore = useApplicationStore();\n const searchInputRef = useRef(null);\n const assistantService = applicationStore.assistantService;\n // search text\n const searchText = assistantService.searchText;\n const debouncedSearch = useMemo(() => debounce(() => assistantService.search(), 100), [assistantService]);\n const onSearchTextChange = (event) => {\n assistantService.setSearchText(event.target.value);\n debouncedSearch();\n };\n const clearSearchText = () => {\n assistantService.resetSearch();\n assistantService.currentDocumentationEntry = undefined;\n searchInputRef.current?.focus();\n };\n const toggleSearchConfigMenu = () => assistantService.setShowSearchConfigurationMenu(!assistantService.showSearchConfigurationMenu);\n const downloadDocRegistry = () => {\n downloadFileUsingDataURI(`documentation-registry_${formatDate(new Date(Date.now()), DEFAULT_DATE_TIME_FORMAT)}.json`, JSON.stringify(applicationStore.documentationService.publishDocRegistry(), undefined, DEFAULT_TAB_SIZE), ContentType.APPLICATION_JSON);\n };\n const downloadContextualDocIndex = () => {\n downloadFileUsingDataURI(`documentation-registry_${formatDate(new Date(Date.now()), DEFAULT_DATE_TIME_FORMAT)}.json`, JSON.stringify(applicationStore.documentationService.publishContextualDocIndex(), undefined, DEFAULT_TAB_SIZE), ContentType.APPLICATION_JSON);\n };\n useEffect(() => {\n searchInputRef.current?.focus();\n }, []);\n return (_jsxs(\"div\", { className: \"virtual-assistant__search\", children: [_jsxs(\"div\", { className: \"virtual-assistant__search__header\", children: [_jsx(\"input\", { ref: searchInputRef, \n /**\n * NOTE: In the scenario where another modal is opened at the same time the assistant panel\n * is open, the focus will be stolen by the newly opened modal. In that case, we need\n * to take back the focus. The trick here is to remount the whole panel (modal/popover)\n * by refreshing the `key` prop of the panel. This will cause `mui` to recompute the\n * focus-trap and allow the input field to be selectable again. Basically, we are stealing\n * back the focus for the assistant.\n *\n * However, the caveat is that this will cause the component states, such as scroll positions,\n * to be reset as such, we need to do this really sparingly. In fact, the only\n * scenario where we need to do this is when a new modal is opened when the assistant panel\n * is already opened. Basically, Other scenarios, such as when the assistant is opened after the modal\n * is opened seem to pose no issue.\n */\n onClick: () => {\n if (\n // only when there are dialogs being opened\n // NOTE: this seems rather hacky, but querying by role is the least\n // vendor-dependent approach we can think of at the moment\n document.querySelectorAll('[role=\"dialog\"]').length &&\n // only when the focus is not already with the input field\n // this means the focus is being stolen from the assistant because\n // the newly opened modal is opened more recently than the assistant\n //\n // once the focus has been gained by the assistant\n // we will not need to do this anymore\n searchInputRef.current !== document.activeElement) {\n assistantService.refreshPanelRendering();\n }\n }, className: clsx('virtual-assistant__search__input input--dark', {\n 'virtual-assistant__search__input--searching': searchText,\n }), spellCheck: false, onChange: onSearchTextChange, value: searchText, placeholder: \"Ask me a question\" }), searchText && (_jsx(\"div\", { className: \"virtual-assistant__search__input__search__count\", children: assistantService.searchResults.length +\n (assistantService.isOverSearchLimit ? '+' : '') })), _jsx(\"button\", { className: clsx('virtual-assistant__search__input__config__trigger', {\n 'virtual-assistant__search__input__config__trigger--toggled': assistantService.showSearchConfigurationMenu,\n 'virtual-assistant__search__input__config__trigger--active': assistantService.searchConfigurationState.isAdvancedSearchActive,\n }), tabIndex: -1, onClick: toggleSearchConfigMenu, title: `${assistantService.searchConfigurationState.isAdvancedSearchActive\n ? 'Advanced search is currently active\\n'\n : ''}Click to toggle search config menu`, children: _jsx(CogIcon, {}) }), !searchText ? (_jsx(\"div\", { className: \"virtual-assistant__search__input__search__icon\", children: _jsx(SearchIcon, {}) })) : (_jsx(\"button\", { className: \"virtual-assistant__search__input__clear-btn\", tabIndex: -1, onClick: clearSearchText, title: \"Clear\", children: _jsx(TimesIcon, {}) }))] }), _jsxs(\"div\", { className: \"virtual-assistant__search__content\", children: [_jsx(PanelLoadingIndicator, { isLoading: assistantService.searchState.isInProgress }), _jsx(\"div\", { className: clsx('virtual-assistant__search__input__config__panel', {\n 'virtual-assistant__search__input__config__panel--toggled': assistantService.showSearchConfigurationMenu,\n }), children: _jsxs(\"div\", { className: \"virtual-assistant__search__input__advanced-config__panel\", children: [_jsxs(\"div\", { className: \"virtual-assistant__search__input__advanced-config__panel__header__label\", children: [\"search config\", applicationStore.documentationService.hasDocEntry(LEGEND_APPLICATION_DOCUMENTATION_KEY.QUESTION_HOW_TO_USE_ADVANCED_SEARCH_SYNTAX) && (_jsx(\"div\", { onClick: () => assistantService.openDocumentationEntryLink(LEGEND_APPLICATION_DOCUMENTATION_KEY.QUESTION_HOW_TO_USE_ADVANCED_SEARCH_SYNTAX), title: \"Click to see documentation\", className: \"virtual-assistant__search__input__advanced-config__panel__header__label__hint\", children: _jsx(QuestionCircleIcon, {}) }))] }), _jsx(\"div\", { children: _jsx(BaseRadioGroup, { value: assistantService.searchConfigurationState.currentMode, onChange: (event) => {\n const searchMode = event.target\n .value;\n assistantService.searchConfigurationState.setCurrentMode(searchMode);\n }, row: false, options: [\n ADVANCED_FUZZY_SEARCH_MODE.STANDARD,\n ADVANCED_FUZZY_SEARCH_MODE.INCLUDE,\n ADVANCED_FUZZY_SEARCH_MODE.EXACT,\n ADVANCED_FUZZY_SEARCH_MODE.INVERSE,\n ], size: 1 }) })] }) }), assistantService.currentDocumentationEntry && (_jsx(\"div\", { className: \"virtual-assistant__search__results\", children: _jsx(VirtualAssistantDocumentationEntryViewer, { entry: assistantService.currentDocumentationEntry }, assistantService.currentDocumentationEntry.uuid) })), !assistantService.currentDocumentationEntry && (_jsxs(_Fragment, { children: [Boolean(assistantService.searchResults.length) && (_jsx(\"div\", { className: \"virtual-assistant__search__results\", children: assistantService.searchResults.map((result) => (_jsx(VirtualAssistantDocumentationEntryViewer, { entry: result }, result.uuid))) })), searchText && !assistantService.searchResults.length && (_jsx(BlankPanelContent, { children: _jsxs(\"div\", { className: \"virtual-assistant__panel__placeholder\", children: [_jsx(FaceSadTearIcon, { className: \"virtual-assistant__panel__placeholder__icon\" }), _jsx(\"div\", { className: \"virtual-assistant__panel__placeholder__message\", children: \"No result...\" })] }) })), !searchText && !assistantService.searchResults.length && (_jsx(ContextMenu, { className: \"virtual-assistant__character__container\", menuProps: {\n elevation: 7,\n classes: {\n root: 'virtual-assistant__context-menu',\n },\n }, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: downloadDocRegistry, children: \"Download documentation registry\" }), _jsx(MenuContentItem, { onClick: downloadContextualDocIndex, children: \"Download contextual documentation mapping\" })] }), children: _jsxs(\"div\", { className: \"virtual-assistant__character\", children: [_jsxs(\"div\", { className: \"virtual-assistant__character__figure\", children: [_jsx(WizardHatIcon, { className: \"virtual-assistant__character__hat\" }), _jsx(SunglassesIcon, { className: \"virtual-assistant__character__glasses\" }), _jsx(BeardIcon, { className: \"virtual-assistant__character__beard\" })] }), _jsx(\"div\", { className: \"virtual-assistant__character__greeting\", children: WIZARD_GREETING }), _jsx(\"div\", { className: \"virtual-assistant__character__question\", children: \"How can I help today?\" })] }) }))] }))] })] }));\n});\nconst VirtualAssistantPanel = observer((props) => {\n const { triggerElement } = props;\n const applicationStore = useApplicationStore();\n const assistantService = applicationStore.assistantService;\n const currentContextualDocumentationEntry = assistantService.currentContextualDocumentationEntry;\n const selectedTab = assistantService.selectedTab;\n const extraViewConfigurations = applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraVirtualAssistantViewConfigurations?.() ?? []);\n const currentExtensionView = extraViewConfigurations.find((config) => config.key === selectedTab);\n const toggleMaximize = () => assistantService.setIsPanelMaximized(!assistantService.isPanelMaximized);\n const selectSearch = () => assistantService.setSelectedTab(VIRTUAL_ASSISTANT_TAB.SEARCH);\n const selectContextualDoc = () => assistantService.setSelectedTab(VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT);\n const closeAssistantPanel = () => assistantService.setIsOpen(false);\n return (\n /**\n * The most appropriate component to use is `Popper`\n * as it does not block click-away\n * See https://mui.com/material-ui/react-popper/\n *\n * However, the caveat is that in the implementation of mui Popper\n * focus trap is not supported. As such, we could end up in a situation\n * where the assistant input fields will not be focusable\n * when another modal is being opened, as that newly opened modal will\n * **steal** the focus\n *\n * See https://github.com/finos/legend-studio/issues/1255\n * See https://mui.com/material-ui/react-modal/#focus-trap\n * See https://github.com/mui/material-ui/issues/17497\n */\n _jsx(BasePopover, { open: assistantService.isOpen, className: \"virtual-assistant__panel__container\", anchorEl: triggerElement, \n // we need to get rid of the backdrop and the click-away trap\n // to make this popover behave like a popper\n // NOTE: we will cancel the effect of click-away trap using CSS\n hideBackdrop: true, PaperProps: {\n classes: { root: 'virtual-assistant__panel__container__root' },\n }, \n // allow other modals to take the focus from the virtual assistant\n disableEnforceFocus: true, \n // NOTE: make sure the assistant is always fully displayed (not cropped)\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n }, transformOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n }, children: _jsxs(\"div\", { className: clsx('virtual-assistant__panel', {\n 'virtual-assistant__panel--maximized': assistantService.isPanelMaximized,\n }), \n // NOTE: here we block `tabbing` (to move focus). This is to counter the effect of\n // `disableEnforceFocus={true}` set in the assistant panel popover\n // this is the poor-man focus trap for the assistant to ensure\n // that we don't leak focus tab down to other parts of the app\n //\n // Especially, due to the hack we do to compete for focus when another modal\n // is opened, we need to do this to avoid leaking of focus to components\n // beneath the modal via assistant\n //\n // setting `tabIndex={0}` is a hack to make this DOM node focusable\n // and hence, we could trap the focus here using `onKeyDown`\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex\n tabIndex: 0, onKeyDown: (event) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n event.stopPropagation();\n }\n }, children: [_jsxs(\"div\", { className: \"virtual-assistant__panel__header\", children: [_jsxs(\"div\", { className: \"virtual-assistant__panel__header__tabs\", children: [_jsx(\"div\", { className: clsx('virtual-assistant__panel__header__tab', {\n 'virtual-assistant__panel__header__tab--active': selectedTab === VIRTUAL_ASSISTANT_TAB.SEARCH,\n }), onClick: selectSearch, title: \"Search\", children: _jsx(\"div\", { className: \"virtual-assistant__panel__header__tab__content\", children: _jsx(SearchIcon, {}) }) }), _jsx(\"div\", { className: clsx('virtual-assistant__panel__header__tab', {\n 'virtual-assistant__panel__header__tab--active': selectedTab === VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT,\n }), onClick: selectContextualDoc, title: \"Contextual Support\", children: _jsxs(\"div\", { className: \"virtual-assistant__panel__header__tab__content\", children: [_jsx(MapMarkerIcon, {}), currentContextualDocumentationEntry && (_jsx(\"div\", { className: \"virtual-assistant__panel__header__tab__indicator\", title: \"Contextual support available\" }))] }) }), extraViewConfigurations.map((config) => (_jsx(\"div\", { className: clsx('virtual-assistant__panel__header__tab', {\n 'virtual-assistant__panel__header__tab--active': selectedTab === config.key,\n }), onClick: () => {\n assistantService.setSelectedTab(config.key);\n if (config.autoExpandOnOpen) {\n assistantService.setIsPanelMaximized(true);\n }\n }, title: config.title, children: _jsx(\"div\", { className: \"virtual-assistant__panel__header__tab__content\", children: config.icon ?? _jsx(QuestionCircleIcon, {}) }) }, config.key)))] }), _jsxs(\"div\", { className: \"virtual-assistant__panel__header__actions\", children: [_jsx(\"button\", { className: \"virtual-assistant__panel__header__action\", tabIndex: -1, onClick: toggleMaximize, title: assistantService.isPanelMaximized ? 'Minimize' : 'Maximize', children: assistantService.isPanelMaximized ? (_jsx(EmptyWindowRestoreIcon, {})) : (_jsx(WindowMaximizeIcon, {})) }), _jsx(\"button\", { className: \"virtual-assistant__panel__header__action\", tabIndex: -1, onClick: closeAssistantPanel, title: \"Close\", children: _jsx(CloseIcon, { className: \"virtual-assistant__panel__icon__close\" }) })] })] }), _jsxs(\"div\", { className: \"virtual-assistant__panel__content\", children: [selectedTab === VIRTUAL_ASSISTANT_TAB.SEARCH && (_jsx(VirtualAssistantSearchPanel, {})), selectedTab === VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT && (_jsx(VirtualAssistantContextualSupportPanel, {})), currentExtensionView?.renderer()] })] }) }, assistantService.panelRenderingKey));\n});\nexport const VirtualAssistant = observer(() => {\n const [isDragging, setIsDragging] = useState(false);\n const [_key, _setKey] = useState(uuid());\n const applicationStore = useApplicationStore();\n const assistantRef = useRef(null);\n const assistantService = applicationStore.assistantService;\n const currentContextualDocumentationEntry = assistantService.currentContextualDocumentationEntry;\n const toggleAssistantPanel = () => {\n const newVal = !assistantService.isOpen;\n // open the contextual help tab when contextual help is available\n if (newVal && currentContextualDocumentationEntry) {\n assistantService.setSelectedTab(VIRTUAL_ASSISTANT_TAB.CONTEXTUAL_SUPPORT);\n }\n assistantService.setIsOpen(!assistantService.isOpen);\n };\n const hideAssistant = () => applicationStore.assistantService.hideAssistant();\n const resetPosition = () => {\n // close the panel since\n assistantService.setIsOpen(false);\n _setKey(uuid());\n };\n // drag and drop\n const onDragEnd = () => setIsDragging(false);\n const onDragStart = () => setIsDragging(true);\n useEffect(() => {\n if (assistantService.isHidden) {\n // reset to default position when we hide the assistant\n // so that when we open it the position is reset\n _setKey(uuid());\n }\n }, [assistantService.isHidden]);\n return (_jsx(Draggable\n // this is a trick so we could reset the default position of the assistant\n // See https://github.com/react-grid-layout/react-draggable/issues/214#issuecomment-270021423\n , { \n // make sure we cannot drag and drop outside of the screen\n bounds: \"parent\", onStart: onDragStart, onStop: onDragEnd, \n // limit the dnd trigger to only the drag handle\n handle: \".virtual-assistant__station__drag-handle\", children: _jsxs(\"div\", { className: \"virtual-assistant\", \n // NOTE: we have to set the `ref` at this level so even when the assistant is hidden\n // the element is still in the DOM so when we programmatically show the assistant panel\n // the anchor is available in time\n ref: assistantRef, children: [_jsxs(\"div\", { className: clsx('virtual-assistant__station', {\n 'virtual-assistant__station--hidden': assistantService.isHidden,\n 'virtual-assistant__station--active': Boolean(currentContextualDocumentationEntry),\n }), children: [_jsx(\"button\", { className: \"virtual-assistant__station__hide-button\", title: \"Hide assistant\", onClick: () => {\n applicationStore.assistantService.toggleAssistant();\n }, children: _jsx(MinusCircleIcon, {}) }), _jsx(\"button\", { className: \"virtual-assistant__station__trigger\", tabIndex: -1, onClick: toggleAssistantPanel, title: assistantService.isOpen\n ? `Click to close assistant panel`\n : `${currentContextualDocumentationEntry\n ? 'Contextual support available.\\n'\n : ''}Click to open Assistant...`, children: _jsxs(\"div\", { className: \"virtual-assistant__station__character\", children: [_jsx(WizardHatIcon, { className: \"virtual-assistant__station__character__hat\" }), _jsx(SunglassesIcon, { className: \"virtual-assistant__station__character__glasses\" }), _jsx(BeardIcon, { className: \"virtual-assistant__station__character__beard\" })] }) }), _jsx(\"div\", { className: \"virtual-assistant__station__label\", onClick: toggleAssistantPanel, children: \"Assistant\" }), _jsx(ContextMenu, { className: clsx('virtual-assistant__station__drag-handle', {\n 'virtual-assistant__station__drag-handle--dragging': isDragging,\n }), menuProps: {\n elevation: 7,\n classes: {\n root: 'virtual-assistant__context-menu',\n },\n }, content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: resetPosition, children: \"Reset Position\" }), _jsx(MenuContentItem, { onClick: hideAssistant, children: \"Hide Assistant\" })] }), children: _jsx(\"div\", { className: \"virtual-assistant__station__drag-handle__content\", title: isDragging ? undefined : 'Grab to drag assistant', children: _jsx(ThinVerticalDragHandleIcon, {}) }) })] }, currentContextualDocumentationEntry?.uuid ?? ''), !isDragging &&\n assistantService.isOpen &&\n !assistantService.isHidden &&\n assistantRef.current && (_jsx(VirtualAssistantPanel, { triggerElement: assistantRef.current }))] }) }, _key));\n});\n//# sourceMappingURL=VirtualAssistant.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Backdrop, LegendStyleProvider, Portal } from '@finos/legend-art';\nimport { observer } from 'mobx-react-lite';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { ActionAlert } from './ActionAlert.js';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nimport { BlockingAlert } from './BlockingAlert.js';\nimport { NotificationManager } from './NotificationManager.js';\nimport { useEffect } from 'react';\nimport { createKeybindingsHandler, } from '@finos/legend-shared';\nimport { VirtualAssistant } from './VirtualAssistant.js';\nimport { LegendApplicationTelemetryHelper } from '../__lib__/LegendApplicationTelemetry.js';\nvar APPLICATION_COMPONENT_ELEMENT_ID;\n(function (APPLICATION_COMPONENT_ELEMENT_ID) {\n APPLICATION_COMPONENT_ELEMENT_ID[\"TOP_LEVEL_CONTAINER\"] = \"application.top-level-container\";\n APPLICATION_COMPONENT_ELEMENT_ID[\"BACKDROP_CONTAINER\"] = \"application.backdrop-container\";\n})(APPLICATION_COMPONENT_ELEMENT_ID || (APPLICATION_COMPONENT_ELEMENT_ID = {}));\nconst PLATFORM_NATIVE_KEYBOARD_SHORTCUTS = [\n 'Meta+KeyP',\n 'Control+KeyP',\n 'Meta+KeyS',\n 'Control+KeyS',\n 'F8',\n 'F10',\n 'F11',\n 'Meta+Shift+KeyP',\n 'Control+Backquote',\n 'Control+Shift+KeyN',\n 'Control+Shift+KeyP',\n 'Meta+KeyB',\n 'Control+KeyB',\n 'F7',\n 'Alt+F7',\n 'Control+Shift+KeyB',\n 'Alt+KeyZ', // Mac: special symbol\n];\nconst buildHotkeysConfiguration = (commandKeyMap, handler) => {\n const keyMap = {};\n commandKeyMap.forEach((keyCombinations, commandKey) => {\n if (keyCombinations.length) {\n keyMap[commandKey] = {\n combinations: keyCombinations,\n handler,\n };\n }\n });\n // Disable platform native keyboard shortcuts\n // NOTE: due to the order in which hotkey configuration is searched and applied,\n // we must place these after application hotkey configuration\n const PLATFORM_NATIVE_KEYBOARD_COMMAND = 'INTERNAL__PLATFORM_NATIVE_KEYBOARD_COMMAND';\n keyMap[PLATFORM_NATIVE_KEYBOARD_COMMAND] = {\n combinations: PLATFORM_NATIVE_KEYBOARD_SHORTCUTS,\n handler: (keyCombination, event) => {\n // prevent default from potentially clashing key combinations\n event.preventDefault();\n },\n };\n return keyMap;\n};\n/**\n * Some elements (e.g. <canvas>) and components that we do not control the implementation\n * might have special logic to prevent `keydown` event bubbling naturally, this\n * method forces those event to surface to the top of the app and being handled\n * by keybinding service\n */\nexport const forceDispatchKeyboardEvent = (event, applicationStore) => {\n applicationStore.layoutService\n .getElementByID(APPLICATION_COMPONENT_ELEMENT_ID.TOP_LEVEL_CONTAINER)\n ?.dispatchEvent(new KeyboardEvent(event.type, event));\n};\n/**\n * Potential location to mount backdrop on\n *\n * NOTE: we usually want the backdrop container to be the first child of its immediate parent\n * so that it properly lies under the content that we pick to show on top of the backdrop\n */\nexport const BackdropContainer = (props) => (_jsx(\"div\", { className: \"backdrop__container\", \"data-elementid\": props.elementId }));\nexport const ApplicationComponentFrameworkProvider = observer((props) => {\n const { children } = props;\n const applicationStore = useApplicationStore();\n const disableContextMenu = (event) => {\n event.stopPropagation();\n event.preventDefault();\n };\n const keyBindingMap = buildHotkeysConfiguration(applicationStore.keyboardShortcutsService.commandKeyMap, (keyCombination, event) => {\n // prevent default from potentially clashing key combinations with platform native keyboard shortcuts\n // NOTE: Though tempting since it's a good way to simplify and potentially avoid conflicts,\n // we should not call `preventDefault()` because if we have any hotkey sequence which is too short,\n // such as `r`, `a` - we risk blocking some very common interaction, i.e. user typing, or even\n // constructing longer key combinations\n if (PLATFORM_NATIVE_KEYBOARD_SHORTCUTS.includes(keyCombination)) {\n event.preventDefault();\n }\n applicationStore.keyboardShortcutsService.dispatch(keyCombination);\n });\n useEffect(() => {\n const onKeyEvent = createKeybindingsHandler(keyBindingMap);\n document.addEventListener('keydown', onKeyEvent);\n return () => {\n document.removeEventListener('keydown', onKeyEvent);\n };\n }, [keyBindingMap]);\n /**\n * Keep track of when the application usage is interrupted (e.g. when the app window/tab is not in focus),\n * since for certain platform, background contexts are de-prioritized, given less resources, and hence, would\n * run less performantly; and might require particular handlings.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API#policies_in_place_to_aid_background_page_performance\n * See https://plumbr.io/blog/performance-blog/background-tabs-in-browser-load-20-times-slower\n */\n useEffect(() => {\n const onVisibilityChange = () => {\n if (document.hidden) {\n LegendApplicationTelemetryHelper.logEvent_ApplicationUsageInterrupted(applicationStore.telemetryService);\n applicationStore.timeService.recordUsageInterruption();\n }\n };\n document.addEventListener('visibilitychange', onVisibilityChange);\n return () => {\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n }, [applicationStore]);\n return (_jsxs(LegendStyleProvider, { children: [_jsx(BlockingAlert, {}), _jsx(ActionAlert, {}), _jsx(NotificationManager, {}), _jsx(VirtualAssistant, {}), applicationStore.layoutService.showBackdrop && (\n // We use <Portal> here to insert backdrop into different parts of the app\n // as backdrop relies heavily on z-index mechanism so its location in the DOM\n // really matters.\n // For example, the default location of the backdrop works fine for most cases\n // but if we want to use the backdrop for elements within modal dialogs, we would\n // need to mount the backdrop at a different location\n _jsx(Portal, { container: applicationStore.layoutService.getElementByID(applicationStore.layoutService.backdropContainerElementID ??\n APPLICATION_COMPONENT_ELEMENT_ID.BACKDROP_CONTAINER) ?? null, children: _jsx(Backdrop, { className: \"backdrop\", open: applicationStore.layoutService.showBackdrop }) })), _jsx(DndProvider, { backend: HTML5Backend, children: _jsxs(\"div\", { className: \"app__container\", \"data-elementid\": APPLICATION_COMPONENT_ELEMENT_ID.TOP_LEVEL_CONTAINER, \n // Disable global context menu so that only places in the app that supports context-menu will be effective\n onContextMenu: disableContextMenu, children: [_jsx(BackdropContainer, { elementId: APPLICATION_COMPONENT_ELEMENT_ID.BACKDROP_CONTAINER }), children] }) })] }));\n});\n//# sourceMappingURL=ApplicationComponentFrameworkProvider.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Terminal as XTermTerminal, } from 'xterm';\nimport { WebLinksAddon as XTermWebLinksAddon } from 'xterm-addon-web-links';\nimport { FitAddon as XTermFitAddon } from 'xterm-addon-fit';\nimport { SearchAddon as XTermSearchAddon, } from 'xterm-addon-search';\nimport { Unicode11Addon as XTermUnicode11Addon } from 'xterm-addon-unicode11';\nimport { WebglAddon as XTermWebglAddon } from 'xterm-addon-webgl';\nimport { DEFAULT_MONOSPACED_FONT_FAMILY, DEFAULT_TAB_SIZE, } from '../ApplicationConfig.js';\nimport { Terminal, DISPLAY_ANSI_ESCAPE, ANSI_moveCursor, } from './Terminal.js';\nimport { ActionState, guaranteeNonNullable, IllegalStateError, isMatchingKeyCombination, LogEvent, noop, prettyCONSTName, uniqBy, } from '@finos/legend-shared';\nimport { APPLICATION_EVENT } from '../../__lib__/LegendApplicationEvent.js';\nimport { forceDispatchKeyboardEvent } from '../../components/ApplicationComponentFrameworkProvider.js';\nconst LEGEND_XTERM_THEME = {\n foreground: '#cccccc',\n background: '#1e1e1e',\n cursor: '#cccccc',\n /** The accent color of the cursor (fg color for a block cursor) */\n // cursorAccent?: string;\n /** The selection background color when the terminal does not have focus (can be transparent) */\n // selectionInactiveBackground?: string;\n selectionBackground: '#264f78',\n black: '#000000',\n red: '#cd3131',\n green: '#0dbc79',\n yellow: '#e5e510',\n blue: '#2472c8',\n magenta: '#bc3fbc',\n cyan: '#11a8cd',\n white: '#e5e5e5',\n brightBlack: '#666666',\n brightRed: '#f14c4c',\n brightGreen: '#23d18b',\n brightYellow: '#f5f543',\n brightBlue: '#3b8eea',\n brightMagenta: '#d670d6',\n brightCyan: '#29b8db',\n brightWhite: '#e5e5e5',\n};\nconst LEGEND_XTERM_SEARCH_THEME = {\n matchOverviewRuler: '#d186167e',\n activeMatchColorOverviewRuler: '#A0A0A0CC',\n matchBackground: '#62331c',\n activeMatchBackground: '#515C6A',\n};\n// robot acsii art\n// See https://asciiartist.com/ascii-art-micro-robot/\nconst getHelpCommandContent = (commandRegistry) => `\n${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}+-------------------------------------------------------+${DISPLAY_ANSI_ESCAPE.RESET}\n${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}|${DISPLAY_ANSI_ESCAPE.RESET} ${DISPLAY_ANSI_ESCAPE.BRIGHT_GREEN}[@@]${DISPLAY_ANSI_ESCAPE.RESET} \"Hi! Welcome to the HELP menu of Pure IDE\" ${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}|${DISPLAY_ANSI_ESCAPE.RESET}\n${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}|${DISPLAY_ANSI_ESCAPE.RESET} ${DISPLAY_ANSI_ESCAPE.BRIGHT_GREEN}/|__|\\\\${DISPLAY_ANSI_ESCAPE.RESET} ${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}|${DISPLAY_ANSI_ESCAPE.RESET}\n${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}+--${DISPLAY_ANSI_ESCAPE.RESET} ${DISPLAY_ANSI_ESCAPE.BRIGHT_GREEN}d b${DISPLAY_ANSI_ESCAPE.RESET} ${DISPLAY_ANSI_ESCAPE.BRIGHT_BLACK}-----------------------------------------------+${DISPLAY_ANSI_ESCAPE.RESET}\n\nFollowing is the list of supported commands:\n\n${uniqBy(Array.from(commandRegistry.values()), (config) => config.command)\n .map((config) => `${DISPLAY_ANSI_ESCAPE.BRIGHT_GREEN}${config.command.padEnd(30)}${DISPLAY_ANSI_ESCAPE.RESET}${config.description}${config.aliases?.length\n ? `\\n${''.padEnd(30)}Aliases: ${config.aliases.join(', ')}`\n : ''}\\n${''.padEnd(30)}Usage: ${DISPLAY_ANSI_ESCAPE.DIM}${config.usage}${DISPLAY_ANSI_ESCAPE.RESET}`)\n .join('\\n')}`;\nconst getCommonANSIEscapeSequencesForStyling = () => `\nCommon ANSI Escape Sequences for Styling:\n\n${Object.entries(DISPLAY_ANSI_ESCAPE)\n .map(([key, value]) => `${value}${prettyCONSTName(key).padEnd(20)}${DISPLAY_ANSI_ESCAPE.RESET\n// NOTE: since these are recommended ANSI escape sequences which can be used\n// by users in strings input in Pure IDE, they have to be Unicode escape, if we send\n// the original hexadecimal escape as part of the string, some string escape handling\n// in Pure seems to escape the leading slash of the ANSI escape sequence \\x1B; however\n// this is not the case of the escape sequence for Unicode, \\u001b hence our logic here\n} ${value.replace('\\x1b', '\\\\u001b')}`)\n .join('\\n')}`;\nconst DEFAULT_USER = 'purist';\nconst DEFAULT_COMMAND_HEADER = `\n${DISPLAY_ANSI_ESCAPE.BOLD}${DISPLAY_ANSI_ESCAPE.BRIGHT_BLUE}$${DEFAULT_USER}${DISPLAY_ANSI_ESCAPE.RESET}\n${DISPLAY_ANSI_ESCAPE.BOLD}${DISPLAY_ANSI_ESCAPE.MAGENTA}\\u276f${DISPLAY_ANSI_ESCAPE.RESET} `;\nconst COMMAND_START = '\\u276f ';\nexport class XTerm extends Terminal {\n instance;\n resizer;\n renderer;\n searcher;\n webLinkProvider;\n _TEMPORARY__onKeyListener;\n _TEMPORARY__onDataListener;\n command = '';\n commandHistory = [];\n currentCommandSearchString = '';\n commandHistoryNavigationIdx = undefined;\n isRunningCommand = false;\n setupState = ActionState.create();\n constructor(applicationStore) {\n super(applicationStore);\n this.instance = new XTermTerminal({\n allowProposedApi: true,\n fontSize: 12,\n letterSpacing: 2,\n fontWeight: 400,\n fontWeightBold: 700,\n fontFamily: `\"${DEFAULT_MONOSPACED_FONT_FAMILY}\", Menlo, Consolas, monospace`,\n tabStopWidth: DEFAULT_TAB_SIZE,\n theme: LEGEND_XTERM_THEME,\n overviewRulerWidth: 14,\n scrollback: 100000,\n convertEol: true,\n // this is needed so we can control the cursor programmatically using escape sequences\n scrollOnUserInput: false,\n });\n this.resizer = new XTermFitAddon();\n this.searcher = new XTermSearchAddon();\n this.renderer = new XTermWebglAddon();\n }\n setup(configuration) {\n if (this.setupState.hasCompleted) {\n throw new IllegalStateError(`Terminal is already set up`);\n }\n this.setupState.complete();\n // Handling context loss: The browser may drop WebGL contexts for various reasons like OOM or after the system has been suspended.\n // An easy, but suboptimal way, to handle this is by disposing of WebglAddon when the `webglcontextlost` event fires\n // NOTE: we don't really have a resilient way to fallback right now, hopefully, the fallback is to render in DOM\n this.renderer.onContextLoss(() => {\n this.renderer.dispose();\n });\n this.instance.loadAddon(this.resizer);\n this.instance.loadAddon(this.searcher);\n this.instance.loadAddon(this.renderer);\n this.instance.loadAddon(new XTermUnicode11Addon());\n this.instance.unicode.activeVersion = '11';\n // NOTE: since we render the terminal using webgl/canvas, event is not bubbled\n // naturally through the DOM tree, we have to manually force this\n this.instance.attachCustomKeyEventHandler((event) => {\n // NOTE: this is a cheap way to handle hotkey, but this is really the only\n // hotkey we want to support at local scope of the terminal\n // also, since here we have prevent default and stop propagation, we have to do\n // this here instead at in `onKey` handler\n if (isMatchingKeyCombination(event, 'Control+KeyF') ||\n isMatchingKeyCombination(event, 'Meta+KeyF')) {\n // prevent default so as to not trigger browser platform search command\n event.preventDefault();\n event.stopPropagation();\n this.searchConfig.focus();\n return false;\n }\n else if (\n // NOTE: by default Ctrl+C gets sent to the shell as you wouldn't be able to use bash otherwise.\n // We need this special handling here for normal copy behavior on Windows.\n // Paste (Ctrl+V) not working on Windows could also be due to the same reason, so we would not\n // manually handle that using `xterm.onKey` neither\n // See https://github.com/xtermjs/xterm.js/issues/1868\n // See https://github.com/microsoft/vscode/issues/6451\n (isMatchingKeyCombination(event, 'Control+KeyC') &&\n this.instance.hasSelection()) ||\n isMatchingKeyCombination(event, 'Control+KeyV')) {\n return false;\n }\n return true; // return true to indicate the event should still be handled by xterm\n });\n this.webLinkProvider = configuration?.webLinkProvider\n ? new XTermWebLinksAddon(configuration.webLinkProvider.handler, {\n urlRegex: configuration.webLinkProvider.regex,\n })\n : new XTermWebLinksAddon();\n this.instance.loadAddon(this.webLinkProvider);\n (configuration?.commands ?? []).forEach((commandConfig) => {\n [commandConfig.command, ...(commandConfig.aliases ?? [])].forEach((command) => {\n if (!this.commandRegistry.has(command)) {\n this.commandRegistry.set(command, commandConfig);\n }\n else {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.TERMINAL_COMMAND_CONFIGURATION_CHECK__FAILURE), `Found multiple duplicated terminal commands '${command}'`);\n }\n });\n });\n this.searcher.onDidChangeResults((result) => {\n this.setSearchResultCount(result.resultCount);\n this.setSearchCurrentResultIndex(result.resultIndex);\n });\n // NOTE: `xterm` expects to be attached to a proper terminal program which handles\n // input, since we can't do that yet, we implement a fairly basic input handling flow\n // See https://github.com/xtermjs/xterm.js/issues/617#issuecomment-288849502\n this._TEMPORARY__onKeyListener = this.instance.onKey(({ key, domEvent }) => {\n // take care of command history navigation\n if (domEvent.code === 'ArrowUp') {\n this.setCommandFromHistory(this.commandHistoryNavigationIdx !== undefined\n ? this.commandHistoryNavigationIdx + 1\n : 0);\n return;\n // reset current command in place\n }\n else if (domEvent.code === 'ArrowDown') {\n if (this.commandHistoryNavigationIdx !== undefined) {\n this.setCommandFromHistory(this.commandHistoryNavigationIdx === 0\n ? undefined\n : this.commandHistoryNavigationIdx - 1);\n }\n return;\n }\n else {\n // reset navigation history the moment any other key is pressed\n this.commandHistoryNavigationIdx = undefined;\n }\n if (domEvent.code === 'Enter') {\n // run command\n if (this.command.trim()) {\n const text = this.command;\n const [command, ...args] = text.replaceAll(/\\s+/g, ' ').split(' ');\n this.addCommandToHistory(this.command);\n if (!command) {\n return;\n }\n const matchingCommand = this.commandRegistry.get(command);\n if (!matchingCommand) {\n this.fail(`command not found: ${command}`);\n return;\n }\n if (this.isRunningCommand) {\n return;\n }\n this.isRunningCommand = true;\n matchingCommand\n .handler(args.map((arg) => arg.trim()), command, text)\n .catch(noop())\n .finally(() => {\n this.isRunningCommand = false;\n if (!this.isFlushed) {\n this.abort();\n }\n });\n }\n }\n else if (isMatchingKeyCombination(domEvent, 'Control+KeyD') ||\n // NOTE: this handling here makes the assumption that the hotkey used for copying is\n // fixed to `Control+KeyC` (for Windows), it doesn't handling a different assignment\n (isMatchingKeyCombination(domEvent, 'Control+KeyC') &&\n !this.instance.hasSelection())) {\n // abort command\n this.abort();\n }\n else if (domEvent.code === 'Backspace') {\n // Alt: jump word only, Ctrl: jump to end\n // this would apply for Delete, ArrowLeft, ArrowRight\n this.deleteFromCommand(domEvent.altKey || domEvent.ctrlKey\n ? this.computeCursorJumpMovement(true)\n : -1);\n }\n else if (domEvent.code === 'Delete') {\n this.deleteFromCommand(domEvent.altKey || domEvent.ctrlKey\n ? this.computeCursorJumpMovement(false)\n : 1);\n }\n else if (domEvent.code === 'ArrowLeft') {\n const movement = this.computeCursorMovement(domEvent.altKey || domEvent.ctrlKey\n ? this.computeCursorJumpMovement(true)\n : -1);\n this.instance.scrollLines(movement.scroll);\n this.instance.write(movement.seq);\n }\n else if (domEvent.code === 'ArrowRight') {\n const movement = this.computeCursorMovement(domEvent.altKey || domEvent.ctrlKey\n ? this.computeCursorJumpMovement(false)\n : 1);\n this.instance.scrollLines(movement.scroll);\n this.instance.write(movement.seq);\n }\n else if (\n // use key here so we absolute do not allow any characters other than these\n // being added to the input command\n key.match(/^[A-Za-z0-9!@#$%^&*()\\-_=+\"':;,.<>/?[\\]{}|\\\\~` ]$/)) {\n // commonly supported keys\n this.writeToCommand(key);\n }\n else {\n // for the rest, allow the keyboard event to be bubbled to\n // application keyboard shortcuts handler\n forceDispatchKeyboardEvent(domEvent, this.applicationStore);\n }\n });\n // this is needed to support copy-pasting\n this._TEMPORARY__onDataListener = this.instance.onData((val) => {\n // only support pasting (not meant for 1 character though) and special functions starting with special\n // ANSI escape sequence\n if (val.length > 1 && !val.startsWith('\\x1b')) {\n this.writeToCommand(val\n // remove all unsupported characters, including newline\n .replaceAll(/[^A-Za-z0-9!@#$%^&*()\\-_=+\"':;,.<>/?[\\]{}|\\\\~` ]/g, '')\n .trimEnd());\n }\n });\n }\n // NOTE: this is fairly HACKY way to detect command\n // we don't really have a better solution at the moment,\n // but we should come with more systematic way of persisting the start line of command\n // the challenge with this is due to text-reflow\n //\n // there is also a quriky known issue with text-reflow and the line with cursor\n // See https://github.com/xtermjs/xterm.js/issues/1941#issuecomment-463660633\n getCommandRange() {\n const buffer = this.instance.buffer.active;\n const cols = this.instance.cols;\n const commandText = `${COMMAND_START}${this.command}`;\n const commandFirstLine = `${COMMAND_START}${this.command.substring(0, cols - COMMAND_START.length)}${this.command.length < cols - COMMAND_START.length\n ? ' '.repeat(cols - this.command.length - COMMAND_START.length)\n : ''}`;\n let startY = 0;\n let cursorIdx = 0;\n for (let i = buffer.baseY + buffer.cursorY; i > -1; --i) {\n const line = guaranteeNonNullable(buffer.getLine(i));\n const lineText = line.translateToString();\n if (lineText === commandFirstLine) {\n startY = i;\n cursorIdx +=\n (i === buffer.baseY + buffer.cursorY ? buffer.cursorX : cols) -\n COMMAND_START.length;\n break;\n }\n else {\n cursorIdx +=\n i === buffer.baseY + buffer.cursorY ? buffer.cursorX : cols;\n }\n }\n // start line == -1 is the rare case where the command is too long and exceeds the buffer length\n // leading to incomplete command being captured\n return {\n startY,\n startX: COMMAND_START.length,\n endY: startY + (commandText.length - (commandText.length % cols)) / cols,\n endX: commandText.length % cols,\n cursorIdx,\n };\n }\n computeCursorJumpMovement(back) {\n const range = this.getCommandRange();\n let distance = undefined;\n let foundWord = false;\n // scan for the boundary of the closest word to the cursor position\n if (back) {\n for (let i = range.cursorIdx - 1; i > -1; --i) {\n const char = this.command.charAt(i);\n if (char.match(/\\w/)) {\n if (!foundWord) {\n foundWord = true;\n }\n }\n else {\n if (foundWord) {\n distance = range.cursorIdx - i - 1;\n break;\n }\n }\n }\n }\n else {\n for (let i = range.cursorIdx + 1; i < this.command.length; ++i) {\n const char = this.command.charAt(i);\n if (char.match(/\\w/)) {\n if (!foundWord) {\n foundWord = true;\n }\n }\n else {\n if (foundWord) {\n distance = i - range.cursorIdx - 1;\n break;\n }\n }\n }\n }\n if (distance === undefined) {\n distance = back ? range.cursorIdx : this.command.length - range.cursorIdx;\n }\n return back ? -distance : distance;\n }\n /**\n * Generate the ANSI escape sequence for new cursor position\n * after being moved by the the number of cells.\n *\n * @param val a number (negative means cursor move leftwards)\n * @param limit whether to limit the movement of the cursor by the command range\n * @returns cursor movement information including the ANSI escape sequence for new cursor position and scroll distance\n */\n computeCursorMovement(val, limit = true) {\n const buffer = this.instance.buffer.active;\n const cols = this.instance.cols;\n const rows = this.instance.rows;\n const range = this.getCommandRange();\n const maxDistance = limit\n ? val < 0\n ? range.cursorIdx\n : this.command.length - range.cursorIdx\n : val;\n const distance = Math.min(Math.abs(val), maxDistance);\n let newCursorX = buffer.cursorX;\n let newCursorY = buffer.cursorY;\n let abs_cursorY = buffer.baseY + buffer.cursorY;\n if (val < 0) {\n // move leftwards\n newCursorX = (cols + ((buffer.cursorX - distance) % cols)) % cols;\n newCursorY =\n buffer.cursorY -\n (distance > buffer.cursorX ? Math.ceil(distance / cols) : 0);\n abs_cursorY = newCursorY + buffer.baseY;\n newCursorY = Math.max(newCursorY, -1);\n }\n else if (val > 0) {\n // move rightwards\n newCursorX = (buffer.cursorX + distance) % cols;\n newCursorY =\n buffer.cursorY +\n (buffer.cursorX + distance >= cols\n ? Math.floor((buffer.cursorX + distance) / cols)\n : 0);\n abs_cursorY = newCursorY + buffer.baseY;\n newCursorY = Math.min(newCursorY, rows - 1);\n }\n const scroll = abs_cursorY > buffer.viewportY + rows\n ? abs_cursorY - (buffer.viewportY + rows)\n : abs_cursorY < buffer.viewportY\n ? abs_cursorY - buffer.viewportY\n : 0;\n return {\n // NOTE: currently, there is a design limitation with programmatically set the cursor using escape sequence\n // by design, the scrollback (everything above the viewport/ybase) is readonly, and most terminals work like this.\n // So for very long command that causes an overflow, one cannot set the cursor position pass the `baseY`\n // this will affect both navigation and delete/backspace behavior\n // See https://github.com/xtermjs/xterm.js/issues/4405\n seq: ANSI_moveCursor(newCursorY + 1, newCursorX + 1),\n scroll,\n };\n }\n /**\n * Write value to command with awareness of the current cursor position\n */\n writeToCommand(val) {\n const range = this.getCommandRange();\n const left = this.command.slice(0, range.cursorIdx);\n const right = this.command.slice(range.cursorIdx);\n const movement = this.computeCursorMovement(val.length, false);\n this.instance.scrollLines(movement.scroll);\n this.instance.write(val +\n right +\n // update the cursor\n movement.seq);\n this.setCommand(left + val + right);\n }\n /**\n * Remove number of characters from command with awareness of the current cursor position\n * NOTE: negative number means backward deleting (i.e. backspace)\n */\n deleteFromCommand(val) {\n const range = this.getCommandRange();\n const maxDistance = val < 0 ? range.cursorIdx : this.command.length - range.cursorIdx;\n const distance = Math.min(Math.abs(val), maxDistance);\n let left;\n let right;\n let cursorMovement;\n if (val === 0) {\n return;\n }\n else if (val < 0) {\n // remove leftwards\n left = this.command.slice(0, range.cursorIdx - distance);\n right = this.command.slice(range.cursorIdx, this.command.length);\n cursorMovement = -distance;\n }\n else {\n // remove rightwards\n left = this.command.slice(0, range.cursorIdx);\n right = this.command.slice(range.cursorIdx + distance, this.command.length);\n cursorMovement = 0;\n }\n const movement = this.computeCursorMovement(cursorMovement);\n this.instance.scrollLines(movement.scroll);\n this.instance.write(\n // reset cursor to start of command, basically here, we're rewriting the entire command\n ANSI_moveCursor(range.startY + 1, range.startX + 1) +\n left +\n right +\n // fill space to erase cells rendered from previous command\n ' '.repeat(distance) +\n // move the cursor as well\n movement.seq);\n this.setCommand(left + right);\n }\n get isSetup() {\n return this.setupState.hasCompleted;\n }\n isFocused() {\n return document.activeElement === this.instance.textarea;\n }\n mount(container) {\n if (!this.setupState.hasCompleted) {\n throw new IllegalStateError(`XTerm terminal has not been set up yet`);\n }\n this.instance.open(container);\n }\n dispose() {\n this.searcher.dispose();\n this.resizer.dispose();\n this.renderer.dispose();\n this.webLinkProvider?.dispose();\n this._TEMPORARY__onKeyListener?.dispose();\n this._TEMPORARY__onDataListener?.dispose();\n this.instance.dispose();\n }\n autoResize() {\n this.resizer.fit();\n }\n focus() {\n this.instance.focus();\n }\n addCommandToHistory(val) {\n // if this is the same as previous command, do not push it to the history stack\n if (val === this.commandHistory.at(0)) {\n return;\n }\n // history command is essentially a stack, so we only insert at the beginning\n this.commandHistory.unshift(val);\n }\n /**\n * This methods help update the current command to a command in history\n * stack, it does the necessary resetting and helps properly update\n * the history navigation index\n */\n setCommandFromHistory(idx) {\n const val = idx === undefined\n ? this.currentCommandSearchString\n : // NOTE: only consider commands starting with the original command\n // also note that empty string naturaly match all history command\n this.commandHistory\n .filter((command) => command.startsWith(this.currentCommandSearchString))\n .at(idx);\n if (val !== undefined) {\n let range = this.getCommandRange();\n this.instance.write(\n // reset cursor to start of command and rewrite the entire command\n ANSI_moveCursor(range.startY + 1, range.startX + 1) +\n val.padEnd(this.command.length));\n this.command = val;\n range = this.getCommandRange();\n this.instance.write(\n // reset cursor to command end\n ANSI_moveCursor(range.endY + 1, range.endX + 1));\n this.commandHistoryNavigationIdx = idx;\n }\n }\n setCommand(val) {\n this.command = val;\n this.currentCommandSearchString = val;\n this.commandHistoryNavigationIdx = undefined;\n }\n newCommand() {\n this.instance.write(DEFAULT_COMMAND_HEADER);\n this.setCommand('');\n }\n newSystemCommand(command) {\n // if another command is already running, we don't need to print the command header anymore\n // the potential pitfall here is that we could have another process prints to the\n // terminal while the command is being run. Nothing much we can do here for now.\n if (!this.isRunningCommand) {\n if (this.command) {\n this.abort();\n this.newCommand();\n }\n this.instance.write(`${DISPLAY_ANSI_ESCAPE.DIM}(system: ${command})\\n${DISPLAY_ANSI_ESCAPE.RESET}`);\n }\n }\n /**\n * Flush the terminal screen completely\n *\n * Probably due to write buffer batching, calling `reset` or `clear` on xterm terminal immediately after\n * write commands will not work. To solve this, we can either promisify the `reset` call or write the ANSI\n * reset sequence \\x1bc\n */\n flushScreen() {\n this.instance.write('\\x1bc');\n this.instance.reset();\n }\n get isFlushed() {\n const buffer = this.instance.buffer.active;\n let isLastLineEmpty = true;\n for (let i = buffer.baseY + buffer.cursorY; i > -1; --i) {\n const line = guaranteeNonNullable(buffer.getLine(i));\n const lineText = line.translateToString();\n // skip empty lines\n if (!lineText.trim()) {\n continue;\n }\n else {\n isLastLineEmpty = lineText !== COMMAND_START;\n break;\n }\n }\n return this.command === '' && isLastLineEmpty;\n }\n clear() {\n this.flushScreen();\n this.instance.scrollToTop();\n this.newCommand();\n }\n resetANSIStyling() {\n this.instance.write(DISPLAY_ANSI_ESCAPE.RESET);\n }\n showHelp() {\n this.resetANSIStyling();\n this.instance.scrollToBottom();\n if (!this.isFlushed && !this.isRunningCommand) {\n this.abort();\n }\n this.instance.write(getHelpCommandContent(this.commandRegistry));\n this.abort();\n }\n showCommonANSIEscapeSequences() {\n this.resetANSIStyling();\n this.instance.scrollToBottom();\n if (!this.isFlushed && !this.isRunningCommand) {\n this.abort();\n }\n this.instance.write(getCommonANSIEscapeSequencesForStyling());\n this.abort();\n }\n abort() {\n this.resetANSIStyling();\n this.instance.write('\\n');\n this.newCommand();\n this.instance.scrollToBottom();\n this.isRunningCommand = false;\n }\n fail(error, opts) {\n if (opts?.systemCommand) {\n this.newSystemCommand(opts.systemCommand);\n }\n this.instance.write(`\\n${DISPLAY_ANSI_ESCAPE.RED}${error}${DISPLAY_ANSI_ESCAPE.RED}`);\n this.abort();\n }\n output(val, opts) {\n this.resetANSIStyling();\n if ((!opts?.clear || this.preserveLog) && opts?.systemCommand) {\n this.newSystemCommand(opts.systemCommand);\n }\n if (!this.preserveLog && opts?.clear) {\n this.flushScreen();\n }\n else if (this.preserveLog || this.isRunningCommand) {\n this.instance.write('\\n');\n }\n this.instance.write(val);\n this.resetANSIStyling();\n this.instance.write('\\n');\n this.instance.scrollToBottom();\n this.newCommand();\n }\n search(val) {\n this.searcher.findNext(val, {\n decorations: LEGEND_XTERM_SEARCH_THEME,\n regex: this.searchConfig.useRegex,\n wholeWord: this.searchConfig.matchWholeWord,\n caseSensitive: this.searchConfig.matchCaseSensitive,\n // do incremental search so that the expansion will be expanded the selection if it\n // still matches the term the user typed.\n incremental: true,\n });\n }\n clearSearch() {\n this.searcher.clearDecorations();\n this.instance.clearSelection();\n this.setSearchText('');\n this.setSearchResultCount(undefined);\n this.setSearchCurrentResultIndex(undefined);\n }\n findPrevious() {\n this.searcher.findPrevious(this.searchConfig.searchText, {\n decorations: LEGEND_XTERM_SEARCH_THEME,\n regex: this.searchConfig.useRegex,\n wholeWord: this.searchConfig.matchWholeWord,\n caseSensitive: this.searchConfig.matchCaseSensitive,\n });\n }\n findNext() {\n this.searcher.findNext(this.searchConfig.searchText, {\n decorations: LEGEND_XTERM_SEARCH_THEME,\n regex: this.searchConfig.useRegex,\n wholeWord: this.searchConfig.matchWholeWord,\n caseSensitive: this.searchConfig.matchCaseSensitive,\n });\n }\n getContent() {\n const buffer = this.instance.buffer.active;\n const lines = [];\n for (let i = 0; i < buffer.length; ++i) {\n const line = guaranteeNonNullable(buffer.getLine(i));\n lines.push(line.translateToString());\n }\n return lines.join('\\n').trimEnd();\n }\n copy() {\n if (!this.instance.hasSelection()) {\n this.applicationStore.notificationService.notifyWarning(`Ther terminal has no selection to copy`);\n return;\n }\n this.applicationStore.clipboardService\n .copyTextToClipboard(this.instance.getSelection())\n .catch(this.applicationStore.alertUnhandledError);\n }\n copyAll() {\n this.applicationStore.clipboardService\n .copyTextToClipboard(this.getContent())\n .catch(this.applicationStore.alertUnhandledError);\n }\n}\n//# sourceMappingURL=XTerm.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { XTerm } from './terminal/XTerm.js';\nexport class TerminalService {\n applicationStore;\n terminal;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n this.terminal = new XTerm(applicationStore);\n }\n}\n//# sourceMappingURL=TerminalService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, makeObservable, observable } from 'mobx';\nconst UNKNOWN_USER_ID = '(unknown)';\nexport class IdentityService {\n applicationStore;\n currentUser = UNKNOWN_USER_ID;\n constructor(applicationStore) {\n makeObservable(this, {\n currentUser: observable,\n setCurrentUser: action,\n });\n this.applicationStore = applicationStore;\n }\n get isAnonymous() {\n return this.currentUser === UNKNOWN_USER_ID;\n }\n setCurrentUser(val) {\n this.currentUser = val;\n }\n}\n//# sourceMappingURL=IdentityService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var LEGEND_APPLICATION_COLOR_THEME;\n(function (LEGEND_APPLICATION_COLOR_THEME) {\n LEGEND_APPLICATION_COLOR_THEME[\"DEFAULT_DARK\"] = \"default-dark\";\n LEGEND_APPLICATION_COLOR_THEME[\"LEGACY_LIGHT\"] = \"legacy-light\";\n LEGEND_APPLICATION_COLOR_THEME[\"HIGH_CONTRAST_LIGHT\"] = \"hc-light\";\n})(LEGEND_APPLICATION_COLOR_THEME || (LEGEND_APPLICATION_COLOR_THEME = {}));\nexport const DEFAULT_DARK_COLOR_THEME = {\n name: 'Default Dark (default)',\n key: LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK,\n TEMPORARY__globalCSSClassName: 'theme__default-dark',\n colors: {\n 'data-access-overview.chart.access-granted': '#6a9955',\n 'data-access-overview.chart.access-approved': '#007acc',\n 'data-access-overview.chart.access-requested': '#fbbc05',\n 'data-access-overview.chart.access-not-granted': '#ea4646',\n 'data-access-overview.chart.unsupported-access': '#2d2d2d',\n },\n};\nexport const LEGACY_LIGHT_COLOR_THEME = {\n name: 'Legacy Light',\n key: LEGEND_APPLICATION_COLOR_THEME.LEGACY_LIGHT,\n TEMPORARY__globalCSSClassName: 'theme__legacy-light',\n};\nexport const HIGH_CONTRAST_LIGHT_COLOR_THEME = {\n name: 'High-Contrast Light',\n key: LEGEND_APPLICATION_COLOR_THEME.HIGH_CONTRAST_LIGHT,\n TEMPORARY__globalCSSClassName: 'theme__hc-light',\n colors: {\n 'data-access-overview.chart.access-granted': '#52a31d',\n 'data-access-overview.chart.access-approved': '#3d8df5',\n 'data-access-overview.chart.access-requested': '#f5c518',\n 'data-access-overview.chart.access-not-granted': '#fa5343',\n 'data-access-overview.chart.unsupported-access': '#e1e7ea',\n },\n};\n//# sourceMappingURL=LegendApplicationColorTheme.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable } from '@finos/legend-shared';\nexport class LocalStorage {\n get localStorage() {\n return guaranteeNonNullable(window.localStorage, `'window.localStorage' object is not available in non-web environment`);\n }\n setItem(key, value) {\n this.localStorage.setItem(key, value);\n }\n getItem(key) {\n return this.localStorage.getItem(key);\n }\n removeItem(key) {\n this.localStorage.removeItem(key);\n }\n clear() {\n this.localStorage.clear();\n }\n hasItem(key) {\n return this.localStorage.hasItem(key);\n }\n}\n//# sourceMappingURL=ApplicationStorage.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeIsNumber, guaranteeIsString, guaranteeIsBoolean, guaranteeIsObject, isNonNullable, returnUndefOnError, isEmpty, } from '@finos/legend-shared';\nimport { LocalStorage } from './ApplicationStorage.js';\nexport class StorageStore {\n storeIndex;\n storageService;\n data;\n constructor(storageService, storeIndex) {\n this.storageService = storageService;\n this.storeIndex = storeIndex;\n this.data = this.storageService.getIndex(this.storeIndex) ?? {};\n }\n getValue(key) {\n return this.data[key];\n }\n getNumericValue(key) {\n const value = this.getValue(key);\n return value !== undefined ? guaranteeIsNumber(value) : undefined;\n }\n getStringValue(key) {\n const value = this.getValue(key);\n return value !== undefined ? guaranteeIsString(value) : undefined;\n }\n getBooleanValue(key) {\n const value = this.getValue(key);\n return value !== undefined ? guaranteeIsBoolean(value) : undefined;\n }\n getObjectValue(key) {\n const value = this.getValue(key);\n return value !== undefined ? guaranteeIsObject(value) : undefined;\n }\n hasValue(key) {\n return isNonNullable(this.data[key]);\n }\n persistValue(key, value) {\n if (value !== undefined) {\n this.data[key] = value;\n }\n else {\n delete this.data[key];\n }\n this.storageService.updateIndex(this.storeIndex, this.data);\n }\n}\nexport class StorageService {\n applicationStore;\n storage;\n data;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n this.storage = new LocalStorage();\n const data = this.storage.getItem(applicationStore.config.applicationStorageKey);\n this.data = data\n ? returnUndefOnError(() => JSON.parse(data)) ?? {}\n : {};\n }\n getIndex(index) {\n return this.data[index];\n }\n updateIndex(index, value) {\n if (isEmpty(value)) {\n delete this.data[index];\n }\n else {\n this.data[index] = value;\n }\n this.storage.setItem(this.applicationStore.config.applicationStorageKey, JSON.stringify(this.data));\n }\n}\n//# sourceMappingURL=StorageService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPlugin, } from '@finos/legend-shared';\nexport class TelemetryServicePlugin extends AbstractPlugin {\n userId;\n appName;\n appVersion;\n appEnv;\n appSessionId;\n appStartTime;\n install(pluginManager) {\n pluginManager.registerTelemetryServicePlugin(this);\n }\n setup(config) {\n this.userId = config.userId;\n this.appName = config.appName;\n this.appVersion = config.appVersion;\n this.appEnv = config.appEnv;\n this.appSessionId = config.appSessionId;\n this.appStartTime = config.appStartTime;\n }\n}\nexport class TelemetryService {\n applicationStore;\n plugins = [];\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n }\n registerPlugins(plugins) {\n this.plugins = plugins;\n }\n setup() {\n const config = {\n userId: this.applicationStore.identityService.currentUser,\n appName: this.applicationStore.config.appName,\n appEnv: this.applicationStore.config.env,\n appVersion: this.applicationStore.config.appVersion,\n appSessionId: this.applicationStore.uuid,\n appStartTime: this.applicationStore.timeService.timestamp,\n };\n this.plugins.forEach((plugin) => plugin.setup(config));\n }\n logEvent(eventType, data) {\n this.plugins.forEach((plugin) => plugin.logEvent(eventType, data));\n }\n}\n//# sourceMappingURL=TelemetryService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class TimeService {\n timestamp = Date.now();\n /**\n * Record the instances where the application usage is interrupted (e.g. when the app window/tab is not in focus),\n * this is useful to know since for certain platform, background contexts are de-prioritized, given less resources,\n * and hence, would run less performantly.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API#policies_in_place_to_aid_background_page_performance\n * See https://plumbr.io/blog/performance-blog/background-tabs-in-browser-load-20-times-slower\n *\n * This impacts certain operations such as scheduler and timer in the app, so it's useful to keep track of these here.\n */\n interruptions = [];\n recordUsageInterruption() {\n this.interruptions.push(Date.now());\n }\n finalizeTimingsRecord(stopWatch, timings) {\n const totalTime = stopWatch.elapsed;\n const startTime = stopWatch.startTime;\n const endTime = startTime + totalTime;\n const record = {\n ...(timings ?? {}),\n ...Object.fromEntries(stopWatch.records),\n total: totalTime,\n };\n // count the number of interruptions\n let numberOfInteruptions = 0;\n for (const interruption of this.interruptions) {\n if (interruption >= startTime && interruption <= endTime) {\n numberOfInteruptions++;\n }\n else if (interruption > endTime) {\n break;\n }\n }\n return numberOfInteruptions > 0\n ? { ...record, __numberOfInteruptions: numberOfInteruptions }\n : record;\n }\n}\n//# sourceMappingURL=TimeService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LEGEND_APPLICATION_COLOR_THEME } from './LegendApplicationColorTheme.js';\nexport var LEGEND_APPLICATION_SETTING_KEY;\n(function (LEGEND_APPLICATION_SETTING_KEY) {\n LEGEND_APPLICATION_SETTING_KEY[\"COLOR_THEME\"] = \"application.layout.colorTheme\";\n})(LEGEND_APPLICATION_SETTING_KEY || (LEGEND_APPLICATION_SETTING_KEY = {}));\nexport const LEGEND_APPLICATION_SETTING_CONFIG = {\n [LEGEND_APPLICATION_SETTING_KEY.COLOR_THEME]: {\n defaultValue: LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK,\n },\n};\n//# sourceMappingURL=LegendApplicationSetting.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { LEGEND_APPLICATION_SETTING_KEY } from '../__lib__/LegendApplicationSetting.js';\nimport { LogEvent, guaranteeNonNullable } from '@finos/legend-shared';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nimport { DEFAULT_DARK_COLOR_THEME, LEGEND_APPLICATION_COLOR_THEME, } from '../__lib__/LegendApplicationColorTheme.js';\nexport class LayoutService {\n applicationStore;\n // backdrop\n backdropContainerElementID;\n showBackdrop = false;\n // color theme\n colorThemeRegistry = new Map();\n currentColorTheme;\n constructor(applicationStore) {\n makeObservable(this, {\n currentColorTheme: observable.ref,\n TEMPORARY__isLightColorThemeEnabled: computed,\n backdropContainerElementID: observable,\n showBackdrop: observable,\n setBackdropContainerElementID: action,\n setShowBackdrop: action,\n setColorTheme: action,\n });\n this.applicationStore = applicationStore;\n // register core color themes\n // TODO: we might want to cover at least: a dark theme, a light theme, and a high contrast theme (etc.)\n // as part of core\n this.colorThemeRegistry.set(LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK, DEFAULT_DARK_COLOR_THEME);\n // register color themes from extensions\n this.applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraColorThemes?.() ?? [])\n .forEach((colorTheme) => {\n // NOTE: in the future, when we need to make theme extensible, we might want to reconsider this decision here\n // perhaps, each extension can define a new set of color keys that each theme supports and the core theme is extensible\n // while non-core themes are left in a separate package/module and might/might not have support for those color keys\n if (this.colorThemeRegistry.has(colorTheme.key)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.COLOR_THEME_CONFIGURATION_CHECK__FAILURE), `Found duplicated color themes with key '${colorTheme.key}'`);\n return;\n }\n this.colorThemeRegistry.set(colorTheme.key, colorTheme);\n });\n const themeKey = this.applicationStore.settingService.getStringValue(LEGEND_APPLICATION_SETTING_KEY.COLOR_THEME) ?? LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK;\n this.currentColorTheme = guaranteeNonNullable(this.colorThemeRegistry.get(themeKey));\n this.TEMPORARY__syncGlobalCSSClassName(this.currentColorTheme, undefined);\n }\n getElementByID(val) {\n return document.querySelector(`[data-elementid='${val}']`) ?? undefined;\n }\n /**\n * Change the ID used to find the base element to mount the backdrop on.\n * This is useful when we want to use backdrop with embedded application which\n * requires its own backdrop usage.\n *\n * TODO?: we can consider making backdrop container component auto-register its ID\n * as it gets rendered in the application\n */\n setBackdropContainerElementID(val) {\n this.backdropContainerElementID = val;\n }\n setShowBackdrop(val) {\n this.showBackdrop = val;\n }\n /**\n * NOTE: this is the poor man way of doing theming as we only properly support dark color theme\n * This flag is binary because we did light color theme in rush\n *\n * See https://github.com/finos/legend-studio/issues/264\n */\n get TEMPORARY__isLightColorThemeEnabled() {\n return (this.currentColorTheme.key !== LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK);\n }\n TEMPORARY__syncGlobalCSSClassName(theme, previousTheme) {\n if (previousTheme) {\n document.body.classList.remove(previousTheme.TEMPORARY__globalCSSClassName);\n }\n document.body.classList.add(theme.TEMPORARY__globalCSSClassName);\n }\n setColorTheme(key, options) {\n const newColorTheme = this.colorThemeRegistry.get(key);\n if (key === this.currentColorTheme.key || !newColorTheme) {\n return;\n }\n const previousColorTheme = this.currentColorTheme;\n this.currentColorTheme = newColorTheme;\n this.TEMPORARY__syncGlobalCSSClassName(newColorTheme, previousColorTheme);\n if (options?.persist) {\n this.applicationStore.settingService.persistValue(LEGEND_APPLICATION_SETTING_KEY.COLOR_THEME, key);\n }\n }\n getColor(key) {\n return (this.currentColorTheme.colors?.[key] ??\n guaranteeNonNullable(this.colorThemeRegistry.get(LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK)).colors?.[key] ??\n 'transparent');\n }\n}\n//# sourceMappingURL=LayoutService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class ClipboardService {\n applicationStore;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n }\n async copyTextToClipboard(text, options) {\n // This is a much cleaner way which requires HTTPS\n // See https://developers.google.com/web/updates/2018/03/clipboardapi\n await navigator.clipboard\n .writeText(text)\n .catch((error) => {\n this.applicationStore.notificationService.notifyError(error);\n })\n .finally(() => {\n if (options?.notifySuccessMessage) {\n this.applicationStore.notificationService.notifySuccess(options.notifySuccessMessage);\n }\n });\n }\n}\n//# sourceMappingURL=ClipboardService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const NAVIGATION_ZONE_SEPARATOR = '.';\nexport const NAVIGATION_ZONE_PREFIX = '#';\nexport class NavigationService {\n navigator;\n constructor(navigator) {\n this.navigator = navigator;\n }\n}\n//# sourceMappingURL=NavigationService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { downloadFileUsingDataURI, guaranteeNonNullable, } from '@finos/legend-shared';\nvar DOWNLOAD_EVENTS;\n(function (DOWNLOAD_EVENTS) {\n DOWNLOAD_EVENTS[\"TAG_REQUEST\"] = \"download-request\";\n DOWNLOAD_EVENTS[\"TAG_RESPONSE\"] = \"download-response\";\n DOWNLOAD_EVENTS[\"STREAM_CLOSED\"] = \"#stream-closed\";\n DOWNLOAD_EVENTS[\"STREAM_ABORTED\"] = \"#stream-aborted\";\n})(DOWNLOAD_EVENTS || (DOWNLOAD_EVENTS = {}));\nfunction createWritableStreamFromMessageChannel(channel) {\n return new WritableStream({\n write(chunk) {\n channel.port1.postMessage(chunk);\n },\n close() {\n channel.port1.postMessage(DOWNLOAD_EVENTS.STREAM_CLOSED);\n },\n abort() {\n channel.port1.postMessage(DOWNLOAD_EVENTS.STREAM_ABORTED);\n closeMessagePort(channel.port1);\n closeMessagePort(channel.port2);\n },\n });\n}\nfunction closeMessagePort(port) {\n port.onmessage = null;\n port.close();\n}\nasync function getServiceWorker() {\n if (!('serviceWorker' in navigator)) {\n return Promise.reject(new Error('Service worker is not available. Service Worker requires HTTPS protocol'));\n }\n return navigator.serviceWorker\n .getRegistration()\n .then((workerRegistration) => {\n if (workerRegistration === undefined) {\n return undefined;\n }\n const pending = workerRegistration.installing ?? workerRegistration.waiting;\n return (workerRegistration.active ??\n new Promise((resolve) => {\n // if not activated, add listener to waiting or installing registration\n const listener = () => {\n if (pending?.state === 'activated') {\n pending.removeEventListener('statechange', listener);\n resolve(workerRegistration.active ?? undefined);\n }\n };\n pending?.addEventListener('statechange', listener);\n }));\n });\n}\nfunction createDownloadRequest(filename) {\n const PREFIX = 6;\n const prefix = String(Math.random()).slice(-PREFIX);\n const url = new URL(`${prefix}/${filename}`, window.location.href).toString();\n return { tag: DOWNLOAD_EVENTS.TAG_REQUEST, filename, url };\n}\nfunction handleServiceWorkerDownloadResponse(event) {\n const data = event.data;\n if (data?.tag === DOWNLOAD_EVENTS.TAG_RESPONSE && data.downloadUrl.length) {\n openInIframe(data.downloadUrl);\n }\n}\nfunction openInIframe(src) {\n const iframe = document.createElement('iframe');\n iframe.hidden = true;\n iframe.src = src;\n document.body.appendChild(iframe);\n return iframe;\n}\nexport async function downloadStream(response, filename, contentType) {\n const responseBody = guaranteeNonNullable(response.body);\n // creates communication channel with service worker with response handler\n const channel = new MessageChannel();\n channel.port1.onmessage = handleServiceWorkerDownloadResponse;\n // grabs service worker and handles it download along with response channel port\n const serviceWorker = await getServiceWorker();\n if (!serviceWorker) {\n // TODO: remove once service worker workflow is tested\n const text = await response.text();\n // eslint-disable-next-line no-console\n console.debug('service worker not found. Using in memory file download');\n downloadFileUsingDataURI(filename, text, contentType);\n return;\n }\n // eslint-disable-next-line no-console\n console.debug('Service worker found. Continuing download');\n const downloadRequest = createDownloadRequest(filename);\n serviceWorker.postMessage(downloadRequest, [channel.port2]);\n // creates new data stream over communication channel and pipes given stream in it\n responseBody\n .pipeTo(createWritableStreamFromMessageChannel(channel))\n .then(() => {\n // TODO: trace success\n })\n .catch(() => {\n // TODO: fail\n });\n}\nexport function registerDownloadHelperServiceWorker(workerPath) {\n if ('serviceWorker' in navigator) {\n const path = workerPath ?? '/ServiceWorker.js';\n navigator.serviceWorker\n .register(path)\n .then((reg) => {\n // TODO: add trace\n // eslint-disable-next-line no-console\n console.debug(`register service worker success with path: ${path}`, reg);\n })\n .catch((error) => {\n // TODO: add trace\n // eslint-disable-next-line no-console\n console.debug(`register service worker error with path: ${path}`, error);\n });\n }\n}\n//# sourceMappingURL=DownloadHelperServiceWorker.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { deepEqual, isBoolean, isNumber, isObject, isString, LogEvent, } from '@finos/legend-shared';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nimport { StorageStore } from './storage/StorageService.js';\nexport const collectSettingConfigurationEntriesFromConfig = (data) => Object.entries(data).map((entry) => ({\n key: entry[0],\n ...entry[1],\n}));\nconst APPLICATION_SETTING_STORAGE_KEY = 'application-settings-storage';\nexport class SettingService {\n applicationStore;\n storage;\n registry = new Map();\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n this.storage = new StorageStore(this.applicationStore.storageService, APPLICATION_SETTING_STORAGE_KEY);\n this.applicationStore.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraSettingConfigurationEntries?.() ?? [])\n .forEach((entry) => {\n if (this.registry.has(entry.key)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.SETTING_CONFIGURATION_CHECK__FAILURE), `Found duplicated setting with key '${entry.key}'`);\n return;\n }\n // TODO: do validation check here\n // See https://github.com/finos/legend-studio/issues/407\n this.registry.set(entry.key, entry);\n });\n }\n getNumericValue(key) {\n const value = this.storage.getValue(key) ?? this.registry.get(key)?.defaultValue;\n if (!isNumber(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.SETTING_RETRIVE_FAILURE), `Can't retrieve numeric value for setting '${key}'`);\n return undefined;\n }\n return value;\n }\n getStringValue(key) {\n const value = this.storage.getValue(key) ?? this.registry.get(key)?.defaultValue;\n if (!isString(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.SETTING_RETRIVE_FAILURE), `Can't retrieve string value for setting '${key}'`);\n return undefined;\n }\n return value;\n }\n getBooleanValue(key) {\n const value = this.storage.getValue(key) ?? this.registry.get(key)?.defaultValue;\n if (!isBoolean(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.SETTING_RETRIVE_FAILURE), `Can't retrieve boolean value for setting '${key}'`);\n return undefined;\n }\n return value;\n }\n getObjectValue(key) {\n const value = this.storage.getValue(key) ?? this.registry.get(key)?.defaultValue;\n if (!isObject(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.SETTING_RETRIVE_FAILURE), `Can't retrieve object value for setting '${key}'`);\n return undefined;\n }\n return value;\n }\n persistValue(key, value) {\n const defaultValue = this.registry.get(key)?.defaultValue;\n this.storage.persistValue(key, \n // NOTE: if the value equals to default value, the value will be unset instead\n defaultValue !== undefined && deepEqual(defaultValue, value)\n ? undefined\n : value);\n }\n}\n//# sourceMappingURL=SettingService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { UnsupportedOperationError } from '@finos/legend-shared';\nimport {} from './NavigationService.js';\nexport class DefaultNavigator {\n goToLocation(location, options) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n reload(options) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n goToAddress(address, options) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n visitAddress(address) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n generateAddress(location) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n updateCurrentLocation(location) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n updateCurrentZone(zone) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n resetZone() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentBaseAddress(options) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentAddress() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentLocation() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentLocationParameters() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentLocationParameterValue(key) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n getCurrentZone() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n unblockNavigation() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n get isNavigationBlocked() {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n INTERNAL__internalizeTransientParameter(key) {\n throw new UnsupportedOperationError(`Navigator does not support this operation`);\n }\n}\n//# sourceMappingURL=DefaultNavigator.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LogEvent, isBoolean, isNumber, isObject, isString, } from '@finos/legend-shared';\nimport { StorageStore } from './storage/StorageService.js';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nconst APPLICATION_USER_DATA_STORAGE_KEY = 'application-user-data-storage';\nexport class UserDataService {\n applicationStore;\n storage;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n this.storage = new StorageStore(this.applicationStore.storageService, APPLICATION_USER_DATA_STORAGE_KEY);\n }\n getNumericValue(key) {\n const value = this.storage.getValue(key);\n if (!isNumber(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.USER_DATA_RETRIEVE_FAILURE), `Can't retrieve numeric value for user data '${key}'`);\n return undefined;\n }\n return value;\n }\n getStringValue(key) {\n const value = this.storage.getValue(key);\n if (!isString(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.USER_DATA_RETRIEVE_FAILURE), `Can't retrieve string value for user data '${key}'`);\n return undefined;\n }\n return value;\n }\n getBooleanValue(key) {\n const value = this.storage.getValue(key);\n if (!isBoolean(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.USER_DATA_RETRIEVE_FAILURE), `Can't retrieve boolean value for user data '${key}'`);\n return undefined;\n }\n return value;\n }\n getObjectValue(key) {\n const value = this.storage.getValue(key);\n if (!isObject(value)) {\n this.applicationStore.logService.warn(LogEvent.create(APPLICATION_EVENT.USER_DATA_RETRIEVE_FAILURE), `Can't retrieve object value for user data '${key}'`);\n return undefined;\n }\n return value;\n }\n persistValue(key, value) {\n this.storage.persistValue(key, value);\n }\n}\n//# sourceMappingURL=UserDataService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TracerService, LogService, LogEvent, uuid, ActionState, assertErrorThrown, IllegalStateError, isNonNullable, } from '@finos/legend-shared';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nimport { DocumentationService } from './DocumentationService.js';\nimport { AssistantService } from './AssistantService.js';\nimport { EventService } from './event/EventService.js';\nimport { ApplicationNavigationContextService } from './ApplicationNavigationContextService.js';\nimport { CommandService } from './CommandService.js';\nimport { KeyboardShortcutsService } from './KeyboardShortcutsService.js';\nimport { TerminalService } from './TerminalService.js';\nimport { AlertService } from './AlertService.js';\nimport { NotificationService } from './NotificationService.js';\nimport { IdentityService } from './IdentityService.js';\nimport { StorageService } from './storage/StorageService.js';\nimport { TelemetryService } from './TelemetryService.js';\nimport { TimeService } from './TimeService.js';\nimport { LayoutService } from './LayoutService.js';\nimport { ClipboardService } from './ClipboardService.js';\nimport { NavigationService } from './navigation/NavigationService.js';\nimport { SettingService } from './SettingService.js';\nimport { DefaultNavigator } from './navigation/DefaultNavigator.js';\nimport { UserDataService } from './UserDataService.js';\nexport class ApplicationExtensionState {\n /**\n * This helps to better type-check for this empty abtract type\n * See https://github.com/finos/legend-studio/blob/master/docs/technical/typescript-usage.md#understand-typescript-structual-type-system\n */\n _$nominalTypeBrand;\n}\nexport class ApplicationStore {\n uuid = uuid();\n /**\n * This is a mechanism to have the store holds references to extension states\n * so that we can refer back to these states when needed or do cross-extensions\n * operations\n */\n extensionStates = [];\n config;\n pluginManager;\n initState = ActionState.create();\n platform;\n // core\n timeService;\n logService;\n storageService;\n userDataService;\n settingService;\n alertService;\n notificationService;\n identityService;\n commandService;\n keyboardShortcutsService;\n layoutService;\n clipboardService;\n terminalService;\n navigationService;\n navigationContextService;\n // support\n documentationService;\n assistantService;\n // event\n eventService;\n telemetryService;\n tracerService;\n constructor(config, pluginManager) {\n this.config = config;\n this.pluginManager = pluginManager;\n this.timeService = new TimeService();\n // NOTE: set the logger first so other loading could use the configured logger\n this.logService = new LogService();\n this.logService.registerPlugins(pluginManager.getLoggerPlugins());\n this.storageService = new StorageService(this);\n this.settingService = new SettingService(this);\n this.userDataService = new UserDataService(this);\n this.alertService = new AlertService(this);\n this.notificationService = new NotificationService();\n this.identityService = new IdentityService(this);\n this.layoutService = new LayoutService(this);\n this.clipboardService = new ClipboardService(this);\n this.terminalService = new TerminalService(this);\n this.commandService = new CommandService(this);\n this.keyboardShortcutsService = new KeyboardShortcutsService(this);\n this.navigationService = new NavigationService(new DefaultNavigator());\n this.navigationContextService = new ApplicationNavigationContextService(this);\n this.documentationService = new DocumentationService(this);\n this.assistantService = new AssistantService(this);\n this.eventService = new EventService();\n this.eventService.registerEventNotifierPlugins(pluginManager.getEventNotifierPlugins());\n this.telemetryService = new TelemetryService(this);\n this.telemetryService.registerPlugins(pluginManager.getTelemetryServicePlugins());\n this.telemetryService.setup();\n this.tracerService = new TracerService();\n this.tracerService.registerPlugins(pluginManager.getTracerServicePlugins());\n // extensions\n this.extensionStates = this.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraApplicationExtensionStateBuilders?.() ?? [])\n .map((creator) => creator(this))\n .filter(isNonNullable);\n }\n async initialize(platform) {\n if (!this.initState.isInInitialState) {\n this.notificationService.notifyIllegalState('Application store is re-initialized');\n return;\n }\n this.initState.inProgress();\n try {\n if (this.platform) {\n throw new IllegalStateError(`Platform is already configured`);\n }\n this.platform = platform;\n this.navigationService =\n new NavigationService(platform.getNavigator());\n await platform.initialize();\n this.initState.pass();\n }\n catch (error) {\n assertErrorThrown(error);\n this.notificationService.notifyError(error);\n this.logService.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_LOAD__FAILURE), 'Failed to load Legend application');\n this.initState.fail();\n }\n }\n /**\n * When we call store/state functions from the component, we should handle error thrown at these functions instead\n * of throwing them to the UI. This enforces that by throwing `IllegalStateError`\n */\n alertUnhandledError = (error) => {\n this.logService.error(LogEvent.create(APPLICATION_EVENT.ILLEGAL_APPLICATION_STATE_OCCURRED), 'Encountered unhandled error in component tree', error);\n this.notificationService.notifyIllegalState(error.message);\n };\n /**\n * Guarantee that the action being used by the component does not throw unhandled errors\n */\n guardUnhandledError = (actionFn) => () => {\n actionFn().catch(this.alertUnhandledError);\n };\n}\n//# sourceMappingURL=ApplicationStore.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { assertErrorThrown, LogEvent, guaranteeNonEmptyString, assertNonNullable, NetworkClient, createRegExpPatternFromWildcardPattern, } from '@finos/legend-shared';\nimport { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';\nimport { collectKeyedDocumentationEntriesFromConfig, } from '../stores/DocumentationService.js';\nimport { ApplicationStore } from '../stores/ApplicationStore.js';\nimport { registerDownloadHelperServiceWorker } from '../util/DownloadHelperServiceWorker.js';\nexport class LegendApplicationLogger {\n}\nexport class LegendApplicationWebConsole extends LegendApplicationLogger {\n debug(event, ...data) {\n // eslint-disable-next-line no-console\n console.debug(`[${event.timestamp}] ${event.name} ${data.length ? ':' : ''}`, ...data);\n }\n info(event, ...data) {\n // eslint-disable-next-line no-console\n console.info(`[${event.timestamp}] ${event.name} ${data.length ? ':' : ''}`, ...data);\n }\n warn(event, ...data) {\n // eslint-disable-next-line no-console\n console.warn(`[${event.timestamp}] ${event.name} ${data.length ? ':' : ''}`, ...data);\n }\n error(event, ...data) {\n // eslint-disable-next-line no-console\n console.error(`[${event.timestamp}] ${event.name} ${data.length ? ':' : ''}`, ...data);\n }\n}\nexport class LegendApplication {\n config;\n logger;\n pluginManager;\n basePresets = [];\n basePlugins = [];\n baseAddress;\n pluginRegister;\n _isConfigured = false;\n downloadHelperServiceWorkerPath;\n downloadHelper = false;\n constructor(pluginManager) {\n this.pluginManager = pluginManager;\n this.logger = new LegendApplicationWebConsole();\n }\n setup(options) {\n this.baseAddress = guaranteeNonEmptyString(options.baseAddress, `Can't setup application: 'baseAddress' is missing or empty`);\n this.pluginRegister = options.pluginRegister;\n this._isConfigured = true;\n return this;\n }\n withBasePresets(presets) {\n this.basePresets = presets;\n return this.withPresets([]); // this will reset the preset list and prepend with base presets\n }\n withBasePlugins(plugins) {\n this.basePlugins = plugins;\n return this.withPlugins([]); // this will reset the plugin list and prepend with base plugins\n }\n withPresets(presets) {\n this.pluginManager.usePresets([...this.basePresets, ...presets]);\n return this;\n }\n withPlugins(plugins) {\n this.pluginManager.usePlugins([...this.basePlugins, ...plugins]);\n return this;\n }\n withDownloadHelper(path) {\n this.downloadHelper = true;\n this.downloadHelperServiceWorkerPath = path;\n return this;\n }\n async fetchApplicationConfiguration(baseUrl) {\n const client = new NetworkClient();\n // app config\n let configData;\n try {\n configData = await client.get(`${window.location.origin}${baseUrl}config.json`);\n }\n catch (error) {\n assertErrorThrown(error);\n this.logger.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_CONFIGURATION__FAILURE), error);\n }\n assertNonNullable(configData, `Can't fetch Legend application configuration`);\n // app version\n let versionData;\n try {\n versionData = await client.get(`${window.location.origin}${baseUrl}version.json`);\n }\n catch (error) {\n assertErrorThrown(error);\n this.logger.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_CONFIGURATION__FAILURE), error);\n }\n assertNonNullable(versionData, `Can't fetch Legend application version`);\n return [\n await this.configureApplication({\n configData,\n versionData,\n baseAddress: baseUrl,\n }),\n configData.extensions ?? {},\n ];\n }\n async loadDocumentationRegistryData(config) {\n const entries = {};\n await Promise.all([\n ...config.documentationRegistryEntries,\n ...this.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraDocumentationRegistryEntries?.() ?? []),\n ].map(async (entry) => {\n try {\n const client = new NetworkClient(entry.simple\n ? {\n /**\n * NOTE: see the documentation for `simple` flag {@link DocumentationRegistryEntry}\n * here, basically, we expect to fetch just the JSON from an endpoint where `Access-Control-Allow-Origin\", \"*\"` is set\n * as such, we must not include the credential in our request\n * See https://stackoverflow.com/questions/19743396/cors-cannot-use-wildcard-in-access-control-allow-origin-when-credentials-flag-i\n */\n options: {\n credentials: 'omit',\n },\n }\n : {});\n const docData = await client.get(guaranteeNonEmptyString(entry.url, `Can't load documentation registry: 'url' field is missing or empty`));\n assertNonNullable(docData.entries, `Can't load documentation registry data: 'entries' field is missing`);\n const patterns = entry.includes?.map((filter) => createRegExpPatternFromWildcardPattern(filter));\n Object.entries(docData.entries).forEach(([key, docEntry]) => {\n if (!patterns || patterns.some((pattern) => pattern.test(key))) {\n // NOTE: entries will NOT override\n if (!entries[key]) {\n entries[key] = docEntry;\n }\n }\n });\n }\n catch (error) {\n assertErrorThrown(error);\n this.logger.warn(LogEvent.create(APPLICATION_EVENT.DOCUMENTATION_FETCH__FAILURE), error);\n }\n }));\n // NOTE: config entries will override\n config.keyedDocumentationEntries = [\n ...collectKeyedDocumentationEntriesFromConfig(entries),\n ...config.keyedDocumentationEntries,\n ];\n }\n async start() {\n assertNonNullable(this._isConfigured, 'Legend application has not been configured properly. Make sure to run setup() before start()');\n try {\n // fetch application config\n const [config, extensionConfigData] = await this.fetchApplicationConfiguration(this.baseAddress);\n this.config = config;\n // setup plugins\n this.pluginRegister?.(this.pluginManager, this.config);\n this.pluginManager.configure(extensionConfigData);\n this.pluginManager.install();\n // other setups\n await Promise.all(\n // NOTE: to be done in parallel to save time\n [this.loadDocumentationRegistryData(config)]);\n // setup application store\n const applicationStore = new ApplicationStore(this.config, this.pluginManager);\n await Promise.all(this.pluginManager\n .getApplicationPlugins()\n .flatMap((plugin) => plugin.getExtraApplicationSetups?.() ?? [])\n .map((setup) => setup(applicationStore)));\n // load application\n await this.loadApplication(applicationStore);\n this.logger.info(LogEvent.create(APPLICATION_EVENT.APPLICATION_LOAD__SUCCESS), 'Legend application loaded');\n if (this.downloadHelper) {\n registerDownloadHelperServiceWorker(this.downloadHelperServiceWorkerPath);\n }\n }\n catch (error) {\n assertErrorThrown(error);\n this.logger.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_LOAD__FAILURE), 'Failed to load Legend application');\n throw error;\n }\n }\n}\nexport const LEGEND_APPLICATION_ROOT_ELEMENT_TAG = 'legend-application-root';\n// NOTE: we use a special tag to mount the application to avoid styling conflicts\nexport const getApplicationRootElement = () => {\n let rootEl = document.getElementsByTagName(LEGEND_APPLICATION_ROOT_ELEMENT_TAG).length\n ? document.getElementsByTagName(LEGEND_APPLICATION_ROOT_ELEMENT_TAG)[0]\n : undefined;\n if (!rootEl) {\n rootEl = document.createElement(LEGEND_APPLICATION_ROOT_ELEMENT_TAG);\n document.body.appendChild(rootEl);\n }\n rootEl.setAttribute('style', 'height: 100%; width: 100%; display: block');\n return rootEl;\n};\n//# sourceMappingURL=LegendApplication.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const createRegExpPatternFromWildcardPattern = (value) => new RegExp(\n// trim and add start/end regexp to make sure the wildcard pattern must be a full match\n`^${value\n .trim()\n // escape special characters except for wilcard *\n .replace(/[\\^$\\\\.+?()[\\]{}|]/g, '\\\\$&')\n // translate wildcard * to .*\n .replace(/\\*/g, '.*')}$`);\n//# sourceMappingURL=MatcherUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { uuid } from '../CommonUtils.js';\nexport class PluginInfo {\n name;\n version;\n signature;\n uuid;\n}\nexport class AbstractPlugin {\n name;\n version;\n uuid = uuid();\n constructor(name, version) {\n this.name = name;\n this.version = version;\n }\n getName() {\n return this.name;\n }\n getVersion() {\n return this.version;\n }\n getSignature() {\n return `${this.getName()}@${this.getVersion()}`;\n }\n getUUID() {\n return this.uuid;\n }\n getInfo() {\n const info = new PluginInfo();\n info.name = this.getName();\n info.version = this.getVersion();\n info.signature = this.getSignature();\n info.uuid = this.getUUID();\n return info;\n }\n configure(configData) {\n return this;\n }\n}\nexport class PresetInfo {\n name;\n version;\n signature;\n uuid;\n plugins = [];\n}\nexport class AbstractPreset {\n name;\n version;\n uuid = uuid();\n plugins = [];\n constructor(name, version, plugins) {\n this.name = name;\n this.version = version;\n this.plugins = plugins;\n }\n getName() {\n return this.name;\n }\n getVersion() {\n return this.version;\n }\n getSignature() {\n return `${this.getName()}@${this.getVersion()}`;\n }\n getUUID() {\n return this.uuid;\n }\n getPlugins() {\n return [...this.plugins];\n }\n getInfo() {\n const info = new PresetInfo();\n info.name = this.getName();\n info.version = this.getVersion();\n info.signature = this.getSignature();\n info.uuid = this.getUUID();\n info.plugins = this.plugins\n .map((plugin) => plugin.getInfo())\n .sort((a, b) => a.name.localeCompare(b.name));\n return info;\n }\n configure(configData) {\n return this;\n }\n install(pluginManager) {\n this.plugins.forEach((plugin) => plugin.install(pluginManager));\n }\n}\nexport class AbstractPluginManager {\n plugins = [];\n presets = [];\n usePlugins(plugins) {\n this.plugins = plugins;\n return this;\n }\n usePresets(presets) {\n this.presets = presets;\n return this;\n }\n configure(configData) {\n Object.keys(configData).forEach((key) => {\n const configObj = configData[key];\n this.presets.forEach((preset) => {\n if (preset.getName() === key) {\n preset.configure(configObj);\n }\n });\n this.plugins.forEach((plugin) => {\n if (plugin.getName() === key) {\n plugin.configure(configObj);\n }\n });\n });\n }\n install() {\n // Plugins run before presets\n // Plugins ordering is first to last\n this.plugins.forEach((plugin) => plugin.install(this));\n // Presets ordering is first to last\n this.presets.forEach((plugin) => plugin.install(this));\n }\n getInfo() {\n return {\n plugins: this.plugins\n .filter((plugin) => !this.getHiddenPluginNames().includes(plugin.getName()))\n .map((plugin) => plugin.getInfo())\n .sort((a, b) => a.name.localeCompare(b.name)),\n presets: this.presets\n .filter((preset) => !this.getHiddenPresetNames().includes(preset.getName()))\n .map((preset) => preset.getInfo())\n .sort((a, b) => a.name.localeCompare(b.name)),\n };\n }\n /**\n * Return the list of core plugin names to be hidden\n * when getting plugin manager info, such as core plugins.\n */\n getHiddenPluginNames() {\n return [];\n }\n /**\n * Return the list of core presets names to be hidden\n * when getting plugin manager info, such as core presets.\n */\n getHiddenPresetNames() {\n return [];\n }\n}\n//# sourceMappingURL=AbstractPluginManager.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPlugin } from '@finos/legend-shared';\nexport class LegendApplicationPlugin extends AbstractPlugin {\n}\n//# sourceMappingURL=LegendApplicationPlugin.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport packageJson from '../../package.json' assert { type: 'json' };\nimport { LEGEND_APPLICATION_SETTING_CONFIG } from '../__lib__/LegendApplicationSetting.js';\nimport { HIGH_CONTRAST_LIGHT_COLOR_THEME, LEGACY_LIGHT_COLOR_THEME, } from '../__lib__/LegendApplicationColorTheme.js';\nimport { LegendApplicationPlugin, } from './LegendApplicationPlugin.js';\nimport { collectSettingConfigurationEntriesFromConfig, } from './SettingService.js';\nimport { configure as configureMobx } from 'mobx';\nimport { configureComponents } from '@finos/legend-art';\nexport class Core_LegendApplicationPlugin extends LegendApplicationPlugin {\n static NAME = packageJson.extensions.applicationPlugin;\n constructor() {\n super(Core_LegendApplicationPlugin.NAME, packageJson.version);\n }\n install(pluginManager) {\n pluginManager.registerApplicationPlugin(this);\n }\n getExtraApplicationSetups() {\n return [\n async (applicationStore) => {\n // configure `mobx`\n configureMobx({\n // Force state modification to be done via actions\n // Otherwise, warning will be shown in development mode\n // However, no warning will shown in production mode\n // See https://mobx.js.org/configuration.html#enforceactions\n enforceActions: 'observed',\n });\n // configure UI components\n configureComponents();\n },\n ];\n }\n getExtraColorThemes() {\n return [LEGACY_LIGHT_COLOR_THEME, HIGH_CONTRAST_LIGHT_COLOR_THEME];\n }\n getExtraSettingConfigurationEntries() {\n return collectSettingConfigurationEntriesFromConfig(LEGEND_APPLICATION_SETTING_CONFIG);\n }\n}\n//# sourceMappingURL=Core_LegendApplicationPlugin.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonEmptyString, guaranteeNonNullable, URL_SEPARATOR, } from '@finos/legend-shared';\nimport { collectKeyedDocumentationEntriesFromConfig, collectContextualDocumentationEntries, collectDocumentationLinkEntryFromConfig, } from '../stores/DocumentationService.js';\nexport class LegendApplicationConfig {\n appName;\n baseAddress;\n env;\n applicationStorageKey;\n // documentation\n documentationUrl;\n documentationLinkEntries = [];\n documentationRegistryEntries = [];\n keyedDocumentationEntries = [];\n contextualDocEntries = [];\n // version\n appVersion;\n appVersionBuildTime;\n appVersionCommitId;\n constructor(input) {\n this.baseAddress = input.baseAddress;\n this.appName = guaranteeNonEmptyString(input.configData.appName, `Can't configure application: 'appName' field is missing or empty`);\n this.env = guaranteeNonEmptyString(input.configData.env, `Can't configure application: 'env' field is missing or empty`);\n this.applicationStorageKey =\n input.configData.application?.storageKey ??\n this.getDefaultApplicationStorageKey();\n // Documentation\n this.documentationUrl = input.configData.documentation?.url;\n this.documentationLinkEntries = collectDocumentationLinkEntryFromConfig(input.configData.documentation?.links ?? {});\n this.documentationRegistryEntries =\n input.configData.documentation?.registry ?? [];\n this.keyedDocumentationEntries = collectKeyedDocumentationEntriesFromConfig(input.configData.documentation?.entries ?? {});\n this.contextualDocEntries = collectContextualDocumentationEntries(input.configData.documentation?.contextualEntries ?? {});\n // Version\n this.appVersion = guaranteeNonNullable(input.versionData.version, `Can't collect application version: 'version' field is missing`);\n this.appVersionBuildTime = guaranteeNonNullable(input.versionData.buildTime, `Can't collect application version: 'buildTime' field is missing`);\n this.appVersionCommitId = guaranteeNonNullable(input.versionData.commitSHA, `Can't collect application version: 'commitSHA' field is missing`);\n }\n static resolveAbsoluteUrl(url) {\n if (url.trim().startsWith(URL_SEPARATOR)) {\n return window.location.origin + url;\n }\n return url;\n }\n}\n//# sourceMappingURL=LegendApplicationConfig.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { assertNonNullable, guaranteeNonEmptyString, } from '@finos/legend-shared';\nimport { LegendApplicationConfig, } from '@finos/legend-application';\nexport class LegendREPLGridClientApplicationConfig extends LegendApplicationConfig {\n replUrl;\n useDynamicREPLServer = false;\n constructor(input) {\n super(input);\n assertNonNullable(input.configData.repl, `Can't configure application: 'repl' field is missing`);\n this.replUrl = LegendApplicationConfig.resolveAbsoluteUrl(guaranteeNonEmptyString(input.configData.repl.url, `Can't configure application: 'repl.url' field is missing or empty`));\n if (input.configData.repl.dynamic !== undefined) {\n this.useDynamicREPLServer = Boolean(input.configData.repl.dynamic);\n }\n }\n getDefaultApplicationStorageKey() {\n return 'legend-repl';\n }\n}\n//# sourceMappingURL=LegendREPLGridClientApplicationConfig.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AbstractPluginManager, } from '@finos/legend-shared';\nexport class LegendApplicationPluginManager extends AbstractPluginManager {\n loggerPlugins = [];\n telemetryServicePlugins = [];\n tracerServicePlugins = [];\n eventNotifierPlugins = [];\n applicationPlugins = [];\n registerLoggerPlugin(plugin) {\n this.loggerPlugins.push(plugin);\n }\n registerTelemetryServicePlugin(plugin) {\n this.telemetryServicePlugins.push(plugin);\n }\n registerTracerServicePlugin(plugin) {\n this.tracerServicePlugins.push(plugin);\n }\n registerEventNotifierPlugin(plugin) {\n this.eventNotifierPlugins.push(plugin);\n }\n registerApplicationPlugin(plugin) {\n this.applicationPlugins.push(plugin);\n }\n getLoggerPlugins() {\n return [...this.loggerPlugins];\n }\n getTelemetryServicePlugins() {\n return [...this.telemetryServicePlugins];\n }\n getTracerServicePlugins() {\n return [...this.tracerServicePlugins];\n }\n getEventNotifierPlugins() {\n return [...this.eventNotifierPlugins];\n }\n getApplicationPlugins() {\n return [...this.applicationPlugins];\n }\n}\n//# sourceMappingURL=LegendApplicationPluginManager.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LegendApplicationPluginManager } from '@finos/legend-application';\nexport class LegendREPLGridClientPluginManager extends LegendApplicationPluginManager {\n pureProtocolProcessorPlugins = [];\n pureGraphManagerPlugins = [];\n pureGraphPlugins = [];\n constructor() {\n super();\n }\n static create() {\n return new LegendREPLGridClientPluginManager();\n }\n registerPureProtocolProcessorPlugin(plugin) {\n this.pureProtocolProcessorPlugins.push(plugin);\n }\n registerPureGraphManagerPlugin(plugin) {\n this.pureGraphManagerPlugins.push(plugin);\n }\n registerPureGraphPlugin(plugin) {\n this.pureGraphPlugins.push(plugin);\n }\n getPureGraphManagerPlugins() {\n return [...this.pureGraphManagerPlugins];\n }\n getPureProtocolProcessorPlugins() {\n return [...this.pureProtocolProcessorPlugins];\n }\n getPureGraphPlugins() {\n return [...this.pureGraphPlugins];\n }\n}\n//# sourceMappingURL=LegendREPLGridClientPluginManager.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var LEGEND_APPLICATION_PARAM_TOKEN;\n(function (LEGEND_APPLICATION_PARAM_TOKEN) {\n LEGEND_APPLICATION_PARAM_TOKEN[\"INITIAL_COLOR_THEME\"] = \"initialColorTheme\";\n})(LEGEND_APPLICATION_PARAM_TOKEN || (LEGEND_APPLICATION_PARAM_TOKEN = {}));\n//# sourceMappingURL=LegendApplicationNavigation.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { addQueryParametersToUrl, getQueryParameterValue, getQueryParameters, guaranteeNonNullable, sanitizeURL, stringifyQueryParams, } from '@finos/legend-shared';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { NAVIGATION_ZONE_PREFIX, } from './NavigationService.js';\nimport { Route, Switch, Redirect, matchPath, generatePath, useParams, useLocation, } from 'react-router';\nexport { BrowserRouter } from 'react-router-dom';\nexport { Route, Switch, Redirect, useParams, matchPath, generatePath };\nexport const useNavigationZone = () => {\n const location = useLocation(); // TODO: this is a temporary hack until we upgrade react-router\n return location.hash.substring(NAVIGATION_ZONE_PREFIX.length);\n};\n/**\n * Prefix URL patterns coming from extensions with `/extensions/`\n * to avoid potential conflicts with main routes.\n */\nexport const generateExtensionUrlPattern = (pattern) => `/extensions/${pattern}`.replace(/^\\/extensions\\/\\//, '/extensions/');\nexport class BrowserNavigator {\n historyAPI;\n _isNavigationBlocked = false;\n _forceBypassNavigationBlocking = false;\n _blockCheckers = [];\n _beforeUnloadListener = (event) => {\n if (this._forceBypassNavigationBlocking) {\n return;\n }\n if (this._blockCheckers.some((checker) => checker())) {\n // NOTE: there is no way to customize the alert message for now since Chrome removed support for it due to security concerns\n // See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload#Browser_compatibility\n event.returnValue = '';\n }\n };\n onBlock;\n onNativePlatformNavigationBlock;\n constructor(historyApiClient) {\n makeObservable(this, {\n _isNavigationBlocked: observable,\n isNavigationBlocked: computed,\n blockNavigation: action,\n unblockNavigation: action,\n });\n this.historyAPI = historyApiClient;\n }\n get window() {\n return guaranteeNonNullable(window, `Window object is not available in non-web environment`);\n }\n goToLocation(location, options) {\n if (options?.ignoreBlocking) {\n this._forceBypassNavigationBlocking = true;\n }\n const onProceed = () => {\n this._forceBypassNavigationBlocking = true; // make sure to not trigger `BeforeUnloadEvent`\n this.window.location.href = this.generateAddress(location);\n };\n if (!this._forceBypassNavigationBlocking &&\n this._blockCheckers.some((checker) => checker())) {\n this.onBlock?.(onProceed);\n }\n else {\n onProceed();\n }\n }\n reload(options) {\n if (options?.ignoreBlocking) {\n this._forceBypassNavigationBlocking = true;\n }\n const onProceed = () => {\n this._forceBypassNavigationBlocking = true; // make sure to not trigger `BeforeUnloadEvent`\n this.window.location.reload();\n };\n if (!this._forceBypassNavigationBlocking &&\n this._blockCheckers.some((checker) => checker())) {\n this.onBlock?.(onProceed);\n }\n else {\n onProceed();\n }\n }\n goToAddress(address, options) {\n if (options?.ignoreBlocking) {\n this._forceBypassNavigationBlocking = true;\n }\n const onProceed = () => {\n this._forceBypassNavigationBlocking = true; // make sure to not trigger `BeforeUnloadEvent`\n this.window.location.href = address;\n };\n if (!this._forceBypassNavigationBlocking &&\n this._blockCheckers.some((checker) => checker())) {\n this.onBlock?.(onProceed);\n }\n else {\n onProceed();\n }\n }\n visitAddress(address) {\n this.window.open(address, '_blank');\n }\n generateAddress(location) {\n return (this.window.location.origin +\n this.historyAPI.createHref({ pathname: location }));\n }\n updateCurrentLocation(location) {\n this.historyAPI.push(location);\n }\n updateCurrentZone(zone) {\n this.window.location.hash = NAVIGATION_ZONE_PREFIX + zone;\n }\n resetZone() {\n this.updateCurrentLocation(this.getCurrentLocation());\n }\n getCurrentBaseAddress(options) {\n if (options?.withAppRoot) {\n return this.generateAddress('');\n }\n return this.window.location.origin;\n }\n getCurrentAddress() {\n return this.window.location.href;\n }\n getCurrentLocation() {\n return this.historyAPI.location.pathname;\n }\n getCurrentLocationParameters() {\n const result = {};\n const parameters = getQueryParameters(sanitizeURL(this.getCurrentAddress()), true);\n Object.keys(parameters).forEach((key) => {\n result[key] = getQueryParameterValue(key, parameters);\n });\n return result;\n }\n getCurrentLocationParameterValue(key) {\n return this.getCurrentLocationParameters()[key];\n }\n getCurrentZone() {\n return this.window.location.hash.substring(NAVIGATION_ZONE_PREFIX.length);\n }\n blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock) {\n this._isNavigationBlocked = true;\n this.onBlock = onBlock;\n this.onNativePlatformNavigationBlock = onNativePlatformNavigationBlock;\n // Here we attempt to cancel the effect of the back button\n // See https://medium.com/codex/angular-guards-disabling-browsers-back-button-for-specific-url-fdf05d9fe155#4f13\n // This makes the current location the last entry in the browser history and clears any forward history\n this.window.history.pushState(null, '', this.getCurrentAddress());\n // The popstate event is triggered every time the user clicks back/forward button, but the forward history\n // has been cleared, and now if we go back, we call `history.forward()`, which go 1 page forward,\n // but there's no page forward, so effectively, the user remains on the same page\n this.window.onpopstate = () => {\n window.history.forward();\n this.onNativePlatformNavigationBlock?.();\n };\n // Block browser navigation: e.g. reload, setting `window.href` directly, etc.\n this._blockCheckers = blockCheckers;\n this.window.removeEventListener('beforeunload', this._beforeUnloadListener);\n this.window.addEventListener('beforeunload', this._beforeUnloadListener);\n }\n unblockNavigation() {\n this._isNavigationBlocked = false;\n this.onBlock = undefined;\n this.window.onpopstate = null;\n this._blockCheckers = [];\n this.window.removeEventListener('beforeunload', this._beforeUnloadListener);\n }\n get isNavigationBlocked() {\n return this._isNavigationBlocked;\n }\n INTERNAL__internalizeTransientParameter(key) {\n const currentZone = this.getCurrentZone();\n const parameters = this.getCurrentLocationParameters();\n delete parameters[key];\n this.updateCurrentLocation(addQueryParametersToUrl(this.getCurrentLocation(), stringifyQueryParams(parameters)));\n this.updateCurrentZone(currentZone);\n }\n}\n//# sourceMappingURL=BrowserNavigator.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class ApplicationPlatform {\n applicationStore;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n }\n async initialize() {\n // do nothing\n }\n}\n//# sourceMappingURL=ApplicationPlatform.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BrowserNavigator } from '../navigation/BrowserNavigator.js';\nimport { ApplicationPlatform } from './ApplicationPlatform.js';\nimport { LEGEND_APPLICATION_PARAM_TOKEN } from '../../__lib__/LegendApplicationNavigation.js';\nexport class BrowserPlatform extends ApplicationPlatform {\n navigator;\n constructor(applicationStore, config) {\n super(applicationStore);\n this.navigator = new BrowserNavigator(config.historyAPI);\n }\n getNavigator() {\n return this.navigator;\n }\n async initialize() {\n // set initial color theme\n // NOTE: we allow this to avoid the flash of default color theme\n // when loading the page from another page/ when using the application in an iframe\n const initialColorTheme = this.applicationStore.navigationService.navigator.getCurrentLocationParameterValue(LEGEND_APPLICATION_PARAM_TOKEN.INITIAL_COLOR_THEME);\n if (initialColorTheme) {\n this.applicationStore.layoutService.setColorTheme(initialColorTheme);\n this.applicationStore.navigationService.navigator.INTERNAL__internalizeTransientParameter(LEGEND_APPLICATION_PARAM_TOKEN.INITIAL_COLOR_THEME);\n }\n }\n}\n//# sourceMappingURL=BrowserPlatform.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable } from '@finos/legend-shared';\nimport { createContext, useContext } from 'react';\nexport const ApplicationPlatformContext = createContext(undefined);\nexport const useApplicationPlatform = () => guaranteeNonNullable(useContext(ApplicationPlatformContext), `Can't find application platform in context`);\n//# sourceMappingURL=ApplicationPlatformProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {} from 'history';\nimport { useLocalObservable } from 'mobx-react-lite';\nimport { useHistory } from 'react-router';\nimport { BrowserRouter } from 'react-router-dom';\nimport { BrowserPlatform } from '../stores/platform/BrowserPlatform.js';\nimport { ApplicationPlatformContext } from './ApplicationPlatformProvider.js';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nconst BrowserPlatformProvider = ({ children }) => {\n const applicationStore = useApplicationStore();\n const historyAPI = useHistory(); // TODO: this is a temporary hack until we upgrade react-router\n const platform = useLocalObservable(() => new BrowserPlatform(applicationStore, { historyAPI }));\n return (_jsx(ApplicationPlatformContext.Provider, { value: platform, children: children }));\n};\nexport const BrowserEnvironmentProvider = ({ children, baseUrl }) => (_jsx(BrowserRouter, { basename: baseUrl, children: _jsx(BrowserPlatformProvider, { children: children }) }));\n//# sourceMappingURL=BrowserEnvironmentProvider.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable, } from '@finos/legend-shared';\nexport class REPLServerClient {\n networkClient;\n constructor(networkClient) {\n this.networkClient = networkClient;\n }\n get baseUrl() {\n return guaranteeNonNullable(this.networkClient.baseUrl, `REPL client has not been configured properly`);\n }\n getREPLGridServerResult = (request) => this.networkClient.post(`${this.baseUrl}/gridResult`, request, undefined, undefined);\n getIntialQueryLambda = () => this.networkClient.get(`${this.baseUrl}/initialLambda`, undefined, undefined, undefined);\n executeLambda = (lambda, isPaginationEnabled) => this.networkClient.post(`${this.baseUrl}/executeLambda`, lambda, undefined, undefined, {\n isPaginationEnabled,\n });\n getTypeaheadResults = (lambda) => this.networkClient.post(`${this.baseUrl}/typeahead`, lambda, undefined, undefined);\n parseQuery = (lambda) => this.networkClient.post(`${this.baseUrl}/parseQuery`, lambda, undefined, undefined);\n getInitialREPLGridServerResult = (isPaginationEnabled) => this.networkClient.get(`${this.baseUrl}/gridResult`, undefined, undefined, {\n isPaginationEnabled,\n });\n getLicenseKey = () => this.networkClient.get(`${this.baseUrl}/licenseKey`, undefined, undefined, undefined);\n}\n//# sourceMappingURL=REPLServerClient.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, primitive } from 'serializr';\nimport { SerializationFactory } from '@finos/legend-shared';\nexport class REPLGridServerResult {\n currentQuery;\n result;\n static serialization = new SerializationFactory(createModelSchema(REPLGridServerResult, {\n currentQuery: primitive(),\n result: primitive(),\n }));\n}\n//# sourceMappingURL=REPLGridServerResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var LEGEND_REPL_EVENT;\n(function (LEGEND_REPL_EVENT) {\n LEGEND_REPL_EVENT[\"FETCH_TDS_FAILURE\"] = \"repl.fetch-tds.failure\";\n LEGEND_REPL_EVENT[\"BUILD_TDS_EQUEST_FAILURE\"] = \"repl.build-tds-request.failure\";\n})(LEGEND_REPL_EVENT || (LEGEND_REPL_EVENT = {}));\nexport var LEGEND_APPLICATION_REPL_SETTING_KEY;\n(function (LEGEND_APPLICATION_REPL_SETTING_KEY) {\n LEGEND_APPLICATION_REPL_SETTING_KEY[\"PAGINATION\"] = \"application.pagination.enabled\";\n})(LEGEND_APPLICATION_REPL_SETTING_KEY || (LEGEND_APPLICATION_REPL_SETTING_KEY = {}));\nexport var QUERY_FUNCTION;\n(function (QUERY_FUNCTION) {\n QUERY_FUNCTION[\"FILTER\"] = \"filter\";\n QUERY_FUNCTION[\"SORT\"] = \"sort\";\n QUERY_FUNCTION[\"SLICE\"] = \"slice\";\n QUERY_FUNCTION[\"GROUPBY\"] = \"groupBy\";\n QUERY_FUNCTION[\"NOT\"] = \"not\";\n QUERY_FUNCTION[\"FROM\"] = \"from\";\n})(QUERY_FUNCTION || (QUERY_FUNCTION = {}));\nexport const DEFAULT_VARIABLE_NAME = 'x';\n//# sourceMappingURL=Const.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var TDS_FILTER_OPERATION;\n(function (TDS_FILTER_OPERATION) {\n TDS_FILTER_OPERATION[\"EQUALS\"] = \"equal\";\n TDS_FILTER_OPERATION[\"NOT_EQUAL\"] = \"notEqual\";\n TDS_FILTER_OPERATION[\"GREATER_THAN\"] = \"greaterThan\";\n TDS_FILTER_OPERATION[\"GREATER_THAN_OR_EQUAL\"] = \"greaterThanOrEqual\";\n TDS_FILTER_OPERATION[\"LESS_THAN\"] = \"lessThan\";\n TDS_FILTER_OPERATION[\"LESS_THAN_OR_EQUAL\"] = \"lessThanOrEqual\";\n TDS_FILTER_OPERATION[\"BLANK\"] = \"isEmpty\";\n TDS_FILTER_OPERATION[\"NOT_BLANK\"] = \"isNotEmpty\";\n TDS_FILTER_OPERATION[\"CONTAINS\"] = \"contains\";\n TDS_FILTER_OPERATION[\"NOT_CONTAINS\"] = \"notContains\";\n TDS_FILTER_OPERATION[\"STARTS_WITH\"] = \"startsWith\";\n TDS_FILTER_OPERATION[\"ENDS_WITH\"] = \"endsWith\";\n})(TDS_FILTER_OPERATION || (TDS_FILTER_OPERATION = {}));\nexport var TDS_FILTER_GROUP;\n(function (TDS_FILTER_GROUP) {\n TDS_FILTER_GROUP[\"AND\"] = \"and\";\n TDS_FILTER_GROUP[\"OR\"] = \"or\";\n})(TDS_FILTER_GROUP || (TDS_FILTER_GROUP = {}));\nexport var TDS_AGGREGATION_FUNCTION;\n(function (TDS_AGGREGATION_FUNCTION) {\n TDS_AGGREGATION_FUNCTION[\"SUM\"] = \"sum\";\n TDS_AGGREGATION_FUNCTION[\"MIN\"] = \"min\";\n TDS_AGGREGATION_FUNCTION[\"MAX\"] = \"max\";\n TDS_AGGREGATION_FUNCTION[\"COUNT\"] = \"count\";\n TDS_AGGREGATION_FUNCTION[\"AVG\"] = \"avg\";\n TDS_AGGREGATION_FUNCTION[\"FIRST\"] = \"first\";\n TDS_AGGREGATION_FUNCTION[\"LAST\"] = \"last\";\n})(TDS_AGGREGATION_FUNCTION || (TDS_AGGREGATION_FUNCTION = {}));\nexport var TDS_SORT_ORDER;\n(function (TDS_SORT_ORDER) {\n TDS_SORT_ORDER[\"ASCENDING\"] = \"ascending\";\n TDS_SORT_ORDER[\"DESCENDING\"] = \"descending\";\n})(TDS_SORT_ORDER || (TDS_SORT_ORDER = {}));\nexport var FILTER_TYPE;\n(function (FILTER_TYPE) {\n FILTER_TYPE[\"TEXT\"] = \"text\";\n FILTER_TYPE[\"NUMBER\"] = \"number\";\n})(FILTER_TYPE || (FILTER_TYPE = {}));\nexport class TDSFilterCondition {\n operation;\n value;\n constructor(operation, value) {\n this.operation = operation;\n this.value = value;\n }\n}\nexport class TDSFilter {\n column;\n columnType;\n conditions;\n groupOperation;\n constructor(column, columnType, conditions, groupOperation) {\n this.column = column;\n this.columnType = columnType;\n this.conditions = conditions;\n this.groupOperation = groupOperation;\n }\n}\nexport class TDSSort {\n column;\n order;\n constructor(column, order) {\n this.column = column;\n this.order = order;\n }\n}\nexport class TDSAggregation {\n column;\n columnType;\n function;\n constructor(column, columnType, _function) {\n this.column = column;\n this.columnType = columnType;\n this.function = _function;\n }\n}\nexport class TDSGroupby {\n columns;\n groupKeys;\n aggregations;\n constructor(columns, groupKeys, aggregations) {\n this.columns = columns;\n this.groupKeys = groupKeys;\n this.aggregations = aggregations;\n }\n}\nexport class TDSRequest {\n startRow;\n endRow;\n columns;\n filter;\n sort;\n groupBy;\n constructor(columns, filter, sort, groupBy, startRow, endRow) {\n this.startRow = startRow;\n this.endRow = endRow;\n this.columns = columns;\n this.filter = filter;\n this.sort = sort;\n this.groupBy = groupBy;\n }\n}\n//# sourceMappingURL=TDSRequest.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport const MULTIPLICITY_INFINITE = '*';\nexport const ELEMENT_PATH_DELIMITER = '::';\nexport const MULTIPLICITY_RANGE_OPERATOR = '..';\nexport const PROPERTY_ACCESSOR = '.';\nexport const UNIT_PATH_DELIMITER = '~';\nexport const LAMBDA_PIPE = '|';\nexport const DEFAULT_SOURCE_PARAMETER_NAME = 'src';\nexport const DEFAULT_DATABASE_SCHEMA_NAME = 'default';\nexport const SECTION_INDEX_ELEMENT_PATH = '__internal__::SectionIndex';\nexport const VARIABLE_REFERENCE_TOKEN = '$';\nexport const TYPE_CAST_TOKEN = '@';\nexport const ARROW_FUNCTION_TOKEN = '->';\nexport const LATEST_DATE = '%latest';\nexport const PARSER_SECTION_MARKER = '###';\nexport const FUNCTION_SIGNATURE_MULTIPLICITY_INFINITE_TOKEN = 'MANY';\nexport const DIRECTORY_PATH_DELIMITER = '/';\nexport const SOURCE_INFORMATION_PROPERTY_KEY_SUFFIX = 'sourceInformation';\nexport const RESERVERD_PACKAGE_NAMES = ['$implicit'];\nexport var ROOT_PACKAGE_NAME;\n(function (ROOT_PACKAGE_NAME) {\n ROOT_PACKAGE_NAME[\"CORE\"] = \"CORE\";\n ROOT_PACKAGE_NAME[\"MAIN\"] = \"ROOT\";\n ROOT_PACKAGE_NAME[\"MODEL_GENERATION\"] = \"MODEL_GENERATION_ROOT\";\n ROOT_PACKAGE_NAME[\"SYSTEM\"] = \"SYSTEM_ROOT\";\n ROOT_PACKAGE_NAME[\"PROJECT_DEPENDENCY_ROOT\"] = \"PROJECT_DEPENDENCY_ROOT\";\n})(ROOT_PACKAGE_NAME || (ROOT_PACKAGE_NAME = {}));\nexport var PRIMITIVE_TYPE;\n(function (PRIMITIVE_TYPE) {\n PRIMITIVE_TYPE[\"STRING\"] = \"String\";\n PRIMITIVE_TYPE[\"BOOLEAN\"] = \"Boolean\";\n PRIMITIVE_TYPE[\"BINARY\"] = \"Binary\";\n PRIMITIVE_TYPE[\"NUMBER\"] = \"Number\";\n PRIMITIVE_TYPE[\"INTEGER\"] = \"Integer\";\n PRIMITIVE_TYPE[\"FLOAT\"] = \"Float\";\n PRIMITIVE_TYPE[\"DECIMAL\"] = \"Decimal\";\n PRIMITIVE_TYPE[\"DATE\"] = \"Date\";\n PRIMITIVE_TYPE[\"STRICTDATE\"] = \"StrictDate\";\n PRIMITIVE_TYPE[\"DATETIME\"] = \"DateTime\";\n PRIMITIVE_TYPE[\"STRICTTIME\"] = \"StrictTime\";\n // NOTE: `LatestDate` is a special type that is used for milestoning in store so its used in the body of function and lamdba but never should be exposed to users\n // as such, if there is a day we want to have `LatestDate` in the graph but not exposed to the users\n PRIMITIVE_TYPE[\"LATESTDATE\"] = \"LatestDate\";\n PRIMITIVE_TYPE[\"BYTE\"] = \"Byte\";\n})(PRIMITIVE_TYPE || (PRIMITIVE_TYPE = {}));\nexport var ATOMIC_TEST_TYPE;\n(function (ATOMIC_TEST_TYPE) {\n ATOMIC_TEST_TYPE[\"Service_Test\"] = \"serviceTest\";\n ATOMIC_TEST_TYPE[\"Mapping_Test\"] = \"mappingTest\";\n ATOMIC_TEST_TYPE[\"Function_Test\"] = \"functionTest\";\n})(ATOMIC_TEST_TYPE || (ATOMIC_TEST_TYPE = {}));\n// NOTE: the list of auto-import are kept in `m3.pure` file in `finos/legend-pure`,\n// this includes a more extensive list of packges which contain native functions, classes, etc.\n// See https://github.com/finos/legend-pure/blob/master/legend-pure-m3-core/src/main/resources/platform/pure/m3.pure\nexport const AUTO_IMPORTS = [\n // 'meta::pure::metamodel',\n 'meta::pure::metamodel::type',\n // 'meta::pure::metamodel::type::generics',\n // 'meta::pure::metamodel::relationship',\n // 'meta::pure::metamodel::valuespecification',\n // 'meta::pure::metamodel::multiplicity',\n // 'meta::pure::metamodel::function',\n // 'meta::pure::metamodel::function::property',\n // 'meta::pure::metamodel::extension',\n // 'meta::pure::metamodel::import',\n 'meta::pure::functions::date',\n // 'meta::pure::functions::string',\n // 'meta::pure::functions::collection',\n // 'meta::pure::functions::meta',\n // 'meta::pure::functions::constraints',\n // 'meta::pure::functions::lang',\n // 'meta::pure::functions::boolean',\n // 'meta::pure::functions::tools',\n // 'meta::pure::functions::io',\n // 'meta::pure::functions::math',\n // 'meta::pure::functions::asserts',\n // 'meta::pure::functions::test',\n // 'meta::pure::functions::multiplicity',\n // 'meta::pure::router',\n // 'meta::pure::service',\n // 'meta::pure::tds',\n // 'meta::pure::tools',\n 'meta::pure::profiles',\n];\nexport var CORE_PURE_PATH;\n(function (CORE_PURE_PATH) {\n // type\n CORE_PURE_PATH[\"ANY\"] = \"meta::pure::metamodel::type::Any\";\n CORE_PURE_PATH[\"NIL\"] = \"meta::pure::metamodel::type::Nil\";\n // profile\n CORE_PURE_PATH[\"PROFILE_DOC\"] = \"meta::pure::profiles::doc\";\n CORE_PURE_PATH[\"PROFILE_TEMPORAL\"] = \"meta::pure::profiles::temporal\";\n // classifier paths\n CORE_PURE_PATH[\"PROFILE\"] = \"meta::pure::metamodel::extension::Profile\";\n CORE_PURE_PATH[\"ENUMERATION\"] = \"meta::pure::metamodel::type::Enumeration\";\n CORE_PURE_PATH[\"MEASURE\"] = \"meta::pure::metamodel::type::Measure\";\n CORE_PURE_PATH[\"CLASS\"] = \"meta::pure::metamodel::type::Class\";\n CORE_PURE_PATH[\"ASSOCIATION\"] = \"meta::pure::metamodel::relationship::Association\";\n CORE_PURE_PATH[\"FUNCTION\"] = \"meta::pure::metamodel::function::ConcreteFunctionDefinition\";\n CORE_PURE_PATH[\"FLAT_DATA\"] = \"meta::flatData::metamodel::FlatData\";\n CORE_PURE_PATH[\"DATABASE\"] = \"meta::relational::metamodel::Database\";\n CORE_PURE_PATH[\"MAPPING\"] = \"meta::pure::mapping::Mapping\";\n CORE_PURE_PATH[\"SERVICE\"] = \"meta::legend::service::metamodel::Service\";\n CORE_PURE_PATH[\"CONNECTION\"] = \"meta::pure::runtime::PackageableConnection\";\n CORE_PURE_PATH[\"RUNTIME\"] = \"meta::pure::runtime::PackageableRuntime\";\n CORE_PURE_PATH[\"EXECUTION_ENVIRONMENT\"] = \"meta::legend::service::metamodel::ExecutionEnvironmentInstance\";\n CORE_PURE_PATH[\"FILE_GENERATION\"] = \"meta::pure::generation::metamodel::GenerationConfiguration\";\n CORE_PURE_PATH[\"GENERATION_SPECIFICATION\"] = \"meta::pure::generation::metamodel::GenerationSpecification\";\n CORE_PURE_PATH[\"SECTION_INDEX\"] = \"meta::pure::metamodel::section::SectionIndex\";\n CORE_PURE_PATH[\"DATA_ELEMENT\"] = \"meta::pure::data::DataElement\";\n CORE_PURE_PATH[\"SNOWFLAKE_APP\"] = \"meta::external::function::activator::snowflakeApp::SnowflakeApp\";\n CORE_PURE_PATH[\"HOSTED_SERVICE\"] = \"meta::external::function::activator::hostedService::HostedService\";\n})(CORE_PURE_PATH || (CORE_PURE_PATH = {}));\nexport const PURE_DOC_TAG = 'doc';\nexport const PURE_DEPRECATED_STEREOTYPE = 'deprecated';\nexport var MILESTONING_STEREOTYPE;\n(function (MILESTONING_STEREOTYPE) {\n MILESTONING_STEREOTYPE[\"BUSINESS_TEMPORAL\"] = \"businesstemporal\";\n MILESTONING_STEREOTYPE[\"PROCESSING_TEMPORAL\"] = \"processingtemporal\";\n MILESTONING_STEREOTYPE[\"BITEMPORAL\"] = \"bitemporal\";\n})(MILESTONING_STEREOTYPE || (MILESTONING_STEREOTYPE = {}));\nexport var MILESTONING_VERSION_PROPERTY_SUFFIX;\n(function (MILESTONING_VERSION_PROPERTY_SUFFIX) {\n MILESTONING_VERSION_PROPERTY_SUFFIX[\"ALL_VERSIONS\"] = \"AllVersions\";\n MILESTONING_VERSION_PROPERTY_SUFFIX[\"ALL_VERSIONS_IN_RANGE\"] = \"AllVersionsInRange\";\n})(MILESTONING_VERSION_PROPERTY_SUFFIX || (MILESTONING_VERSION_PROPERTY_SUFFIX = {}));\nexport const MILESTONING_START_DATE_PARAMETER_NAME = 'startDate';\nexport const MILESTONING_END_DATE_PARAMETER_NAME = 'endDate';\nexport const PROCESSING_DATE_MILESTONING_PROPERTY_NAME = 'processingDate';\nexport const BUSINESS_DATE_MILESTONING_PROPERTY_NAME = 'businessDate';\nexport var PackageableElementPointerType;\n(function (PackageableElementPointerType) {\n PackageableElementPointerType[\"CLASS\"] = \"CLASS\";\n PackageableElementPointerType[\"STORE\"] = \"STORE\";\n PackageableElementPointerType[\"MAPPING\"] = \"MAPPING\";\n PackageableElementPointerType[\"RUNTIME\"] = \"RUNTIME\";\n PackageableElementPointerType[\"FUNCTION\"] = \"FUNCTION\";\n PackageableElementPointerType[\"FILE_GENERATION\"] = \"FILE_GENERATION\";\n PackageableElementPointerType[\"SERVICE\"] = \"SERVICE\";\n PackageableElementPointerType[\"DATA\"] = \"DATA\";\n})(PackageableElementPointerType || (PackageableElementPointerType = {}));\nexport var SUPPORTED_FUNCTIONS;\n(function (SUPPORTED_FUNCTIONS) {\n SUPPORTED_FUNCTIONS[\"LET\"] = \"meta::pure::functions::lang::letFunction\";\n SUPPORTED_FUNCTIONS[\"NEW\"] = \"meta::pure::functions::meta::new\";\n // from\n SUPPORTED_FUNCTIONS[\"FROM\"] = \"meta::pure::mapping::from\";\n})(SUPPORTED_FUNCTIONS || (SUPPORTED_FUNCTIONS = {}));\nexport const DATE_TIME_FORMAT_WITH_MILLISECONDS = \"yyyy-MM-dd'T'HH:mm:ss.SSSxxxx\";\nexport const DATE_TIME_FORMAT = \"yyyy-MM-dd'T'HH:mm:ssxxxx\";\nexport const DATE_FORMAT = 'yyyy-MM-dd';\n// Generation Const\nexport const DEFAULT_GENERATION_PACKAGE = 'generated';\n// Query\nexport const QUERY_PROFILE_TAG_CLASS = 'class';\nexport const QUERY_PROFILE_PATH = 'meta::pure::profiles::query';\n//# sourceMappingURL=MetaModelConst.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TDS_AGGREGATION_FUNCTION, TDS_FILTER_OPERATION, TDS_SORT_ORDER, } from './TDSRequest.js';\nimport { PRIMITIVE_TYPE, } from '@finos/legend-graph';\nimport { isBoolean } from '@finos/legend-shared';\nexport const getTDSSortOrder = (sortOrder) => {\n switch (sortOrder) {\n case 'asc':\n return TDS_SORT_ORDER.ASCENDING;\n case 'desc':\n return TDS_SORT_ORDER.DESCENDING;\n default:\n throw new Error(`Unsupported tds sort order ${sortOrder}`);\n }\n};\nexport const getAggregationFunction = (aggFunc) => {\n switch (aggFunc) {\n case 'sum':\n return TDS_AGGREGATION_FUNCTION.SUM;\n case 'min':\n return TDS_AGGREGATION_FUNCTION.MIN;\n case 'max':\n return TDS_AGGREGATION_FUNCTION.MAX;\n case 'count':\n return TDS_AGGREGATION_FUNCTION.COUNT;\n default:\n throw new Error(`Unsupported aggregation function ${aggFunc}`);\n }\n};\nexport const getTDSFilterOperation = (filterOperation) => {\n switch (filterOperation) {\n case 'equals':\n return TDS_FILTER_OPERATION.EQUALS;\n case 'notEqual':\n return TDS_FILTER_OPERATION.NOT_EQUAL;\n case 'greaterThan':\n return TDS_FILTER_OPERATION.GREATER_THAN;\n case 'greaterThanOrEqual':\n return TDS_FILTER_OPERATION.GREATER_THAN_OR_EQUAL;\n case 'lessThan':\n return TDS_FILTER_OPERATION.LESS_THAN;\n case 'lessThanOrEqual':\n return TDS_FILTER_OPERATION.LESS_THAN_OR_EQUAL;\n case 'blank':\n return TDS_FILTER_OPERATION.BLANK;\n case 'notBlank':\n return TDS_FILTER_OPERATION.NOT_BLANK;\n case 'contains':\n return TDS_FILTER_OPERATION.CONTAINS;\n case 'notContains':\n return TDS_FILTER_OPERATION.NOT_CONTAINS;\n case 'startsWith':\n return TDS_FILTER_OPERATION.STARTS_WITH;\n case 'endsWith':\n return TDS_FILTER_OPERATION.ENDS_WITH;\n default:\n throw new Error(`Unsupported filter operation ${filterOperation}`);\n }\n};\nexport const getFilterColumnType = (type) => {\n switch (type) {\n case 'text':\n return PRIMITIVE_TYPE.STRING;\n case 'number':\n return PRIMITIVE_TYPE.NUMBER;\n case 'boolean':\n return PRIMITIVE_TYPE.BOOLEAN;\n case 'date':\n return PRIMITIVE_TYPE.DATE;\n default:\n throw new Error(`Unsupported filter type ${type}`);\n }\n};\nexport const getAggregationTDSColumnCustomizations = (isAgGridLicenseEnabled, result, columnName) => {\n if (!isAgGridLicenseEnabled) {\n return {};\n }\n const columnType = result.builder.columns.find((col) => col.name === columnName)?.type;\n switch (columnType) {\n case PRIMITIVE_TYPE.STRING:\n return {\n filter: 'agTextColumnFilter',\n allowedAggFuncs: ['count'],\n };\n case PRIMITIVE_TYPE.DATE:\n case PRIMITIVE_TYPE.DATETIME:\n case PRIMITIVE_TYPE.STRICTDATE:\n return {\n filter: 'agDateColumnFilter',\n allowedAggFuncs: ['count'],\n };\n case PRIMITIVE_TYPE.DECIMAL:\n case PRIMITIVE_TYPE.INTEGER:\n case PRIMITIVE_TYPE.FLOAT:\n return {\n filter: 'agNumberColumnFilter',\n allowedAggFuncs: ['count', 'sum', 'max', 'min', 'avg'],\n };\n default:\n return {\n allowedAggFuncs: ['count'],\n };\n }\n};\nexport const getDefaultColumnDefintions = () => ({\n minWidth: 50,\n sortable: true,\n flex: 1,\n resizable: true,\n enableRowGroup: true,\n allowedAggFuncs: ['count', 'sum', 'max', 'min', 'avg'],\n enableValue: true,\n menuTabs: ['filterMenuTab', 'generalMenuTab', 'columnsMenuTab'],\n});\nexport const getTDSRowData = (tds) => tds.rows.map((_row, rowIdx) => {\n const row = {};\n const cols = tds.columns;\n _row.values.forEach((value, colIdx) => {\n // `ag-grid` shows `false` value as empty string so we have\n // call `.toString()` to avoid this behavior.\n row[cols[colIdx]] = isBoolean(value) ? String(value) : value;\n });\n row.rowNumber = rowIdx;\n return row;\n});\n//# sourceMappingURL=GridUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var PURE_GRAMMAR_TOKEN;\n(function (PURE_GRAMMAR_TOKEN) {\n PURE_GRAMMAR_TOKEN[\"WHITESPACE\"] = \"\";\n PURE_GRAMMAR_TOKEN[\"KEYWORD\"] = \"keyword\";\n PURE_GRAMMAR_TOKEN[\"IDENTIFIER\"] = \"identifier\";\n PURE_GRAMMAR_TOKEN[\"OPERATOR\"] = \"operator\";\n PURE_GRAMMAR_TOKEN[\"DELIMITER\"] = \"delimiter\";\n PURE_GRAMMAR_TOKEN[\"PARSER\"] = \"parser\";\n PURE_GRAMMAR_TOKEN[\"NUMBER\"] = \"number\";\n PURE_GRAMMAR_TOKEN[\"DATE\"] = \"date\";\n PURE_GRAMMAR_TOKEN[\"COLOR\"] = \"color\";\n PURE_GRAMMAR_TOKEN[\"PACKAGE\"] = \"package\";\n PURE_GRAMMAR_TOKEN[\"STRING\"] = \"string\";\n PURE_GRAMMAR_TOKEN[\"COMMENT\"] = \"comment\";\n PURE_GRAMMAR_TOKEN[\"LANGUAGE_STRUCT\"] = \"language-struct\";\n PURE_GRAMMAR_TOKEN[\"MULTIPLICITY\"] = \"multiplicity\";\n PURE_GRAMMAR_TOKEN[\"GENERICS\"] = \"generics\";\n PURE_GRAMMAR_TOKEN[\"PROPERTY\"] = \"property\";\n PURE_GRAMMAR_TOKEN[\"PARAMETER\"] = \"parameter\";\n PURE_GRAMMAR_TOKEN[\"VARIABLE\"] = \"variable\";\n PURE_GRAMMAR_TOKEN[\"TYPE\"] = \"type\";\n PURE_GRAMMAR_TOKEN[\"INVALID\"] = \"invalid\";\n})(PURE_GRAMMAR_TOKEN || (PURE_GRAMMAR_TOKEN = {}));\n//# sourceMappingURL=PureLanguage.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getNonNullableEntry, isNonNullable, isString, } from '@finos/legend-shared';\nconst parseVSCodeTheme = (rawData) => {\n const rules = [];\n rawData.tokenColors.forEach((tokenColor) => {\n if (!tokenColor.settings) {\n return;\n }\n let scopes = [];\n if (isString(tokenColor.scope)) {\n scopes = tokenColor.scope\n .replace(/^[,]+/, '')\n .replace(/[,]+$/, '')\n .split(',')\n .map((scope) => scope.trim());\n }\n else if (Array.isArray(tokenColor.scope)) {\n scopes = tokenColor.scope;\n }\n else {\n scopes = [''];\n }\n const baseRule = {};\n if (tokenColor.settings.foreground &&\n isString(tokenColor.settings.foreground)) {\n baseRule.foreground = tokenColor.settings.foreground;\n }\n if (tokenColor.settings.background &&\n isString(tokenColor.settings.background)) {\n baseRule.background = tokenColor.settings.background;\n }\n if (tokenColor.settings.fontStyle &&\n isString(tokenColor.settings.fontStyle)) {\n baseRule.fontStyle = tokenColor.settings.fontStyle;\n }\n scopes.forEach((scope) => {\n if (isNonNullable(scope) || !Object.keys(baseRule).length) {\n return;\n }\n const rule = {\n ...baseRule,\n token: scope,\n };\n rules.push(rule);\n });\n });\n const colors = {};\n Object.entries(rawData.colors).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n if (value.length) {\n colors[key] = getNonNullableEntry(value, 0);\n }\n }\n else {\n colors[key] = value;\n }\n });\n return {\n base: 'vs-dark',\n inherit: true,\n rules: rules,\n colors,\n };\n};\nexport const buildCodeEditorTheme = (vscodeThemeData, baseTheme, colorsOverride, rulesOverride) => {\n const baseThemeData = parseVSCodeTheme(vscodeThemeData);\n return {\n ...baseThemeData,\n base: baseTheme,\n colors: { ...baseThemeData.colors, ...colorsOverride },\n rules: [...baseThemeData.rules, ...rulesOverride],\n };\n};\n//# sourceMappingURL=MonacoEditorThemeUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { PURE_GRAMMAR_TOKEN } from './PureLanguage.js';\nimport { buildCodeEditorTheme } from './themes/MonacoEditorThemeUtils.js';\nimport SOLARIZED_DARK_THEME_DATA from './themes/solarized-dark-color-theme.json' assert { type: 'json' };\nimport GITHUB_DARK_THEME_DATA from './themes/Github-Theme-dark.json' assert { type: 'json' };\nimport GITHUB_DARK_DIMMED_THEME_DATA from './themes/Github-Theme-dark-dimmed.json' assert { type: 'json' };\nimport MATERIAL_DEFAULT_THEME_DATA from './themes/Material-Theme-Default.json' assert { type: 'json' };\nimport MATERIAL_DARKER_THEME_DATA from './themes/Material-Theme-Darker.json' assert { type: 'json' };\nimport ONE_DARK_PRO_THEME_DATA from './themes/OneDark-Pro.json' assert { type: 'json' };\nimport ONE_DARK_PRO_DARKER_THEME_DATA from './themes/OneDark-Pro-darker.json' assert { type: 'json' };\nconst BASE_PURE_LANGUAGE_COLOR_TOKENS = [\n // NOTE: `monaco-editor` only accepts HEX values, not CSS variables\n { token: PURE_GRAMMAR_TOKEN.IDENTIFIER, foreground: 'dcdcaa' },\n { token: PURE_GRAMMAR_TOKEN.NUMBER, foreground: 'b5cea8' },\n { token: PURE_GRAMMAR_TOKEN.DATE, foreground: 'b5cea8' },\n { token: PURE_GRAMMAR_TOKEN.COLOR, foreground: 'b5cea8' },\n { token: PURE_GRAMMAR_TOKEN.PACKAGE, foreground: '808080' },\n { token: PURE_GRAMMAR_TOKEN.PARSER, foreground: 'c586c0' },\n { token: PURE_GRAMMAR_TOKEN.LANGUAGE_STRUCT, foreground: 'c586c0' },\n { token: PURE_GRAMMAR_TOKEN.MULTIPLICITY, foreground: '2d796b' },\n { token: PURE_GRAMMAR_TOKEN.GENERICS, foreground: '2d796b' },\n { token: PURE_GRAMMAR_TOKEN.PROPERTY, foreground: '9cdcfe' },\n { token: PURE_GRAMMAR_TOKEN.PARAMETER, foreground: '9cdcfe' },\n { token: PURE_GRAMMAR_TOKEN.VARIABLE, foreground: '4fc1ff' },\n { token: PURE_GRAMMAR_TOKEN.TYPE, foreground: '3dc9b0' },\n { token: `${PURE_GRAMMAR_TOKEN.STRING}.escape`, foreground: 'd7ba7d' },\n];\nexport var CODE_EDITOR_THEME;\n(function (CODE_EDITOR_THEME) {\n CODE_EDITOR_THEME[\"DEFAULT_DARK\"] = \"default-dark\";\n CODE_EDITOR_THEME[\"GITHUB_DARK\"] = \"github-dark\";\n CODE_EDITOR_THEME[\"GITHUB_DARK_DIMMED\"] = \"github-dark-dimmed\";\n CODE_EDITOR_THEME[\"SOLARIZED_DARK\"] = \"solarized-dark\";\n CODE_EDITOR_THEME[\"ONE_DARK_PRO\"] = \"one-dark-pro\";\n CODE_EDITOR_THEME[\"ONE_DARK_PRO_DARKER\"] = \"one-dark-pro-darker\";\n CODE_EDITOR_THEME[\"MATERIAL_DEFAULT\"] = \"material-default\";\n CODE_EDITOR_THEME[\"MATERIAL_DARKER\"] = \"material-darker\";\n // default themes in Monaco editor\n // See https://github.com/microsoft/vscode/blob/main/src/vs/editor/standalone/common/themes.ts\n CODE_EDITOR_THEME[\"BUILT_IN__VSCODE_LIGHT\"] = \"vs\";\n CODE_EDITOR_THEME[\"BUILT_IN__VSCODE_DARK\"] = \"vs-dark\";\n CODE_EDITOR_THEME[\"BUILT_IN__VSCODE_HC_BLACK\"] = \"hc-black\";\n CODE_EDITOR_THEME[\"BUILT_IN__VSCODE_HC_LIGHT\"] = \"hc-light\";\n})(CODE_EDITOR_THEME || (CODE_EDITOR_THEME = {}));\nexport const DEFAULT_DARK_THEME = {\n base: 'vs-dark',\n inherit: true,\n colors: {},\n rules: [\n ...BASE_PURE_LANGUAGE_COLOR_TOKENS,\n // NOTE: correct a problem with syntax highlighting of string in SQL\n { token: 'string.sql', foreground: 'ce9178' },\n { token: 'white.sql', foreground: 'd4d4d4' },\n { token: 'identifier.sql', foreground: 'd4d4d4' },\n { token: 'operator.sql', foreground: 'd4d4d4' },\n ],\n};\nexport const SOLARIZED_DARK_THEME = buildCodeEditorTheme(SOLARIZED_DARK_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const GITHUB_DARK_THEME = buildCodeEditorTheme(GITHUB_DARK_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const GITHUB_DARK_DIMMED_THEME = buildCodeEditorTheme(GITHUB_DARK_DIMMED_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const MATERIAL_DEFAULT_THEME = buildCodeEditorTheme(MATERIAL_DEFAULT_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const MATERIAL_DARKER_THEME = buildCodeEditorTheme(MATERIAL_DARKER_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const ONE_DARK_PRO_THEME = buildCodeEditorTheme(ONE_DARK_PRO_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\nexport const ONE_DARK_PRO_DARKER_THEME = buildCodeEditorTheme(ONE_DARK_PRO_DARKER_THEME_DATA, CODE_EDITOR_THEME.BUILT_IN__VSCODE_DARK, {}, []);\n//# sourceMappingURL=CodeEditorTheme.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { APPLICATION_EVENT, DEFAULT_MONOSPACED_FONT_FAMILY, } from '@finos/legend-application';\nimport { LogEvent } from '@finos/legend-shared';\nimport { editor as monacoEditorAPI, KeyCode, KeyMod, MarkerSeverity, } from 'monaco-editor';\nimport { CODE_EDITOR_THEME, DEFAULT_DARK_THEME, GITHUB_DARK_DIMMED_THEME, GITHUB_DARK_THEME, MATERIAL_DARKER_THEME, MATERIAL_DEFAULT_THEME, ONE_DARK_PRO_DARKER_THEME, ONE_DARK_PRO_THEME, SOLARIZED_DARK_THEME, } from './CodeEditorTheme.js';\n/**\n * Normally `monaco-editor` worker disposes after 5 minutes staying idle, but we fasten\n * this pace just in case the usage of the editor causes memory-leak somehow\n */\nexport const disposeCodeEditor = (editor) => {\n editor.dispose();\n // NOTE: just to be sure, we dispose the model after disposing the editor\n editor.getModel()?.dispose();\n};\nexport const disposeDiffCodeEditor = (editor) => {\n editor.dispose();\n editor.getOriginalEditor().getModel()?.dispose();\n editor.getModifiedEditor().getModel()?.dispose();\n};\n/**\n * Get the text value with LF line ending.\n * This is needed since if there are CR `\\r` characters in the text input\n * (e.g. users of Windows doing copy/paste)\n * the default mode of `monaco-editor` is `TextDefined` which means if the text\n * contains CR character(s), it will automatically be treated as CRLF. As such, we want\n * an utility method to extract the text value with line ending option LF\n * to force omission of CR characters\n * See https://github.com/finos/legend-studio/issues/608\n */\nexport const getCodeEditorValue = (editor) => editor.getModel()?.getValue(monacoEditorAPI.EndOfLinePreference.LF) ?? '';\nexport const getBaseCodeEditorOptions = () => ({\n contextmenu: false,\n copyWithSyntaxHighlighting: false,\n // NOTE: These following font options are needed (and CSS font-size option `.monaco-editor * { font-size: ... }` as well)\n // in order to make the editor appear properly on multiple platform, the ligatures option is needed for Mac to display properly\n // otherwise the cursor position relatively to text would be off\n // Another potential cause for this misaligment is that the fonts are being lazy-loaded and made available after `monaco-editor`\n // calculated the font-width, for this, we can use `remeasureFonts`, but our case here, `fontLigatures: true` seems\n // to do the trick\n // See https://github.com/microsoft/monaco-editor/issues/392\n fontSize: 14,\n // Enforce a fixed font-family to make cross platform display consistent (i.e. Mac defaults to use `Menlo` which is bigger than\n // `Consolas` on Windows, etc.)\n fontFamily: 'Roboto Mono',\n // Enable font ligature: glyphs which combine the shapes of certain sequences of characters into a new form that makes for\n // a more harmonious reading experience.\n fontLigatures: true,\n // Make sure hover or widget shown near boundary are not truncated by setting their position to `fixed`\n fixedOverflowWidgets: true,\n detectIndentation: false,\n tabSize: 2,\n // The typing is currently not correct for `bracketPairColorization`, until this is fixed, we will remove the cast\n // See https://github.com/microsoft/monaco-editor/issues/3013\n 'bracketPairColorization.enabled': false,\n automaticLayout: true,\n});\nexport const getBaseConsoleOptions = () => ({\n ...getBaseCodeEditorOptions(),\n fontSize: 12,\n extraEditorClassName: 'monaco-editor--small-font',\n readOnly: true,\n glyphMargin: false,\n folding: false,\n lineNumbers: 'off',\n lineDecorationsWidth: 10,\n lineNumbersMinChars: 0,\n minimap: {\n enabled: false,\n },\n guides: {\n bracketPairs: false,\n bracketPairsHorizontal: false,\n highlightActiveBracketPair: false,\n indentation: false,\n highlightActiveIndentation: false,\n },\n renderLineHighlight: 'none',\n});\nexport const moveCursorToPosition = (editor, position) => {\n if (!editor.hasTextFocus()) {\n editor.focus();\n } // focus the editor first so that it can shows the cursor\n editor.revealPositionInCenter(position, 0);\n editor.setPosition(position);\n};\nconst INTERNAL__DUMMY_PROBLEM_MARKER_OWNER = 'dummy_problem_marker_owner';\nexport const setErrorMarkers = (editorModel, errors, ownerId) => {\n monacoEditorAPI.setModelMarkers(editorModel, ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER, errors.map((error) => ({\n startLineNumber: error.startLineNumber,\n startColumn: error.startColumn,\n endLineNumber: error.endLineNumber,\n endColumn: error.endColumn + 1,\n // NOTE: when the message is empty, no error tooltip is shown, we want to avoid this\n message: error.message === '' ? '(no error message)' : error.message,\n severity: MarkerSeverity.Error,\n })));\n};\nexport const setWarningMarkers = (editorModel, warnings, ownerId) => {\n monacoEditorAPI.setModelMarkers(editorModel, ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER, warnings.map((warning) => ({\n startLineNumber: warning.startLineNumber,\n startColumn: warning.startColumn,\n endColumn: warning.endColumn,\n endLineNumber: warning.endLineNumber,\n message: warning.message === '' ? '(no warning message)' : warning.message,\n severity: MarkerSeverity.Warning,\n })));\n};\nexport const clearMarkers = (ownerId) => {\n monacoEditorAPI.removeAllMarkers(ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER);\n};\n/**\n * This method eliminates CR '\\r' character(s) in the provided text value.\n */\nexport const normalizeLineEnding = (val) => val.replace(/\\r/g, '');\n// We need to dynamically adjust the width of the line number gutter, otherwise as the document gets\n// larger, the left margin will start to shrink\n// See https://github.com/microsoft/monaco-editor/issues/2206\nexport const resetLineNumberGutterWidth = (editor) => {\n const currentValue = editor.getValue();\n editor.updateOptions({\n lineNumbersMinChars: Math.max(Math.floor(Math.log10(currentValue.split(/\\r\\n|\\r|\\n/g).length)) + 3, 5),\n });\n};\nexport const configureCodeEditorComponent = async (applicationStore) => {\n /**\n * Since we use a custom fonts for text-editor, we want to make sure the font is loaded before any text-editor is opened\n * this is to ensure\n */\n const fontLoadFailureErrorMessage = `Monospaced font '${DEFAULT_MONOSPACED_FONT_FAMILY}' has not been loaded properly, code editor might not display properly`;\n await Promise.all([400, 700].map((weight) => document.fonts.load(`${weight} 1em ${DEFAULT_MONOSPACED_FONT_FAMILY}`)))\n .then(() => {\n if (document.fonts.check(`1em ${DEFAULT_MONOSPACED_FONT_FAMILY}`)) {\n monacoEditorAPI.remeasureFonts();\n }\n else {\n applicationStore.logService.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_SETUP__FAILURE), fontLoadFailureErrorMessage);\n }\n })\n .catch(() => applicationStore.logService.error(LogEvent.create(APPLICATION_EVENT.APPLICATION_SETUP__FAILURE), fontLoadFailureErrorMessage));\n // override native hotkeys supported by monaco-editor\n // here we map these keys to a dummy command that would just dispatch the key combination\n // to the application keyboard shortcut service, effectively bypassing the command associated\n // with the native keybinding\n const OVERRIDE_DEFAULT_KEYBINDING_COMMAND = 'legend.code-editor.override-default-keybinding';\n monacoEditorAPI.registerCommand(OVERRIDE_DEFAULT_KEYBINDING_COMMAND, (accessor, ...args) => {\n applicationStore.keyboardShortcutsService.dispatch(args[0]);\n });\n const hotkeyMapping = [\n [KeyCode.F1, 'F1'],\n [KeyCode.F8, 'F8'],\n [KeyCode.F9, 'F9'],\n [KeyMod.WinCtrl | KeyCode.KeyG, 'Control+KeyG'],\n [KeyMod.WinCtrl | KeyCode.KeyB, 'Control+KeyB'],\n [KeyMod.WinCtrl | KeyCode.KeyO, 'Control+KeyO'],\n [KeyMod.WinCtrl | KeyCode.KeyD, 'Control+KeyD'],\n [KeyMod.WinCtrl | KeyCode.KeyP, 'Control+KeyP'],\n [KeyMod.Shift | KeyCode.F10, 'Shift+F10'],\n [KeyMod.WinCtrl | KeyCode.F2, 'Control+F2'],\n [KeyMod.WinCtrl | KeyCode.F12, 'Control+F12'], // go-to definition\n ];\n monacoEditorAPI.addKeybindingRules(hotkeyMapping.map(([nativeCodeEditorKeyBinding, keyCombination]) => ({\n keybinding: nativeCodeEditorKeyBinding,\n command: OVERRIDE_DEFAULT_KEYBINDING_COMMAND,\n commandArgs: keyCombination,\n })));\n // themes\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.DEFAULT_DARK, DEFAULT_DARK_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.SOLARIZED_DARK, SOLARIZED_DARK_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.GITHUB_DARK, GITHUB_DARK_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.GITHUB_DARK_DIMMED, GITHUB_DARK_DIMMED_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.MATERIAL_DEFAULT, MATERIAL_DEFAULT_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.MATERIAL_DARKER, MATERIAL_DARKER_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.ONE_DARK_PRO, ONE_DARK_PRO_THEME);\n monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.ONE_DARK_PRO_DARKER, ONE_DARK_PRO_DARKER_THEME);\n};\nexport var CODE_EDITOR_LANGUAGE;\n(function (CODE_EDITOR_LANGUAGE) {\n CODE_EDITOR_LANGUAGE[\"TEXT\"] = \"plaintext\";\n CODE_EDITOR_LANGUAGE[\"PURE\"] = \"pure\";\n CODE_EDITOR_LANGUAGE[\"JSON\"] = \"json\";\n CODE_EDITOR_LANGUAGE[\"JAVA\"] = \"java\";\n CODE_EDITOR_LANGUAGE[\"MARKDOWN\"] = \"markdown\";\n CODE_EDITOR_LANGUAGE[\"SQL\"] = \"sql\";\n CODE_EDITOR_LANGUAGE[\"XML\"] = \"xml\";\n CODE_EDITOR_LANGUAGE[\"YAML\"] = \"yaml\";\n CODE_EDITOR_LANGUAGE[\"GRAPHQL\"] = \"graphql\";\n})(CODE_EDITOR_LANGUAGE || (CODE_EDITOR_LANGUAGE = {}));\n//# sourceMappingURL=CodeEditorUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class SourceInformation {\n sourceId;\n startLine;\n startColumn;\n endLine;\n endColumn;\n constructor(sourceId, startLine, startColumn, endLine, endColumn) {\n this.sourceId = sourceId;\n this.startLine = startLine;\n this.startColumn = startColumn;\n this.endLine = endLine;\n this.endColumn = endColumn;\n }\n}\n//# sourceMappingURL=SourceInformation.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useRef, useEffect, useState, useMemo } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { clsx } from '@finos/legend-art';\nimport { getBaseCodeEditorOptions, getCodeEditorValue, normalizeLineEnding, clearMarkers, setErrorMarkers, CODE_EDITOR_LANGUAGE, CODE_EDITOR_THEME, disposeCodeEditor, } from '@finos/legend-lego/code-editor';\nimport { SourceInformation } from '@finos/legend-graph';\nimport { debounce, uuid } from '@finos/legend-shared';\nimport { action, flowResult, makeObservable, observable } from 'mobx';\nimport { DEFAULT_TAB_SIZE } from '@finos/legend-application';\nimport { useREPLGridClientStore } from './REPLGridClientStoreProvider.js';\nimport { editor as monacoEditorAPI, languages as monacoLanguagesAPI, } from 'monaco-editor';\nexport class QueryEditorState {\n uuid = uuid();\n query;\n parserError;\n constructor(query) {\n makeObservable(this, {\n query: observable,\n parserError: observable,\n setQuery: action,\n setParserError: action,\n });\n this.query = query;\n }\n setQuery(val) {\n this.query = val;\n }\n setParserError(parserError) {\n // account for the lambda prefix offset in source information\n if (parserError?.sourceInformation) {\n parserError.sourceInformation = this.processSourceInformation(parserError.sourceInformation);\n }\n this.parserError = parserError;\n }\n processSourceInformation(sourceInformation) {\n const { sourceId, startLine, startColumn, endLine, endColumn } = sourceInformation;\n const lineOffset = 0;\n const columnOffset = 0;\n return new SourceInformation(sourceId, startLine + lineOffset, startColumn - (startLine === 1 ? columnOffset : 0), endLine + lineOffset, endColumn - (endLine === 1 ? columnOffset : 0));\n }\n}\nexport const QueryEditor = observer(() => {\n const editorStore = useREPLGridClientStore();\n const applicationStore = editorStore.applicationStore;\n const queryEditorState = editorStore.replGridState.queryEditorState;\n const onDidChangeModelContentEventDisposer = useRef(undefined);\n const value = normalizeLineEnding(queryEditorState.query);\n const parserError = queryEditorState.parserError;\n const [editor, setEditor] = useState();\n const textInputRef = useRef(null);\n const autoCompleteSuggestionProviderDisposer = useRef(undefined);\n const debouncedParseQuery = useMemo(() => debounce(() => {\n flowResult(editorStore.parseQuery()).catch(editorStore.applicationStore.alertUnhandledError);\n }, 1000), [editorStore]);\n if (editor) {\n onDidChangeModelContentEventDisposer.current?.dispose();\n onDidChangeModelContentEventDisposer.current =\n editor.onDidChangeModelContent(() => {\n const currentVal = getCodeEditorValue(editor);\n if (currentVal !== value) {\n queryEditorState.setQuery(currentVal);\n debouncedParseQuery.cancel();\n debouncedParseQuery();\n }\n });\n // Set the text value\n const currentValue = getCodeEditorValue(editor);\n const editorModel = editor.getModel();\n if (currentValue !== value) {\n editor.setValue(value);\n }\n // auto complete suggestions\n autoCompleteSuggestionProviderDisposer.current?.dispose();\n autoCompleteSuggestionProviderDisposer.current =\n monacoLanguagesAPI.registerCompletionItemProvider(CODE_EDITOR_LANGUAGE.PURE, {\n triggerCharacters: ['>', '.', '$', '~'],\n provideCompletionItems: async (model, position, context) => {\n const suggestions = await editorStore.getTypeaheadResults(position, model);\n return { suggestions };\n },\n });\n // Set the errors\n if (editorModel) {\n editorModel.updateOptions({ tabSize: DEFAULT_TAB_SIZE });\n const error = parserError;\n if (error?.sourceInformation) {\n setErrorMarkers(editorModel, [\n {\n message: error.message,\n startLineNumber: error.sourceInformation.startLine,\n startColumn: error.sourceInformation.startColumn,\n endLineNumber: error.sourceInformation.endLine,\n endColumn: error.sourceInformation.endColumn,\n },\n ]);\n }\n else {\n clearMarkers();\n }\n }\n }\n useEffect(() => {\n if (!editor && textInputRef.current) {\n const element = textInputRef.current;\n const _editor = monacoEditorAPI.create(element, {\n ...getBaseCodeEditorOptions(),\n language: CODE_EDITOR_LANGUAGE.PURE,\n theme: applicationStore.layoutService\n .TEMPORARY__isLightColorThemeEnabled\n ? CODE_EDITOR_THEME.BUILT_IN__VSCODE_LIGHT\n : CODE_EDITOR_THEME.DEFAULT_DARK,\n });\n setEditor(_editor);\n }\n }, [\n applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled,\n editor,\n ]);\n // dispose editor\n useEffect(() => () => {\n if (editor) {\n disposeCodeEditor(editor);\n onDidChangeModelContentEventDisposer.current?.dispose();\n }\n }, [editor]);\n return (_jsx(\"div\", { className: clsx('repl__query__content__editor__content'), children: _jsx(\"div\", { className: \"code-editor__body\", ref: textInputRef }) }));\n});\n//# sourceMappingURL=REPLQueryEditor.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable } from '@finos/legend-shared';\nimport { getAggregationTDSColumnCustomizations, getTDSRowData, } from '../components/grid/GridUtils.js';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { QueryEditorState } from '../components/REPLQueryEditor.js';\nexport class REPLGridState {\n initialResult;\n currentResult;\n columns;\n queryEditorState;\n currentSubQuery;\n licenseKey;\n initialQueryLambda;\n isPaginationEnabled;\n constructor(isPaginationEnabled) {\n makeObservable(this, {\n initialResult: observable,\n initialQueryLambda: observable,\n currentResult: observable,\n currentSubQuery: observable,\n licenseKey: observable,\n columns: observable,\n isPaginationEnabled: observable,\n queryEditorState: observable,\n setInitialResult: action,\n setCurrentSubQuery: action,\n setColumns: action,\n setInitialQueryLambda: action,\n setCurrentResult: action,\n setLicenseKey: action,\n setIsPaginationEnabled: action,\n rowData: computed,\n columnDefs: computed,\n });\n this.queryEditorState = new QueryEditorState('');\n this.isPaginationEnabled = isPaginationEnabled;\n }\n setInitialQueryLambda(val) {\n this.initialQueryLambda = val;\n }\n setCurrentSubQuery(val) {\n this.currentSubQuery = val;\n }\n setInitialResult(val) {\n this.initialResult = val;\n }\n setCurrentResult(val) {\n this.currentResult = val;\n }\n setColumns(val) {\n this.columns = val;\n }\n setLicenseKey(val) {\n this.licenseKey = val;\n }\n setIsPaginationEnabled(val) {\n this.isPaginationEnabled = val;\n }\n get rowData() {\n return this.initialResult ? getTDSRowData(this.initialResult.result) : [];\n }\n get columnDefs() {\n return this.columns\n ? this.columns.map((c) => ({\n field: c,\n headerName: c,\n ...getAggregationTDSColumnCustomizations(this.licenseKey ? true : false, guaranteeNonNullable(this.initialResult), c),\n }))\n : [];\n }\n}\n//# sourceMappingURL=REPLGridState.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { hashArray, hashObject, hashValue } from '@finos/legend-shared';\nimport { SOURCE_INFORMATION_PROPERTY_KEY_SUFFIX } from './MetaModelConst.js';\n/**\n * The main point of maintaining this enum is to keep lessen magic string in hash computation\n * so that we are less error-prone in the process of defining hash.\n *\n * These tokens will be used in the definition of the hash as marker for the type of the strucure\n * arguably some of these can be redundant since this information is encoded in the resulting hash\n * code anyway, but sometimes when polymorphism manifests, such as when we have an array of structure\n * which are subclasses of an abstract stucture, hashing the marker is sometimes the only way to\n * discern between instances of different sub-structures\n *\n * TODO: when we refactor hashing, we could potentially move this to graphManager/changeDetection/\n */\nexport var CORE_HASH_STRUCTURE;\n(function (CORE_HASH_STRUCTURE) {\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_PACKAGEABLE_ELEMENT\"] = \"INTERNAL__UNKNOWN_PACKAGEABLE_ELEMENT\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_FUNCTION_ACTIVATOR\"] = \"INTERNAL__UNKNOWN_FUNCTION_ACTIVATOR\";\n CORE_HASH_STRUCTURE[\"PACKAGE\"] = \"PACKAGE\";\n CORE_HASH_STRUCTURE[\"PACKAGEABLE_ELEMENT\"] = \"PACKAGEABLE_ELEMENT\";\n CORE_HASH_STRUCTURE[\"PACKAGEABLE_ELEMENT_POINTER\"] = \"PACKAGEABLE_ELEMENT_POINTER\";\n // domain\n CORE_HASH_STRUCTURE[\"PROFILE\"] = \"PROFILE\";\n CORE_HASH_STRUCTURE[\"TAG_POINTER\"] = \"TAG_POINTER\";\n CORE_HASH_STRUCTURE[\"STEREOTYPE_POINTER\"] = \"STEREOTYPE_POINTER\";\n CORE_HASH_STRUCTURE[\"TAGGED_VALUE\"] = \"TAGGED_VALUE\";\n CORE_HASH_STRUCTURE[\"ENUMERATION\"] = \"ENUMERATION\";\n CORE_HASH_STRUCTURE[\"ENUM_VALUE\"] = \"ENUM_VALUE\";\n CORE_HASH_STRUCTURE[\"CLASS\"] = \"CLASS\";\n CORE_HASH_STRUCTURE[\"PROPERTY\"] = \"PROPERTY\";\n CORE_HASH_STRUCTURE[\"PROPERTY_DEFAULT_VALUE\"] = \"PROPERTY_DEFAULT_VALUE\";\n CORE_HASH_STRUCTURE[\"PROPERTY_POINTER\"] = \"PROPERTY_POINTER\";\n CORE_HASH_STRUCTURE[\"MULTIPLICITY\"] = \"MULTIPLICITY\";\n CORE_HASH_STRUCTURE[\"CONSTRAINT\"] = \"CONSTRAINT\";\n CORE_HASH_STRUCTURE[\"DERIVED_PROPERTY\"] = \"DERIVED_PROPERTY\";\n CORE_HASH_STRUCTURE[\"ASSOCIATION\"] = \"ASSOCIATION\";\n CORE_HASH_STRUCTURE[\"FUNCTION\"] = \"FUNCTION\";\n CORE_HASH_STRUCTURE[\"MEASURE\"] = \"MEASURE\";\n CORE_HASH_STRUCTURE[\"UNIT\"] = \"UNIT\";\n // function test\n CORE_HASH_STRUCTURE[\"FUNCTION_TEST_SUITE\"] = \"FUNCTION_TEST_SUITE\";\n CORE_HASH_STRUCTURE[\"FUNCTION_TEST\"] = \"FUNCTION_TEST\";\n CORE_HASH_STRUCTURE[\"FUNCTION_STORE_TEST_DATA\"] = \"FUNCTION_STORE_TEST_DATA\";\n CORE_HASH_STRUCTURE[\"FUNCTION_PARAMETER_VALUE\"] = \"FUNCTION_PARAMETER_VALUE\";\n // testable\n CORE_HASH_STRUCTURE[\"ASSERT_FAIL\"] = \"ASSERT_FAIL\";\n CORE_HASH_STRUCTURE[\"ASSERT_PASS\"] = \"ASSERT_PASS\";\n CORE_HASH_STRUCTURE[\"EQUAL_TO_JSON_ASSERT_FAIL\"] = \"EQUAL_TO_JSON_ASSERT_FAIL\";\n CORE_HASH_STRUCTURE[\"EQUAL_TO\"] = \"EQUAL_TO\";\n CORE_HASH_STRUCTURE[\"EQUAL_TO_JSON\"] = \"EQUAL_TO_JSON\";\n CORE_HASH_STRUCTURE[\"EQUAL_TO_TDS\"] = \"EQUAL_TO_TDS\";\n // section index\n CORE_HASH_STRUCTURE[\"SECTION_INDEX\"] = \"SECTION_INDEX\";\n CORE_HASH_STRUCTURE[\"SECTION\"] = \"SECTION\";\n CORE_HASH_STRUCTURE[\"IMPORT_AWARE_CODE_SECTION\"] = \"IMPORT_AWARE_CODE_SECTION\";\n CORE_HASH_STRUCTURE[\"DEFAULT_CODE_SECTION\"] = \"DEFAULT_CODE_SECTION\";\n // raw value specification\n CORE_HASH_STRUCTURE[\"RAW_LAMBDA\"] = \"RAW_LAMBDA\";\n CORE_HASH_STRUCTURE[\"RAW_VARIABLE\"] = \"RAW_VARIABLE\";\n CORE_HASH_STRUCTURE[\"RAW_INSTANCE_VALUE\"] = \"RAW_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"BINDING_TRANSFORMER\"] = \"BINDING_TRANSFORMER\";\n // value specification\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_VALUE_SPECIFICATION\"] = \"INTERNAL__UNKNOWN_VALUE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"INTERNAL__PROPAGATED_VALUE\"] = \"INTERNAL__PROPAGATED_VALUE\";\n CORE_HASH_STRUCTURE[\"VARIABLE_EXPRESSION\"] = \"VARIABLE_EXPRESSION\";\n CORE_HASH_STRUCTURE[\"EXPRESSION\"] = \"EXPRESSION\";\n CORE_HASH_STRUCTURE[\"FUNCTION_EXPRESSION\"] = \"FUNCTION_EXPRESSION\";\n CORE_HASH_STRUCTURE[\"SIMPLE_FUNCTION_EXPRESSION\"] = \"SIMPLE_FUNCTION_EXPRESSION\";\n CORE_HASH_STRUCTURE[\"ABSTRACT_PROPERTY_EXPRESSION\"] = \"ABSTRACT_PROPERTY_EXPRESSION\";\n CORE_HASH_STRUCTURE[\"INSTANCE_VALUE\"] = \"INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"PRIMITIVE_INSTANCE_VALUE\"] = \"PRIMITIVE_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"ENUM_INSTANCE_VALUE\"] = \"ENUM_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"KEY_EXPRESSION_INSTANCE_VALUE\"] = \"KEY_EXPRESSION_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"KEY_EXPRESSION_VALUE\"] = \"KEY_EXPRESSION_VALUE\";\n CORE_HASH_STRUCTURE[\"RUNTIME_INSTANCE_VALUE\"] = \"RUNTIME_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"PAIR_INSTANCE_VALUE\"] = \"PAIR_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"MAPPING_INSTANCE_VALUE\"] = \"MAPPING_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"PURE_LIST_INSTANCE_VALUE\"] = \"PURE_LIST_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"COLLECTION_INSTANCE_VALUE\"] = \"COLLECTION_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"LAMBDA_FUNCTION_INSTANCE_VALUE\"] = \"LAMBDA_FUNCTION_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"FUNCTION_TYPE\"] = \"FUNCTION_TYPE\";\n CORE_HASH_STRUCTURE[\"LAMBDA_FUNCTION\"] = \"LAMBDA_FUNCTION\";\n CORE_HASH_STRUCTURE[\"ALLOY_SERIALIZATION_CONFIG_INSTANCE_VALUE\"] = \"ALLOY_SERIALIZATION_CONFIG_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"ALLOY_SERIALIZATION_CONFIG\"] = \"ALLOY_SERIALIZATION_CONFIG\";\n CORE_HASH_STRUCTURE[\"ROOT_GRAPH_FETCH_TREE\"] = \"ROOT_GRAPH_FETCH_TREE\";\n CORE_HASH_STRUCTURE[\"PROPERTY_GRAPH_FETCH_TREE\"] = \"PROPERTY_GRAPH_FETCH_TREE\";\n CORE_HASH_STRUCTURE[\"SUBTYPE_GRAPH_FETCH_TREE\"] = \"SUBTYPE_GRAPH_FETCH_TREE\";\n CORE_HASH_STRUCTURE[\"SUBTYPE_GRAPH_FETCH_TREE_INSTANCE_VALUE\"] = \"SUBTYPE_GRAPH_FETCH_TREE_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"PROPERTY_GRAPH_FETCH_TREE_INSTANCE_VALUE\"] = \"PROEPRTY_GRAPH_FETCH_TREE_INSTANCE_VALUE\";\n CORE_HASH_STRUCTURE[\"ROOT_GRAPH_FETCH_TREE_INSTANCE_VALUE\"] = \"ROOT_GRAPH_FETCH_TREE_INSTANCE_VALUE\";\n // ---------------------------------- DSL Mapping --------------------------------------\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_STORE\"] = \"INTERNAL__UNKNOWN_STORE\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_CONNECTION\"] = \"INTERNAL__UNKNOWN_CONNECTION\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_PROPERTY_MAPPING\"] = \"INTERNAL__UNKNOWN_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_CLASS_MAPPING\"] = \"INTERNAL__UNKNOWN_CLASS_MAPPING\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_MAPPING_INCLUDE\"] = \"INTERNAL__UNKNOWN_MAPPING_INCLUDE\";\n CORE_HASH_STRUCTURE[\"MAPPING\"] = \"MAPPING\";\n CORE_HASH_STRUCTURE[\"MAPPING_INCLUDE_MAPPING\"] = \"MAPPING_INCLUDE_MAPPING\";\n CORE_HASH_STRUCTURE[\"ASSOCIATION_IMPLEMENTATION\"] = \"ASSOCIATION_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_ASSOCIATION_IMPLEMENTATION\"] = \"RELATIONAL_ASSOCIATION_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"XSTORE_ASSOCIATION_IMPLEMENTATION\"] = \"XSTORE_ASSOCIATION_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"ENUMERATION_MAPPING\"] = \"ENUMERATION_MAPPING\";\n CORE_HASH_STRUCTURE[\"ENUM_VALUE_MAPPING\"] = \"ENUM_VALUE_MAPPING\";\n CORE_HASH_STRUCTURE[\"SET_IMPLEMENTATION\"] = \"SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"OPERATION_SET_IMPLEMENTATION\"] = \"OPERATION_SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"PURE_INSTANCE_SET_IMPLEMENTATION\"] = \"PURE_INSTANCE_SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"PROPERTY_MAPPING\"] = \"PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"LOCAL_MAPPING_PROPERTY\"] = \"LOCAL_MAPPING_PROPERTY\";\n CORE_HASH_STRUCTURE[\"PURE_PROPERTY_MAPPING\"] = \"PURE_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"XSTORE_PROPERTY_MAPPING\"] = \"XSTORE_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"MAPPING_TEST_LEGACY\"] = \"MAPPING_TEST_LEGACY\";\n CORE_HASH_STRUCTURE[\"MAPPING_TEST_SUITE\"] = \"MAPPING_TEST_SUITE\";\n CORE_HASH_STRUCTURE[\"MAPPING_TEST\"] = \"MAPPING_TEST\";\n CORE_HASH_STRUCTURE[\"STORE_TEST_DATA\"] = \"STORE_TEST_DATA\";\n CORE_HASH_STRUCTURE[\"INPUT_DATA\"] = \"INPUT_DATA\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_INPUT_DATA\"] = \"FLAT_DATA_INPUT_DATA\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_INPUT_DATA\"] = \"RELATIONAL_INPUT_DATA\";\n CORE_HASH_STRUCTURE[\"OBJECT_INPUT_DATA\"] = \"OBJECT_INPUT_DATA\";\n CORE_HASH_STRUCTURE[\"MAPPING_TEST_ASSERT\"] = \"MAPPING_TEST_ASSERT\";\n CORE_HASH_STRUCTURE[\"EXPECTED_OUTPUT_MAPPING_TEST_ASSERT\"] = \"EXPECTED_OUTPUT_MAPPING_TEST_ASSERT\";\n CORE_HASH_STRUCTURE[\"FILTER_MAPPING\"] = \"FILTER_MAPPING\";\n CORE_HASH_STRUCTURE[\"COLUMN_MAPPING\"] = \"COLUMN_MAPPING\";\n CORE_HASH_STRUCTURE[\"GROUP_BY_MAPPING\"] = \"GROUP_BY_MAPPING\";\n // runtime\n CORE_HASH_STRUCTURE[\"RUNTIME\"] = \"RUNTIME\";\n CORE_HASH_STRUCTURE[\"PACKAGEABLE_RUNTIME\"] = \"PACKAGEABLE_RUNTIME\";\n CORE_HASH_STRUCTURE[\"ENGINE_RUNTIME\"] = \"ENGINE_RUNTIME\";\n CORE_HASH_STRUCTURE[\"SINGLE_ENGINE_RUNTIME\"] = \"SINGLE_ENGINE_RUNTIME\";\n CORE_HASH_STRUCTURE[\"LEGACY_RUNTIME\"] = \"LEGACY_RUNTIME\";\n CORE_HASH_STRUCTURE[\"RUNTIME_POINTER\"] = \"RUNTIME_POINTER\";\n CORE_HASH_STRUCTURE[\"STORE_CONNECTIONS\"] = \"STORE_CONNECTIONS\";\n CORE_HASH_STRUCTURE[\"IDENTIFIED_CONNECTION\"] = \"IDENTIFIED_CONNECTION\";\n // connection\n CORE_HASH_STRUCTURE[\"PACKAGEABLE_CONNECTION\"] = \"PACKAGEABLE_CONNECTION\";\n CORE_HASH_STRUCTURE[\"CONNECTION_POINTER\"] = \"CONNECTION_POINTER\";\n CORE_HASH_STRUCTURE[\"XML_MODEL_CONNECTION\"] = \"XML_MODEL_CONNECTION\";\n CORE_HASH_STRUCTURE[\"JSON_MODEL_CONNECTION\"] = \"JSON_MODEL_CONNECTION\";\n CORE_HASH_STRUCTURE[\"MODEL_CHAIN_CONNECTION\"] = \"MODEL_CHAIN_CONNECTION\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_CONNECTION\"] = \"FLAT_DATA_CONNECTION\";\n // aggregation aware mapping\n CORE_HASH_STRUCTURE[\"AGGREGATION_AWARE_MAPPING\"] = \"AGGREGATION_AWARE_MAPPING\";\n CORE_HASH_STRUCTURE[\"AGGREGATION_AWARE_SPECIFICATION\"] = \"AGGREGATION_AWARE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"AGGREGATION_AWARE_SET_IMPLEMENTATION_CONTAINER\"] = \"AGGREGATION_AWARE_SET_IMPLEMENTATION_CONTAINER\";\n CORE_HASH_STRUCTURE[\"AGGREGATE_FUNCTION\"] = \"AGGREGATE_FUNCTION\";\n CORE_HASH_STRUCTURE[\"GROUP_BY_FUNCTION\"] = \"GROUP_BY_FUNCTION\";\n // ---------------------------------- DSL Generation --------------------------------------\n CORE_HASH_STRUCTURE[\"GENERATION_TREE\"] = \"GENERATION_TREE\";\n CORE_HASH_STRUCTURE[\"GENERATION_TREE_NODE\"] = \"GENERATION_TREE_NODE\";\n CORE_HASH_STRUCTURE[\"FILE_GENERATION\"] = \"FILE_GENERATION\";\n CORE_HASH_STRUCTURE[\"CONFIGURATION_PROPERTY\"] = \"CONFIGURATION_PROPERTY\";\n // ---------------------------------- DSL Data --------------------------------------\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_EMBEDDED_DATA\"] = \"INTERNAL__UNKNOWN_EMBEDDED_DATA\";\n CORE_HASH_STRUCTURE[\"EXTERNAL_FORMAT_DATA\"] = \"EXTERNAL_FORMAT_DATA\";\n CORE_HASH_STRUCTURE[\"MODEL_STORE_DATA\"] = \"MODEL_STORE_DATA\";\n CORE_HASH_STRUCTURE[\"MODEL_DATA\"] = \"MODEL_DATA\";\n CORE_HASH_STRUCTURE[\"MODEL_EMBEDDED_DATA\"] = \"MODEL_EMBEDDED_DATA\";\n CORE_HASH_STRUCTURE[\"MODEL_INSTANCE_DATA\"] = \"MODEL_INSTANCE_DATA\";\n CORE_HASH_STRUCTURE[\"DATA_ELEMENT_REFERENCE\"] = \"DATA_ELEMENT_REFERENCE\";\n CORE_HASH_STRUCTURE[\"DATA_ELEMENT\"] = \"DATA_ELEMENT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_CSV_DATA\"] = \"RELATIONAL_CSV_DATA\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_TDS\"] = \"RELATIONAL_TDS\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_CSV_DATA_TABLE\"] = \"RELATIONAL_CSV_DATA_TABLE\";\n // ---------------------------------- DSL External Format --------------------------------------\n CORE_HASH_STRUCTURE[\"BINDING\"] = \"BINDING\";\n CORE_HASH_STRUCTURE[\"SCHEMA_SET\"] = \"SCHEMA_SET\";\n CORE_HASH_STRUCTURE[\"SCHEMA\"] = \"SCHEMA\";\n CORE_HASH_STRUCTURE[\"MODEL_UNIT\"] = \"MODEL_UNIT\";\n CORE_HASH_STRUCTURE[\"URL_STREAM\"] = \"URL_STREAM\";\n CORE_HASH_STRUCTURE[\"EXTERNAL_FORMAT_CONNECTION\"] = \"EXTERNAL_FORMAT_CONNECTION\";\n // ---------------------------------- DSL Service --------------------------------------\n CORE_HASH_STRUCTURE[\"SERVICE\"] = \"SERVICE\";\n CORE_HASH_STRUCTURE[\"SERVICE_OWNER\"] = \"SERVICE_OWNER\";\n CORE_HASH_STRUCTURE[\"SERVICE_PURE_EXECUTION\"] = \"SERVICE_PURE_EXECUTION\";\n CORE_HASH_STRUCTURE[\"SERVICE_PURE_SINGLE_EXECUTION\"] = \"SERVICE_PURE_SINGLE_EXECUTION\";\n CORE_HASH_STRUCTURE[\"SERVICE_KEYED_EXECUTION_PARAMETER\"] = \"SERVICE_KEYED_EXECUTION_PARAMETER\";\n CORE_HASH_STRUCTURE[\"SERVICE_PURE_MULTI_EXECUTION\"] = \"SERVICE_PURE_MULTI_EXECUTION\";\n CORE_HASH_STRUCTURE[\"SERVICE_TEST_CONTAINER\"] = \"SERVICE_TEST_CONTAINER\";\n CORE_HASH_STRUCTURE[\"SERVICE_LEGACY_SINGLE_EXECUTION_TEST\"] = \"SERVICE_LEGACY_SINGLE_EXECUTION_TEST\";\n CORE_HASH_STRUCTURE[\"SERVICE_LEGACY_KEYED_SINGLE_EXECUTION_TEST\"] = \"SERVICE_LEGACY_KEYED_SINGLE_EXECUTION_TEST\";\n CORE_HASH_STRUCTURE[\"SERVICE_LEGACY_MULTI_EXECUTION_TEST\"] = \"SERVICE_LEGACY_MULTI_EXECUTION_TEST\";\n CORE_HASH_STRUCTURE[\"SERVICE_CONNECTION_TEST_DATA\"] = \"SERVICE_CONNECTION_TEST_DATA\";\n CORE_HASH_STRUCTURE[\"SERVICE_TEST_DATA\"] = \"SERVICE_TEST_DATA\";\n CORE_HASH_STRUCTURE[\"SERVICE_TEST_SUITE\"] = \"SERVICE_TEST_SUITE\";\n CORE_HASH_STRUCTURE[\"SERVICE_TEST\"] = \"SERVICE_TEST\";\n CORE_HASH_STRUCTURE[\"SERVICE_PARAMETER_VALUE\"] = \"SERVICE_PARAMETER_VALUE\";\n CORE_HASH_STRUCTURE[\"SERVICE_POST_VALIDATION\"] = \"SERVICE_POST_VALIDATION\";\n CORE_HASH_STRUCTURE[\"SERVICE_POST_VALIDATION_ASSERTION\"] = \"SERVICE_POST_VALIDATION_ASSERTION\";\n // execution environment instance\n CORE_HASH_STRUCTURE[\"EXECUTION_ENVIRONMENT_INSTANCE\"] = \"EXECUTION_ENVIRONMENT_INSTANCE\";\n CORE_HASH_STRUCTURE[\"SINGLE_EXECUTION_PARAMETER\"] = \"SINGLE_EXECUTION_PARAMETER\";\n CORE_HASH_STRUCTURE[\"MULTI_EXECUTION_PARAMETER\"] = \"MULTI_EXECUTION_PARAMETER\";\n // ---------------------------------- STO Relational --------------------------------------\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_DATASOURCE_SPECIFICATION\"] = \"INTERNAL__UNKNOWN_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_AUTHENTICATION_STRATEGY\"] = \"INTERNAL__UNKNOWN_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"INTERNAL__UNKNOWN_POST_PROCESSOR\"] = \"INTERNAL__UNKNOWN_POST_PROCESSOR\";\n // database\n CORE_HASH_STRUCTURE[\"DATABASE\"] = \"DATABASE\";\n CORE_HASH_STRUCTURE[\"DATABASE_SCHEMA\"] = \"DATABASE_SCHEMA\";\n CORE_HASH_STRUCTURE[\"DATABASE_JOIN\"] = \"DATABASE_JOIN\";\n CORE_HASH_STRUCTURE[\"DATABASE_FILTER\"] = \"DATABASE_FILTER\";\n CORE_HASH_STRUCTURE[\"DATBASE_VIEW\"] = \"DATBASE_VIEW\";\n CORE_HASH_STRUCTURE[\"DATABASE_SCHEMA_TABLE\"] = \"DATABASE_SCHEMA_TABLE\";\n CORE_HASH_STRUCTURE[\"DATABASE_TABLE_COLUMN\"] = \"DATABASE_TABLE_COLUMN\";\n // relational operation element\n CORE_HASH_STRUCTURE[\"RELATIONAL\"] = \"RELATIONAL\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_DYNA_FUNC\"] = \"RELATIONAL_OPERATION_DYNA_FUNC\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_ELEMENTS_WITH_JOINS\"] = \"RELATIONAL_OPERATION_ELEMENTS_WITH_JOINS\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_LITERAL\"] = \"RELATIONAL_OPERATION_LITERAL\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_LITERAL_LIST\"] = \"RELATIONAL_OPERATION_LITERAL_LIST\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_TABLE_ALIAS_COLUMN\"] = \"RELATIONAL_OPERATION_TABLE_ALIAS_COLUMN\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_TABLE_POINTER\"] = \"RELATIONAL_OPERATION_TABLE_POINTER\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_OPERATION_JOIN_POINTER\"] = \"RELATIONAL_OPERATION_JOIN_POINTER\";\n // relational data type\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_VARCHAR\"] = \"RELATIONAL_DATATYPE_VARCHAR\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_CHAR\"] = \"RELATIONAL_DATATYPE_CHAR\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_VARBINARY\"] = \"RELATIONAL_DATATYPE_VARBINARY\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_BINARY\"] = \"RELATIONAL_DATATYPE_BINARY\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_BIT\"] = \"RELATIONAL_DATATYPE_BIT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_INTEGER\"] = \"RELATIONAL_DATATYPE_INTEGER\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_BIGINT\"] = \"RELATIONAL_DATATYPE_BIGINT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_SMALLINT\"] = \"RELATIONAL_DATATYPE_SMALLINT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_TINYINT\"] = \"RELATIONAL_DATATYPE_TINYINT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_NUMERIC\"] = \"RELATIONAL_DATATYPE_NUMERIC\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_DECIMAL\"] = \"RELATIONAL_DATATYPE_DECIMAL\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_DOUBLE\"] = \"RELATIONAL_DATATYPE_DOUBLE\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_FLOAT\"] = \"RELATIONAL_DATATYPE_FLOAT\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_REAL\"] = \"RELATIONAL_DATATYPE_REAL\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_DATE\"] = \"RELATIONAL_DATATYPE_DATE\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_TIMESTAMP\"] = \"RELATIONAL_DATATYPE_TIMESTAMP\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_OTHER\"] = \"RELATIONAL_DATATYPE_OTHER\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_SEMISTRUCTURED\"] = \"RELATIONAL_DATATYPE_SEMISTRUCTURED\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATATYPE_JSON\"] = \"RELATIONAL_DATATYPE_JSON\";\n // relational mapping\n CORE_HASH_STRUCTURE[\"ROOT_RELATIONAL_INSTANCE_SET_IMPLEMENTATION\"] = \"ROOT_RELATIONAL_INSTANCE_SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"RELATIONAL_INSTANCE_SET_IMPLEMENTATION\"] = \"RELATIONAL_INSTANCE_SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"REALTIONAL_PROPERTY_MAPPING\"] = \"REALTIONAL_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"EMBEDDED_REALTIONAL_PROPERTY_MAPPING\"] = \"EMBEDDED_REALTIONAL_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"INLINE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING\"] = \"INLINE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"OTHERWISE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING\"] = \"OTHERWISE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING\";\n // milestoning\n CORE_HASH_STRUCTURE[\"BUSINESS_MILESTONING\"] = \"BUSINESS_MILESTONING\";\n CORE_HASH_STRUCTURE[\"BUSINESS_SNAPSHOT_MILESTONING\"] = \"BUSINESS_SNAPSHOT_MILESTONING\";\n CORE_HASH_STRUCTURE[\"PROCESSING_MILESTONING\"] = \"PROCESSING_MILESTONING\";\n // relational database connection\n CORE_HASH_STRUCTURE[\"RELATIONAL_DATABASE_CONNECTION\"] = \"RELATIONAL_DATABASE_CONNECTION\";\n // relational database connection datasource specification\n CORE_HASH_STRUCTURE[\"STATIC_DATASOURCE_SPECIFICATION\"] = \"STATIC_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"LOCAL_H2_DATASOURCE_SPECIFICATION\"] = \"LOCAL_H2_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"EMBEDDED_H2_DATASOURCE_SPECIFICATION\"] = \"EMBEDDED_H2_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"SNOWFLAKE_DATASOURCE_SPECIFICATION\"] = \"SNOWFLAKE_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"REDSHIFT_DATASOURCE_SPECIFICATION\"] = \"REDSHIFT_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"BIGQUERY_DATASOURCE_SPECIFICATION\"] = \"BIGQUERY_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"DATABRICKS_DATASOURCE_SPECIFICATION\"] = \"DATABRICKS_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"SPANNER_DATASOURCE_SPECIFICATION\"] = \"SPANNER_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"TRINO_DATASOURCE_SPECIFICATION\"] = \"TRINO_DATASOURCE_SPECIFICATION\";\n CORE_HASH_STRUCTURE[\"TRINO_SSL_SPECIFICATION\"] = \"TRINO_SSL_SPECIFICATION\";\n // relational database connection authentication strategy\n CORE_HASH_STRUCTURE[\"DELEGRATED_KEREBEROS_AUTHENTICATION_STRATEGY\"] = \"DELEGRATED_KEREBEROS_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"DEFAULT_H2_AUTHENTICATION_STRATEGY\"] = \"DEFAULT_H2_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"SNOWFLAKE_PUBLIC_AUTHENTICATION_STRATEGY\"] = \"SNOWFLAKE_PUBLIC_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"API_TOKEN_AUTHENTICATION_STRATEGY\"] = \"API_TOKEN_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"GCP_APPLICATION_DEFAULT_CREDENTIALS_AUTHENTICATION_STRATEGY\"] = \"GCP_APPLICATION_DEFAULT_CREDENTIALS_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"USERNAME_PASSWORD_AUTHENTICATION_STRATEGY\"] = \"USERNAME_PASSWORD_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"OAUTH_AUTHENTICATION_STRATEGY\"] = \"OAUTH_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"GCP_WORKLOAD_IDENTITY_FEDERATION_AUTHENTICATION_STRATEGY\"] = \"GCP_WORKLOAD_IDENTITY_FEDERATION_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"MIDDLE_TIER_USERNAME_PASSWORD_AUTHENTICATION_STRATEGY\"] = \"MIDDLE_TIER_USERNAME_PASSWORD_AUTHENTICATION_STRATEGY\";\n CORE_HASH_STRUCTURE[\"TRINO_DELEGATED_KERBEROS_AUTHENTICATION_STRATEGY\"] = \"TRINO_KEREBEROS_AUTHENTICATION_STRATEGY\";\n // relational database connection post-processors\n CORE_HASH_STRUCTURE[\"MAPPER_POST_PROCESSOR\"] = \"MAPPER_POST_PROCESSOR\";\n CORE_HASH_STRUCTURE[\"SCHEMA_MAPPER\"] = \"SCHEMA_MAPPER\";\n CORE_HASH_STRUCTURE[\"TABLE_MAPPER\"] = \"TABLE_MAPPER\";\n // ---------------------------------- STO Flat-Data --------------------------------------\n CORE_HASH_STRUCTURE[\"FLAT_DATA\"] = \"FLAT_DATA\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_SECTION\"] = \"FLAT_DATA_SECTION\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_PROPERTY\"] = \"FLAT_DATA_PROPERTY\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_ROOT_RECORD_TYPE\"] = \"FLAT_DATA_ROOT_RECORD_TYPE\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_RECORD_TYPE\"] = \"FLAT_DATA_RECORD_TYPE\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_RECORD_FIELD\"] = \"FLAT_DATA_RECORD_FIELD\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_STRING\"] = \"FLAT_DATA_STRING\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_BOOLEAN\"] = \"FLAT_DATA_BOOLEAN\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_NUMBER\"] = \"FLAT_DATA_NUMBER\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_INTEGER\"] = \"FLAT_DATA_INTEGER\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_FLOAT\"] = \"FLAT_DATA_FLOAT\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_DECIMAL\"] = \"FLAT_DATA_DECIMAL\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_DATE\"] = \"FLAT_DATA_DATE\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_DATE_TIME\"] = \"FLAT_DATA_DATE_TIME\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_STRICT_DATE\"] = \"FLAT_DATA_STRICT_DATE\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_INSTANCE_SET_IMPLEMENTATION\"] = \"FLAT_DATA_INSTANCE_SET_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_PROPERTY_MAPPING\"] = \"FLAT_DATA_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_ASSOCIATION_IMPLEMENTATION\"] = \"FLAT_DATA_ASSOCIATION_IMPLEMENTATION\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_ASSOCIATION_PROPERTY_MAPPING\"] = \"FLAT_DATA_ASSOCIATION_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"EMBEDDED_FLAT_DATA_PROPERTY_MAPPING\"] = \"EMBEDDED_FLAT_DATA_PROPERTY_MAPPING\";\n CORE_HASH_STRUCTURE[\"FLAT_DATA_SECTION_POINTER\"] = \"FLAT_DATA_SECTION_POINTER\";\n // -------------------------------------- Function Activator --------------------------------------\n CORE_HASH_STRUCTURE[\"SNOWFLAKE_APP\"] = \"SNOWFLAKE_APP\";\n CORE_HASH_STRUCTURE[\"HOSTED_SERVICE\"] = \"HOSTED_SERVICE\";\n CORE_HASH_STRUCTURE[\"HOSTED_SERVICE_OWNER\"] = \"HOSTED_SERVICE_OWNER\";\n})(CORE_HASH_STRUCTURE || (CORE_HASH_STRUCTURE = {}));\nexport const hashObjectWithoutSourceInformation = (val) => hashObject(val, {\n /**\n * NOTE: this is over-simplification as there could be source information fields with other names\n * see note in {@link pruneSourceInformation}\n */\n excludeKeys: (propKey) => propKey\n .toLowerCase()\n .endsWith(SOURCE_INFORMATION_PROPERTY_KEY_SUFFIX.toLowerCase()),\n});\nexport const hashRawLambda = (parameters, body) => hashArray([\n parameters ? hashObjectWithoutSourceInformation(parameters) : '',\n body ? hashObjectWithoutSourceInformation(body) : '',\n]);\nexport const hashElementPointer = (pointerType, path) => [CORE_HASH_STRUCTURE.PACKAGEABLE_ELEMENT_POINTER, pointerType ?? '', path]\n .map(hashValue)\n .join(',');\n//# sourceMappingURL=Core_HashUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport hash from 'hash.js';\nimport { default as objectHash, } from 'object-hash';\nimport { assertTrue, isObject, isBoolean, isNumber, isString, isNonNullable, } from '../error/AssertionUtils.js';\nexport const hashValue = (val) => hash.sha1().update(val).digest('hex');\nexport const hashUnknownValue = (val) => {\n assertTrue(isString(val) || isBoolean(val) || isNumber(val), `Can't hash non-primitive value`);\n return hashValue(val);\n};\nexport const hashArray = (arr) => hashValue(arr\n .filter(isNonNullable)\n .map((val) => typeof val === 'string' ||\n typeof val === 'boolean' ||\n typeof val === 'number'\n ? hashValue(val)\n : val.hashCode)\n .join(','));\n/**\n * NOTE: `node-object-hash` seems to be the much more efficient library. But it's based on Node's `crypto` module\n * which is not supported in browser (so we have map `crypto` module to `crypto-browserify` or `crypto-js`).\n * If this object-hashing becomes the performance bottle-neck, we should think about adopting this hashing library\n * See https://www.npmjs.com/package/node-object-hash\n */\nexport const hashObject = (value, options) => {\n assertTrue(isObject(value), `Can't hash non-object value`);\n return objectHash(value, options);\n};\n/**\n * This method can be used to debug hashing.\n *\n * We have tried to come up with a more robust way to debug hash, such as to construct the hash tree, but that's not\n * quite feasible for the following reasons:\n * 1. Since sometimes there are properties we don't drill down like for a class, we just take the path, we don't have\n * a systematic way to construct the hash tree, so we have to rely on the implementation of the hashCode function\n * in each element, which defeats the purpose of having a generic approach for debugging hash\n * 2. If we ignore the implementation detail of `get hashCode` and expand the property if it has `hashCode` then we\n * might risk getting into an infinite loop\n * 3. The manual way to come up with the `get hashCode` is in order to reconcile the differences between metamodels and\n * protocol models. If we only compare metamodels to protocol models for example, the problem might be less complicated,\n * but we're dealing with 2 hash systems (in a way)\n * 4. As such, the best solution at the moment is to come up with a function like this\n * to debug hash where we can put it at a top level structure like `Mapping` and then choose which part of the hash\n * we would like to `explore`\n *\n * @param typesToExpand when we trickle down the object properties, we want to drill down so we want to choose\n * the property to drill down (by its type) since sometimes we don't need to compute the\n * actual hash code for the property (for example: a class, or an enumeration) while computing\n * the hash, just their path.\n */\nexport const debugHash = (obj, typesToExpand, depth = 0) => {\n let res = depth !== 0 ? `${obj.hashCode}` : '';\n res += ` {\\n`;\n Object.entries(obj)\n .filter(([key, value]) => typeof value === 'object' &&\n (!Array.isArray(value) ||\n (value.length !== 0 &&\n value.every((v) => typesToExpand.some((typeToExpand) => v instanceof typeToExpand)))) &&\n (Array.isArray(value) ||\n typesToExpand.some((typeToExpand) => value instanceof typeToExpand)))\n .forEach(([key, value]) => {\n res += `${' '.repeat(depth + 1)}${key}: ${Array.isArray(value)\n ? !value.length\n ? '[]'\n : `[\\n${' '.repeat(depth + 2)}${value\n .map((val, idx) => `${idx}: ${debugHash(val, typesToExpand, depth + 2)}`)\n .join(`\\n${' '.repeat(depth + 2)}`)}\\n${' '.repeat(depth + 1)}]`\n : debugHash(value, typesToExpand, depth + 1)}\\n`;\n });\n res += `${' '.repeat(depth)}}`;\n return res;\n};\n//# sourceMappingURL=HashUtils.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CORE_HASH_STRUCTURE } from '../../../../../../../graph/Core_HashUtils.js';\nimport { hashArray } from '@finos/legend-shared';\nexport class V1_Multiplicity {\n lowerBound = 0;\n upperBound;\n constructor(lowerBound, upperBound) {\n this.lowerBound = lowerBound;\n this.upperBound = upperBound;\n }\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.MULTIPLICITY,\n this.lowerBound.toString(),\n this.upperBound?.toString() ?? '',\n ]);\n }\n // common multiplicities\n static ZERO = new V1_Multiplicity(0, 0);\n static ZERO_ONE = new V1_Multiplicity(0, 1);\n static ZERO_MANY = new V1_Multiplicity(0, undefined);\n static ONE = new V1_Multiplicity(1, 1);\n static ONE_MANY = new V1_Multiplicity(1, undefined);\n}\n//# sourceMappingURL=V1_Multiplicity.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_ValueSpecification {\n}\n//# sourceMappingURL=V1_ValueSpecification.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_Multiplicity } from '../../packageableElements/domain/V1_Multiplicity.js';\nimport { V1_ValueSpecification } from '../V1_ValueSpecification.js';\nexport class V1_DataTypeValueSpecification extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE;\n}\n//# sourceMappingURL=V1_DataTypeValueSpecification.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_DataTypeValueSpecification } from './V1_DataTypeValueSpecification.js';\nexport class V1_PrimitiveValueSpecification extends V1_DataTypeValueSpecification {\n}\n//# sourceMappingURL=V1_PrimitiveValueSpecification.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CString extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CString(this);\n }\n}\n//# sourceMappingURL=V1_CString.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CBoolean extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CBoolean(this);\n }\n}\n//# sourceMappingURL=V1_CBoolean.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CDecimal extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CDecimal(this);\n }\n}\n//# sourceMappingURL=V1_CDecimal.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CInteger extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CInteger(this);\n }\n}\n//# sourceMappingURL=V1_CInteger.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CFloat extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CFloat(this);\n }\n}\n//# sourceMappingURL=V1_CFloat.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CDate extends V1_PrimitiveValueSpecification {\n}\n//# sourceMappingURL=V1_CDate.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_CDate } from './V1_CDate.js';\nexport class V1_CDateTime extends V1_CDate {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CDateTime(this);\n }\n}\n//# sourceMappingURL=V1_CDateTime.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_CDate } from './V1_CDate.js';\nexport class V1_CStrictDate extends V1_CDate {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CStrictDate(this);\n }\n}\n//# sourceMappingURL=V1_CStrictDate.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CStrictTime extends V1_PrimitiveValueSpecification {\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CStrictTime(this);\n }\n}\n//# sourceMappingURL=V1_CStrictTime.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_Multiplicity } from '../../packageableElements/domain/V1_Multiplicity.js';\nimport { V1_ValueSpecification } from '../V1_ValueSpecification.js';\nexport class V1_AbstractAppliedFunction extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE;\n}\n//# sourceMappingURL=V1_AbstractAppliedFunction.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_AbstractAppliedFunction } from '../raw/V1_AbstractAppliedFunction.js';\nexport class V1_AppliedFunction extends V1_AbstractAppliedFunction {\n function;\n fControl;\n parameters = [];\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_AppliedFunction(this);\n }\n}\n//# sourceMappingURL=V1_AppliedFunction.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_Multiplicity } from '../../packageableElements/domain/V1_Multiplicity.js';\nimport { V1_ValueSpecification } from '../V1_ValueSpecification.js';\n/**\n * Similar to class instances, but these constructs are too fundamental for the system\n * so we group them as **core** class instances.\n */\nexport class V1_CoreClassInstance extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE;\n}\n//# sourceMappingURL=V1_CoreClassInstance.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_CoreClassInstance } from './V1_CoreClassInstance.js';\nexport class V1_Lambda extends V1_CoreClassInstance {\n body = [];\n parameters = [];\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_Lambda(this);\n }\n}\n//# sourceMappingURL=V1_Lambda.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ValueSpecification, } from '../../model/valueSpecification/V1_ValueSpecification.js';\nexport class V1_Variable extends V1_ValueSpecification {\n name;\n multiplicity;\n class;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_Variable(this);\n }\n}\n//# sourceMappingURL=V1_Variable.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_AbstractAppliedFunction } from '../raw/V1_AbstractAppliedFunction.js';\nexport class V1_AppliedProperty extends V1_AbstractAppliedFunction {\n class;\n property;\n parameters = [];\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_AppliedProperty(this);\n }\n}\n//# sourceMappingURL=V1_AppliedProperty.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_ColSpec {\n name;\n type;\n function1;\n function2;\n}\n//# sourceMappingURL=V1_ColSpec.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_Multiplicity } from '../../packageableElements/domain/V1_Multiplicity.js';\nimport { V1_ValueSpecification, } from '../V1_ValueSpecification.js';\n/**\n * This is the mechanism by which we scale the system. Pretty much any constructs like\n * graph-fetch, path, etc, which have the need to store some data and manifest in value\n * specification space can be wrapped in form of a class instance. Here, we also keep\n * track of the type in order to interpret the value for processing.\n */\nexport class V1_ClassInstance extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE;\n type;\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_ClassInstance(this);\n }\n}\n//# sourceMappingURL=V1_ClassInstance.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_GraphFetchTree {\n subTrees = [];\n subTypeTrees = [];\n}\n//# sourceMappingURL=V1_GraphFetchTree.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_GraphFetchTree, } from './V1_GraphFetchTree.js';\nexport class V1_RootGraphFetchTree extends V1_GraphFetchTree {\n class;\n accept_GraphFetchTreeVisitor(visitor) {\n return visitor.visit_RootGraphFetchTree(this);\n }\n}\n//# sourceMappingURL=V1_RootGraphFetchTree.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_Path {\n name;\n startType;\n path = [];\n}\n//# sourceMappingURL=V1_Path.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ValueSpecification, } from '../../../model/valueSpecification/V1_ValueSpecification.js';\nimport { V1_Multiplicity } from '../../../model/packageableElements/domain/V1_Multiplicity.js';\nexport class V1_Collection extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE_MANY;\n values = [];\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_Collection(this);\n }\n}\n//# sourceMappingURL=V1_Collection.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_AggregateValue {\n mapFn;\n aggregateFn;\n}\n//# sourceMappingURL=V1_AggregateValue.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_Pair {\n first;\n second;\n}\n//# sourceMappingURL=V1_Pair.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_RuntimeInstance {\n runtime;\n}\n//# sourceMappingURL=V1_RuntimeInstance.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_ExecutionContextInstance {\n executionContext;\n}\n//# sourceMappingURL=V1_ExecutionContextInstance.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_GraphFetchTree, } from './V1_GraphFetchTree.js';\nexport class V1_PropertyGraphFetchTree extends V1_GraphFetchTree {\n property;\n parameters = [];\n alias;\n subType;\n accept_GraphFetchTreeVisitor(visitor) {\n return visitor.visit_PropertyGraphFetchTree(this);\n }\n}\n//# sourceMappingURL=V1_PropertyGraphFetchTree.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_GraphFetchTree, } from './V1_GraphFetchTree.js';\nexport class V1_SubTypeGraphFetchTree extends V1_GraphFetchTree {\n subTypeClass;\n accept_GraphFetchTreeVisitor(visitor) {\n return visitor.visit_SubTypeGraphFetchTree(this);\n }\n}\n//# sourceMappingURL=V1_SubTypeGraphFetchTree.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_SerializationConfig {\n includeType;\n typeKeyName;\n includeEnumType;\n removePropertiesWithNullValues;\n removePropertiesWithEmptySets;\n fullyQualifiedTypePath;\n includeObjectReference;\n}\n//# sourceMappingURL=V1_SerializationConfig.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_CoreClassInstance } from './V1_CoreClassInstance.js';\nexport class V1_KeyExpression extends V1_CoreClassInstance {\n add;\n expression;\n key;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_KeyExpression(this);\n }\n}\n//# sourceMappingURL=V1_KeyExpression.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_PureList {\n values = [];\n}\n//# sourceMappingURL=V1_PureList.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_TDSAggregateValue {\n name;\n pmapFn;\n aggregateFn;\n}\n//# sourceMappingURL=V1_TDSAggregateValue.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_TDSColumnInformation {\n name;\n columnFn;\n}\n//# sourceMappingURL=V1_TDSColumnInformation.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_TDSSortInformation {\n column;\n direction;\n}\n//# sourceMappingURL=V1_TDSSortInformation.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_TDSOlapRank {\n function;\n}\n//# sourceMappingURL=V1_TDSOlapRank.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_TDSOlapAggregation {\n function;\n columnName;\n}\n//# sourceMappingURL=V1_TDSOlapAggregation.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CORE_HASH_STRUCTURE } from '../../../../../../graph/Core_HashUtils.js';\nimport { hashArray } from '@finos/legend-shared';\nimport { ELEMENT_PATH_DELIMITER } from '../../../../../../graph/MetaModelConst.js';\nexport class V1_PackageableElement {\n package;\n name;\n /**\n * This logic is specific to the codebase and this is not part of the native metamodel.\n * If needed, we can probably move this out as an utility or do type declaration merge\n * and define this externally using `Object.defineProperty`.\n *\n * @internal model logic\n */\n get path() {\n return `${this.package}${ELEMENT_PATH_DELIMITER}${this.name}`;\n }\n get hashCode() {\n return hashArray([CORE_HASH_STRUCTURE.PACKAGEABLE_ELEMENT, this.path]);\n }\n}\nexport class V1_PackageableElementPointer {\n type;\n path;\n constructor(type, path) {\n this.type = type;\n this.path = path;\n }\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.PACKAGEABLE_ELEMENT_POINTER,\n this.type ?? '',\n this.path,\n ]);\n }\n}\n//# sourceMappingURL=V1_PackageableElement.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { primitive, createModelSchema, optional } from 'serializr';\nimport { SerializationFactory, optionalCustomUsingModelSchema, } from '@finos/legend-shared';\nimport { V1_Multiplicity } from '../../../model/packageableElements/domain/V1_Multiplicity.js';\nimport { V1_PackageableElementPointer } from '../../../model/packageableElements/V1_PackageableElement.js';\nimport { V1_SourceInformation } from '../../../model/V1_SourceInformation.js';\nexport const V1_sourceInformationSerialization = new SerializationFactory(createModelSchema(V1_SourceInformation, {\n sourceId: primitive(),\n startLine: primitive(),\n startColumn: primitive(),\n endLine: primitive(),\n endColumn: primitive(),\n}));\nexport class V1_INTERNAL__PackageableElementWithSourceInformation {\n package;\n name;\n sourceInformation;\n static serialization = new SerializationFactory(createModelSchema(V1_INTERNAL__PackageableElementWithSourceInformation, {\n package: primitive(),\n name: primitive(),\n sourceInformation: optionalCustomUsingModelSchema(V1_sourceInformationSerialization.schema),\n }));\n}\nexport const V1_packageableElementPointerModelSchema = createModelSchema(V1_PackageableElementPointer, {\n path: primitive(),\n type: optional(primitive()),\n});\nexport const V1_multiplicityModelSchema = createModelSchema(V1_Multiplicity, {\n lowerBound: primitive(),\n upperBound: optional(primitive()),\n});\n//# sourceMappingURL=V1_CoreSerializationHelper.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_SourceInformation {\n sourceId;\n startLine;\n startColumn;\n endLine;\n endColumn;\n}\n//# sourceMappingURL=V1_SourceInformation.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_PathElement {\n}\n//# sourceMappingURL=V1_PathElement.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PathElement } from './V1_PathElement.js';\nexport class V1_PropertyPathElement extends V1_PathElement {\n property;\n parameters = [];\n}\n//# sourceMappingURL=V1_PropertyPathElement.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CORE_HASH_STRUCTURE } from '../../../../../../../graph/Core_HashUtils.js';\nimport { hashArray } from '@finos/legend-shared';\nexport class V1_Runtime {\n}\nexport class V1_IdentifiedConnection {\n id;\n connection;\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.IDENTIFIED_CONNECTION,\n this.id,\n this.connection,\n ]);\n }\n}\nexport class V1_StoreConnections {\n store;\n storeConnections = [];\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.STORE_CONNECTIONS,\n this.store,\n hashArray(this.storeConnections),\n ]);\n }\n}\nexport class V1_ConnectionStores {\n connectionPointer;\n storePointers = [];\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.STORE_CONNECTIONS,\n this.connectionPointer,\n hashArray(this.storePointers),\n ]);\n }\n}\nexport class V1_EngineRuntime extends V1_Runtime {\n mappings = [];\n connectionStores = [];\n connections = [];\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.ENGINE_RUNTIME,\n hashArray(this.mappings),\n hashArray(this.connectionStores),\n hashArray(this.connections),\n ]);\n }\n}\nexport class V1_SingleConnectionEngineRuntime extends V1_EngineRuntime {\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.SINGLE_ENGINE_RUNTIME,\n hashArray(this.mappings),\n hashArray(this.connectionStores),\n hashArray(this.connections),\n ]);\n }\n}\nexport class V1_LegacyRuntime extends V1_Runtime {\n mappings = [];\n connections = [];\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.LEGACY_RUNTIME,\n hashArray(this.mappings),\n hashArray(this.connections),\n ]);\n }\n}\nexport class V1_RuntimePointer extends V1_Runtime {\n runtime;\n get hashCode() {\n return hashArray([CORE_HASH_STRUCTURE.RUNTIME_POINTER, this.runtime]);\n }\n}\n//# sourceMappingURL=V1_Runtime.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, primitive, list, custom, serialize, deserialize, object, } from 'serializr';\nimport { usingConstantValueSchema, UnsupportedOperationError, usingModelSchema, } from '@finos/legend-shared';\nimport { V1_packageableElementPointerModelSchema } from '../../../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js';\nimport { V1_PackageableRuntime } from '../../../model/packageableElements/runtime/V1_PackageableRuntime.js';\nimport { V1_EngineRuntime, V1_IdentifiedConnection, V1_LegacyRuntime, V1_RuntimePointer, V1_StoreConnections, V1_ConnectionStores, V1_SingleConnectionEngineRuntime, } from '../../../model/packageableElements/runtime/V1_Runtime.js';\nimport { V1_serializeConnectionValue, V1_deserializeConnectionValue, V1_connectionPointerModelSchema, } from './V1_ConnectionSerializationHelper.js';\nexport const V1_PACKAGEABLE_RUNTIME_ELEMENT_PROTOCOL_TYPE = 'runtime';\nexport var V1_RuntimeType;\n(function (V1_RuntimeType) {\n V1_RuntimeType[\"RUNTIME_POINTER\"] = \"runtimePointer\";\n V1_RuntimeType[\"LEGACY_RUNTIME\"] = \"legacyRuntime\";\n V1_RuntimeType[\"ENGINE_RUNTIME\"] = \"engineRuntime\";\n V1_RuntimeType[\"SINGLE_ENGINE_RUNTIME\"] = \"localEngineRuntime\";\n})(V1_RuntimeType || (V1_RuntimeType = {}));\nexport const V1_runtimePointerModelSchema = createModelSchema(V1_RuntimePointer, {\n _type: usingConstantValueSchema(V1_RuntimeType.RUNTIME_POINTER),\n runtime: primitive(),\n});\nexport const V1_setupLegacyRuntimeSerialization = (plugins) => {\n createModelSchema(V1_LegacyRuntime, {\n _type: usingConstantValueSchema(V1_RuntimeType.LEGACY_RUNTIME),\n connections: list(custom((val) => V1_serializeConnectionValue(val, true, plugins), (val) => V1_deserializeConnectionValue(val, true, plugins))),\n mappings: list(usingModelSchema(V1_packageableElementPointerModelSchema)),\n });\n};\nexport const V1_setupEngineRuntimeSerialization = (plugins) => {\n createModelSchema(V1_IdentifiedConnection, {\n connection: custom((val) => V1_serializeConnectionValue(val, true, plugins), (val) => V1_deserializeConnectionValue(val, true, plugins)),\n id: primitive(),\n });\n createModelSchema(V1_ConnectionStores, {\n connectionPointer: usingModelSchema(V1_connectionPointerModelSchema),\n storePointers: list(usingModelSchema(V1_packageableElementPointerModelSchema)),\n });\n createModelSchema(V1_StoreConnections, {\n store: usingModelSchema(V1_packageableElementPointerModelSchema),\n storeConnections: list(object(V1_IdentifiedConnection)),\n });\n createModelSchema(V1_EngineRuntime, {\n _type: usingConstantValueSchema(V1_RuntimeType.ENGINE_RUNTIME),\n connectionStores: list(object(V1_ConnectionStores)),\n connections: list(object(V1_StoreConnections)),\n mappings: list(usingModelSchema(V1_packageableElementPointerModelSchema)),\n });\n createModelSchema(V1_SingleConnectionEngineRuntime, {\n _type: usingConstantValueSchema(V1_RuntimeType.SINGLE_ENGINE_RUNTIME),\n connectionStores: list(object(V1_ConnectionStores)),\n connections: list(object(V1_StoreConnections)),\n mappings: list(usingModelSchema(V1_packageableElementPointerModelSchema)),\n });\n};\nexport const V1_serializeRuntime = (protocol) => {\n if (protocol instanceof V1_EngineRuntime) {\n return serialize(V1_EngineRuntime, protocol);\n }\n else if (protocol instanceof V1_RuntimePointer) {\n return serialize(V1_runtimePointerModelSchema, protocol);\n }\n // NOTE: we don't want to serialize legacy runtime as we no longer want to circulate it any further\n throw new UnsupportedOperationError(`Can't serialize runtime`, protocol);\n};\nexport const V1_deserializeRuntime = (json) => {\n switch (json._type) {\n case V1_RuntimeType.RUNTIME_POINTER:\n return deserialize(V1_runtimePointerModelSchema, json);\n case V1_RuntimeType.ENGINE_RUNTIME:\n return deserialize(V1_EngineRuntime, json);\n case V1_RuntimeType.LEGACY_RUNTIME:\n case undefined:\n return deserialize(V1_LegacyRuntime, json);\n default:\n throw new UnsupportedOperationError(`Can't deeserialize runtime of type '${json._type}'`);\n }\n};\nexport const V1_serializeRuntimeValue = (protocol) => {\n if (protocol instanceof V1_SingleConnectionEngineRuntime) {\n return serialize(V1_SingleConnectionEngineRuntime, protocol);\n }\n return serialize(V1_EngineRuntime, protocol);\n};\nexport const V1_deserializeRuntimeValue = (json) => {\n if (json._type === V1_RuntimeType.SINGLE_ENGINE_RUNTIME) {\n return deserialize(V1_SingleConnectionEngineRuntime, json);\n }\n return deserialize(V1_EngineRuntime, json);\n};\nexport const V1_packageableRuntimeModelSchema = createModelSchema(V1_PackageableRuntime, {\n _type: usingConstantValueSchema(V1_PACKAGEABLE_RUNTIME_ELEMENT_PROTOCOL_TYPE),\n name: primitive(),\n package: primitive(),\n runtimeValue: custom((val) => V1_serializeRuntimeValue(val), (val) => V1_deserializeRuntimeValue(val)),\n});\n//# sourceMappingURL=V1_RuntimeSerializationHelper.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { hashArray } from '@finos/legend-shared';\nimport { CORE_HASH_STRUCTURE } from '../../../../../../../graph/Core_HashUtils.js';\nimport { V1_PackageableElement, } from '../../../model/packageableElements/V1_PackageableElement.js';\nexport class V1_PackageableRuntime extends V1_PackageableElement {\n runtimeValue;\n get hashCode() {\n return hashArray([\n CORE_HASH_STRUCTURE.PACKAGEABLE_RUNTIME,\n this.path,\n this.runtimeValue,\n ]);\n }\n accept_PackageableElementVisitor(visitor) {\n return visitor.visit_PackageableRuntime(this);\n }\n}\n//# sourceMappingURL=V1_PackageableRuntime.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_ExecutionContext {\n queryTimeOutInSeconds;\n enableConstraints;\n}\n//# sourceMappingURL=V1_ExecutionContext.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ExecutionContext } from './V1_ExecutionContext.js';\nexport class V1_AnalyticsExecutionContext extends V1_ExecutionContext {\n useAnalytics;\n toFlowSetFunction;\n}\n//# sourceMappingURL=V1_AnalyticsExecutionContext.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ExecutionContext } from './V1_ExecutionContext.js';\nexport class V1_BaseExecutionContext extends V1_ExecutionContext {\n}\n//# sourceMappingURL=V1_BaseExecutionContext.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ValueSpecification, } from '../../../model/valueSpecification/V1_ValueSpecification.js';\nimport { V1_Multiplicity } from '../../packageableElements/domain/V1_Multiplicity.js';\nexport class V1_PackageableElementPtr extends V1_ValueSpecification {\n multiplicity = V1_Multiplicity.ONE;\n fullPath;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_PackageableElementPtr(this);\n }\n}\n//# sourceMappingURL=V1_PackageableElementPtr.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PackageableElementPtr } from './V1_PackageableElementPtr.js';\nexport class V1_GenericTypeInstance extends V1_PackageableElementPtr {\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_GenericTypeInstance(this);\n }\n}\n//# sourceMappingURL=V1_GenericTypeInstance.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_ColSpecArray {\n colSpecs = [];\n}\n//# sourceMappingURL=V1_ColSpecArray.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class V1_RelationStoreAccessor {\n path = [];\n}\n//# sourceMappingURL=V1_RelationStoreAccessor.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, primitive, serialize, SKIP, list, custom, deserialize, optional, } from 'serializr';\nimport { usingConstantValueSchema, UnsupportedOperationError, usingModelSchema, guaranteeIsString, isString, isPlainObject, } from '@finos/legend-shared';\nimport { V1_Variable } from '../../../model/valueSpecification/V1_Variable.js';\nimport { V1_RootGraphFetchTree } from '../../../model/valueSpecification/raw/classInstance/graph/V1_RootGraphFetchTree.js';\nimport { V1_Lambda } from '../../../model/valueSpecification/raw/V1_Lambda.js';\nimport { V1_EnumValue } from '../../../model/valueSpecification/raw/V1_EnumValue.js';\nimport { V1_Path } from '../../../model/valueSpecification/raw/classInstance/path/V1_Path.js';\nimport { V1_AppliedFunction } from '../../../model/valueSpecification/application/V1_AppliedFunction.js';\nimport { V1_Collection } from '../../../model/valueSpecification/raw/V1_Collection.js';\nimport { V1_CDecimal } from '../../../model/valueSpecification/raw/V1_CDecimal.js';\nimport { V1_CInteger } from '../../../model/valueSpecification/raw/V1_CInteger.js';\nimport { V1_CString } from '../../../model/valueSpecification/raw/V1_CString.js';\nimport { V1_CFloat } from '../../../model/valueSpecification/raw/V1_CFloat.js';\nimport { V1_CDateTime } from '../../../model/valueSpecification/raw/V1_CDateTime.js';\nimport { V1_CStrictDate } from '../../../model/valueSpecification/raw/V1_CStrictDate.js';\nimport { V1_CStrictTime } from '../../../model/valueSpecification/raw/V1_CStrictTime.js';\nimport { V1_CLatestDate } from '../../../model/valueSpecification/raw/V1_CLatestDate.js';\nimport { V1_CBoolean } from '../../../model/valueSpecification/raw/V1_CBoolean.js';\nimport { V1_AggregateValue } from '../../../model/valueSpecification/raw/classInstance/V1_AggregateValue.js';\nimport { V1_Pair } from '../../../model/valueSpecification/raw/classInstance/V1_Pair.js';\nimport { V1_RuntimeInstance } from '../../../model/valueSpecification/raw/classInstance/V1_RuntimeInstance.js';\nimport { V1_ExecutionContextInstance } from '../../../model/valueSpecification/raw/classInstance/V1_ExecutionContextInstance.js';\nimport { V1_PropertyGraphFetchTree } from '../../../model/valueSpecification/raw/classInstance/graph/V1_PropertyGraphFetchTree.js';\nimport { V1_SubTypeGraphFetchTree } from '../../../model/valueSpecification/raw/classInstance/graph/V1_SubTypeGraphFetchTree.js';\nimport { V1_SerializationConfig } from '../../../model/valueSpecification/raw/classInstance/V1_SerializationConfig.js';\nimport { V1_KeyExpression } from '../../../model/valueSpecification/raw/V1_KeyExpression.js';\nimport { V1_PureList } from '../../../model/valueSpecification/raw/classInstance/V1_PureList.js';\nimport { V1_TDSAggregateValue } from '../../../model/valueSpecification/raw/classInstance/V1_TDSAggregateValue.js';\nimport { V1_TDSColumnInformation } from '../../../model/valueSpecification/raw/classInstance/V1_TDSColumnInformation.js';\nimport { V1_TDSSortInformation } from '../../../model/valueSpecification/raw/classInstance/V1_TDSSortInformation.js';\nimport { V1_TDSOlapRank } from '../../../model/valueSpecification/raw/classInstance/V1_TDSOlapRank.js';\nimport { V1_TDSOlapAggregation } from '../../../model/valueSpecification/raw/classInstance/V1_TDSOlapAggregation.js';\nimport { V1_multiplicityModelSchema } from './V1_CoreSerializationHelper.js';\nimport { V1_PropertyPathElement } from '../../../model/valueSpecification/raw/classInstance/path/V1_PropertyPathElement.js';\nimport { V1_AppliedProperty } from '../../../model/valueSpecification/application/V1_AppliedProperty.js';\nimport { V1_serializeRuntime } from './V1_RuntimeSerializationHelper.js';\nimport { V1_AnalyticsExecutionContext } from '../../../model/valueSpecification/raw/executionContext/V1_AnalyticsExecutionContext.js';\nimport { V1_BaseExecutionContext } from '../../../model/valueSpecification/raw/executionContext/V1_BaseExecutionContext.js';\nimport { V1_PackageableElementPtr } from '../../../model/valueSpecification/raw/V1_PackageableElementPtr.js';\nimport { V1_EngineRuntime } from '../../../model/packageableElements/runtime/V1_Runtime.js';\nimport { V1_GenericTypeInstance } from '../../../model/valueSpecification/raw/V1_GenericTypeInstance.js';\nimport { V1_Multiplicity } from '../../../model/packageableElements/domain/V1_Multiplicity.js';\nimport { V1_ClassInstance } from '../../../model/valueSpecification/raw/V1_ClassInstance.js';\nimport { V1_CByteArray } from '../../../model/valueSpecification/raw/V1_CByteArray.js';\nimport { V1_ColSpecArray } from '../../../model/valueSpecification/raw/V1_ColSpecArray.js';\nimport { V1_ColSpec } from '../../../model/valueSpecification/raw/V1_ColSpec.js';\nimport { V1_RelationStoreAccessor } from '../../../model/valueSpecification/raw/V1_RelationStoreAccessor.js';\nvar V1_ExecutionContextType;\n(function (V1_ExecutionContextType) {\n V1_ExecutionContextType[\"BASE_EXECUTION_CONTEXT\"] = \"BaseExecutionContext\";\n V1_ExecutionContextType[\"ANALYTICS_EXECUTION_CONTEXT\"] = \"AnalyticsExecutionContext\";\n})(V1_ExecutionContextType || (V1_ExecutionContextType = {}));\nvar V1_PathElementType;\n(function (V1_PathElementType) {\n V1_PathElementType[\"PROPERTY_PATH_ELEMENT\"] = \"propertyPath\";\n})(V1_PathElementType || (V1_PathElementType = {}));\nexport var V1_GraphFetchTreeType;\n(function (V1_GraphFetchTreeType) {\n V1_GraphFetchTreeType[\"PROPERTY_GRAPH_FETCH_TREE\"] = \"propertyGraphFetchTree\";\n})(V1_GraphFetchTreeType || (V1_GraphFetchTreeType = {}));\nexport var V1_ClassInstanceType;\n(function (V1_ClassInstanceType) {\n V1_ClassInstanceType[\"ROOT_GRAPH_FETCH_TREE\"] = \"rootGraphFetchTree\";\n V1_ClassInstanceType[\"SUBTYPE_GRAPH_FETCH_TREE\"] = \"subTypeGraphFetchTree\";\n V1_ClassInstanceType[\"PATH\"] = \"path\";\n V1_ClassInstanceType[\"AGGREGATE_VALUE\"] = \"aggregateValue\";\n V1_ClassInstanceType[\"EXECUTION_CONTEXT_INSTANCE\"] = \"executionContextInstance\";\n V1_ClassInstanceType[\"PAIR\"] = \"pair\";\n V1_ClassInstanceType[\"PURE_LIST\"] = \"listInstance\";\n V1_ClassInstanceType[\"RUNTIME_INSTANCE\"] = \"runtimeInstance\";\n V1_ClassInstanceType[\"SERIALIZATION_CONFIG\"] = \"alloySerializationConfig\";\n V1_ClassInstanceType[\"COL_SPEC\"] = \"colSpec\";\n V1_ClassInstanceType[\"COL_SPEC_ARRAY\"] = \"colSpecArray\";\n V1_ClassInstanceType[\"RELATION_STORE_ACCESSOR\"] = \">\";\n V1_ClassInstanceType[\"TDS_AGGREGATE_VALUE\"] = \"tdsAggregateValue\";\n V1_ClassInstanceType[\"TDS_COLUMN_INFORMATION\"] = \"tdsColumnInformation\";\n V1_ClassInstanceType[\"TDS_SORT_INFORMATION\"] = \"tdsSortInformation\";\n V1_ClassInstanceType[\"TDS_OLAP_RANK\"] = \"tdsOlapRank\";\n V1_ClassInstanceType[\"TDS_OLAP_AGGREGATION\"] = \"tdsOlapAggregation\";\n})(V1_ClassInstanceType || (V1_ClassInstanceType = {}));\nvar V1_ValueSpecificationType;\n(function (V1_ValueSpecificationType) {\n V1_ValueSpecificationType[\"VARIABLE\"] = \"var\";\n V1_ValueSpecificationType[\"LAMBDA\"] = \"lambda\";\n V1_ValueSpecificationType[\"KEY_EXPRESSION\"] = \"keyExpression\";\n V1_ValueSpecificationType[\"APPLIED_FUNCTION\"] = \"func\";\n V1_ValueSpecificationType[\"APPLIED_PROPERTY\"] = \"property\";\n V1_ValueSpecificationType[\"PACKAGEABLE_ELEMENT_PTR\"] = \"packageableElementPtr\";\n V1_ValueSpecificationType[\"GENERIC_TYPE_INSTANCE\"] = \"genericTypeInstance\";\n V1_ValueSpecificationType[\"ENUM_VALUE\"] = \"enumValue\";\n V1_ValueSpecificationType[\"COLLECTION\"] = \"collection\";\n V1_ValueSpecificationType[\"CINTEGER\"] = \"integer\";\n V1_ValueSpecificationType[\"CDECIMAL\"] = \"decimal\";\n V1_ValueSpecificationType[\"CSTRING\"] = \"string\";\n V1_ValueSpecificationType[\"CBOOLEAN\"] = \"boolean\";\n V1_ValueSpecificationType[\"CBYTEARRAY\"] = \"byteArray\";\n V1_ValueSpecificationType[\"CFLOAT\"] = \"float\";\n V1_ValueSpecificationType[\"CDATETIME\"] = \"dateTime\";\n V1_ValueSpecificationType[\"CSTRICTDATE\"] = \"strictDate\";\n V1_ValueSpecificationType[\"CSTRICTTIME\"] = \"strictTime\";\n V1_ValueSpecificationType[\"CLATESTDATE\"] = \"latestDate\";\n V1_ValueSpecificationType[\"CLASS_INSTANCE\"] = \"classInstance\";\n // ------------------------------ DEPRECATED ----------------------------------\n V1_ValueSpecificationType[\"HACKED_CLASS\"] = \"hackedClass\";\n V1_ValueSpecificationType[\"HACKED_UNIT\"] = \"hackedUnit\";\n V1_ValueSpecificationType[\"UNIT_TYPE\"] = \"unitType\";\n V1_ValueSpecificationType[\"PRIMITIVE_TYPE\"] = \"primitiveType\";\n V1_ValueSpecificationType[\"CLASS\"] = \"class\";\n V1_ValueSpecificationType[\"ENUM\"] = \"enum\";\n V1_ValueSpecificationType[\"MAPPING_INSTANCE\"] = \"mappingInstance\";\n})(V1_ValueSpecificationType || (V1_ValueSpecificationType = {}));\n// ---------------------------------------- Value Specification --------------------------------------\nexport const V1_variableModelSchema = createModelSchema(V1_Variable, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.VARIABLE),\n class: optional(primitive()),\n multiplicity: usingModelSchema(V1_multiplicityModelSchema),\n name: primitive(),\n});\nconst lambdaModelSchema = (plugins) => createModelSchema(V1_Lambda, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.LAMBDA),\n body: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n parameters: list(usingModelSchema(V1_variableModelSchema)),\n});\nconst keyExpressionModelSchema = (plugins) => createModelSchema(V1_KeyExpression, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.KEY_EXPRESSION),\n add: optional(primitive()),\n expression: custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins)),\n key: custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins)),\n});\nconst appliedFunctionModelSchema = (plugins) => createModelSchema(V1_AppliedFunction, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.APPLIED_FUNCTION),\n function: primitive(),\n parameters: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n});\nconst appliedPropertyModelSchema = (plugins) => createModelSchema(V1_AppliedProperty, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.APPLIED_PROPERTY),\n class: optional(primitive()),\n parameters: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n property: primitive(),\n});\nconst packageableElementPtrSchema = createModelSchema(V1_PackageableElementPtr, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.PACKAGEABLE_ELEMENT_PTR),\n fullPath: primitive(),\n});\nconst genericTypeInstanceSchema = createModelSchema(V1_GenericTypeInstance, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.GENERIC_TYPE_INSTANCE),\n fullPath: primitive(),\n});\n/**\n * @backwardCompatibility\n */\nconst deserializeHackedUnit = (json) => {\n const protocol = new V1_GenericTypeInstance();\n if (isString(json.unitType)) {\n protocol.fullPath = json.unitType;\n }\n else {\n protocol.fullPath = guaranteeIsString(json.fullPath, `Can't deserialize hacked unit: either field 'fullPath' or 'unitType' must be a non-empty string`);\n }\n return protocol;\n};\n/**\n * @backwardCompatibility\n */\nconst deserializeHackedClass = (json) => {\n const protocol = new V1_GenericTypeInstance();\n protocol.fullPath = guaranteeIsString(json.fullPath, `Can't deserialize hacked class: field 'fullPath' must be a non-empty string`);\n return protocol;\n};\nconst collectionModelSchema = (plugins) => createModelSchema(V1_Collection, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.COLLECTION),\n multiplicity: usingModelSchema(V1_multiplicityModelSchema),\n values: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n});\nconst enumValueModelSchema = createModelSchema(V1_EnumValue, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.ENUM_VALUE),\n fullPath: primitive(),\n value: primitive(),\n});\nconst CDecimalModelSchema = createModelSchema(V1_CDecimal, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CDECIMAL),\n value: primitive(),\n});\nconst CIntegerModelSchema = createModelSchema(V1_CInteger, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CINTEGER),\n value: primitive(),\n});\nconst CStringModelSchema = createModelSchema(V1_CString, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CSTRING),\n value: primitive(),\n});\nconst CFloatModelSchema = createModelSchema(V1_CFloat, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CFLOAT),\n value: primitive(),\n});\nconst CDateTimeModelSchema = createModelSchema(V1_CDateTime, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CDATETIME),\n value: primitive(),\n});\nconst CStrictTimeModelSchema = createModelSchema(V1_CStrictTime, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CSTRICTTIME),\n value: primitive(),\n});\nconst CStrictDateModelSchema = createModelSchema(V1_CStrictDate, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CSTRICTDATE),\n value: primitive(),\n});\nconst CLatestDateModelSchema = createModelSchema(V1_CLatestDate, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CLATESTDATE),\n});\nconst CBooleanModelSchema = createModelSchema(V1_CBoolean, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CBOOLEAN),\n value: primitive(),\n});\nconst CByteArrayModelSchema = createModelSchema(V1_CByteArray, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CBYTEARRAY),\n value: primitive(),\n});\n/**\n * @backwardCompatibility\n */\nconst deserializePrimitiveValueSpecification = (json, plugins, deserializer) => {\n if (Array.isArray(json.values)) {\n if (json.values.length === 0) {\n const collection = new V1_Collection();\n collection.multiplicity = V1_Multiplicity.ZERO;\n return collection;\n }\n else if (json.values.length === 1) {\n return deserializer({\n ...json,\n value: json.values[0],\n });\n }\n else {\n return V1_deserializeValueSpecification({\n ...json,\n _type: V1_ValueSpecificationType.COLLECTION,\n }, plugins);\n }\n }\n return deserializer(json);\n};\n// ---------------------------------------- Class Instance --------------------------------------\nconst classInstanceModelSchema = (plugins) => createModelSchema(V1_ClassInstance, {\n _type: usingConstantValueSchema(V1_ValueSpecificationType.CLASS_INSTANCE),\n multiplicity: usingModelSchema(V1_multiplicityModelSchema),\n type: primitive(),\n value: custom((val) => V1_serializeClassInstanceValue(val, plugins), (val, context) => V1_deserializeClassInstanceValue(val, context.json.type, plugins)),\n});\n// path\nconst propertyPathElementModelSchema = (plugins) => createModelSchema(V1_PropertyPathElement, {\n _type: usingConstantValueSchema(V1_PathElementType.PROPERTY_PATH_ELEMENT),\n property: primitive(),\n parameters: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n});\nfunction V1_serializePathElement(protocol, plugins) {\n if (protocol instanceof V1_PropertyPathElement) {\n return serialize(propertyPathElementModelSchema(plugins), protocol);\n }\n return SKIP;\n}\nfunction V1_deserializePathElement(json, plugins) {\n switch (json._type) {\n case V1_PathElementType.PROPERTY_PATH_ELEMENT:\n return deserialize(propertyPathElementModelSchema(plugins), json);\n default:\n return SKIP;\n }\n}\nconst pathModelSchema = (plugins) => createModelSchema(V1_Path, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.PATH),\n name: primitive(),\n startType: primitive(),\n path: list(custom((val) => V1_serializePathElement(val, plugins), (val) => V1_deserializePathElement(val, plugins))),\n});\n// graph fetch tree\nconst rootGraphFetchTreeModelSchema = (plugins) => createModelSchema(V1_RootGraphFetchTree, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.ROOT_GRAPH_FETCH_TREE),\n class: primitive(),\n subTrees: list(custom((val) => V1_serializeGraphFetchTree(val, plugins), (val) => V1_deserializeGraphFetchTree(val, plugins))),\n subTypeTrees: list(custom((val) => V1_serializeGraphFetchTree(val, plugins), (val) => V1_deserializeGraphFetchTree(val, plugins))),\n});\nconst propertyGraphFetchTreeModelSchema = (plugins) => createModelSchema(V1_PropertyGraphFetchTree, {\n _type: usingConstantValueSchema(V1_GraphFetchTreeType.PROPERTY_GRAPH_FETCH_TREE),\n alias: optional(primitive()),\n parameters: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n property: primitive(),\n subTrees: list(custom((val) => V1_serializeGraphFetchTree(val, plugins), (val) => V1_deserializeGraphFetchTree(val, plugins))),\n subTypeTrees: list(custom((val) => V1_serializeGraphFetchTree(val, plugins), (val) => V1_deserializeGraphFetchTree(val, plugins))),\n subType: optional(primitive()),\n});\nconst subTypeGraphFetchTreeModelSchema = (plugins) => createModelSchema(V1_SubTypeGraphFetchTree, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.SUBTYPE_GRAPH_FETCH_TREE),\n subTrees: list(custom((val) => V1_serializeGraphFetchTree(val, plugins), (val) => V1_deserializeGraphFetchTree(val, plugins))),\n subTypeClass: primitive(),\n});\nexport function V1_serializeGraphFetchTree(protocol, plugins) {\n if (protocol instanceof V1_PropertyGraphFetchTree) {\n return serialize(propertyGraphFetchTreeModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_RootGraphFetchTree) {\n return serialize(rootGraphFetchTreeModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_SubTypeGraphFetchTree) {\n return serialize(subTypeGraphFetchTreeModelSchema(plugins), protocol);\n }\n throw new UnsupportedOperationError(`Can't serialize graph fetch tree`, protocol);\n}\nexport function V1_deserializeGraphFetchTree(json, plugins) {\n switch (json._type) {\n case V1_GraphFetchTreeType.PROPERTY_GRAPH_FETCH_TREE:\n return deserialize(propertyGraphFetchTreeModelSchema(plugins), json);\n case V1_ClassInstanceType.ROOT_GRAPH_FETCH_TREE:\n return deserialize(rootGraphFetchTreeModelSchema(plugins), json);\n case V1_ClassInstanceType.SUBTYPE_GRAPH_FETCH_TREE:\n return deserialize(subTypeGraphFetchTreeModelSchema(plugins), json);\n default:\n throw new UnsupportedOperationError(`Can't deserialize graph fetch tree node of type '${json._type}'`);\n }\n}\n// execution context\nconst analyticsExecutionContextModelSchema = (plugins) => createModelSchema(V1_AnalyticsExecutionContext, {\n _type: usingConstantValueSchema(V1_ExecutionContextType.ANALYTICS_EXECUTION_CONTEXT),\n enableConstraints: optional(primitive()),\n queryTimeOutInSeconds: optional(primitive()),\n toFlowSetFunction: usingModelSchema(lambdaModelSchema(plugins)),\n useAnalytics: primitive(),\n});\nconst baseExecutionContextModelSchema = createModelSchema(V1_BaseExecutionContext, {\n _type: usingConstantValueSchema(V1_ExecutionContextType.BASE_EXECUTION_CONTEXT),\n enableConstraints: optional(primitive()),\n queryTimeOutInSeconds: optional(primitive()),\n});\nfunction V1_serializeExecutionContext(protocol, plugins) {\n if (protocol instanceof V1_AnalyticsExecutionContext) {\n return serialize(analyticsExecutionContextModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_BaseExecutionContext) {\n return serialize(baseExecutionContextModelSchema, protocol);\n }\n return SKIP;\n}\nfunction V1_deserializeExecutionContext(json, plugins) {\n switch (json._type) {\n case V1_ExecutionContextType.ANALYTICS_EXECUTION_CONTEXT:\n return deserialize(analyticsExecutionContextModelSchema(plugins), json);\n case V1_ExecutionContextType.BASE_EXECUTION_CONTEXT:\n return deserialize(baseExecutionContextModelSchema, json);\n default:\n return SKIP;\n }\n}\nconst executionContextInstanceModelSchema = (plugins) => createModelSchema(V1_ExecutionContextInstance, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.EXECUTION_CONTEXT_INSTANCE),\n executionContext: custom((val) => V1_serializeExecutionContext(val, plugins), (val) => V1_deserializeExecutionContext(val, plugins)),\n});\n// others\nconst aggregationValueModelSchema = (plugins) => createModelSchema(V1_AggregateValue, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.AGGREGATE_VALUE),\n mapFn: usingModelSchema(lambdaModelSchema(plugins)),\n aggregateFn: usingModelSchema(lambdaModelSchema(plugins)),\n});\nconst pairModelSchema = (plugins) => createModelSchema(V1_Pair, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.PAIR),\n first: custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins)),\n second: custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins)),\n});\nconst runtimeInstanceModelSchema = createModelSchema(V1_RuntimeInstance, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.RUNTIME_INSTANCE),\n runtime: custom((val) => V1_serializeRuntime(val), (val) => deserialize(V1_EngineRuntime, val)),\n});\nconst pureListModelSchema = (plugins) => createModelSchema(V1_PureList, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.PURE_LIST),\n values: list(custom((val) => V1_serializeValueSpecification(val, plugins), (val) => V1_deserializeValueSpecification(val, plugins))),\n});\nconst serializationConfigModelSchema = createModelSchema(V1_SerializationConfig, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.SERIALIZATION_CONFIG),\n includeType: optional(primitive()),\n typeKeyName: primitive(),\n includeEnumTypee: optional(primitive()),\n removePropertiesWithNullValuese: optional(primitive()),\n removePropertiesWithEmptySetse: optional(primitive()),\n fullyQualifiedTypePathe: optional(primitive()),\n includeObjectReferencee: optional(primitive()),\n});\n// TDS\nconst tdsAggregrateValueModelSchema = (plugins) => createModelSchema(V1_TDSAggregateValue, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.TDS_AGGREGATE_VALUE),\n name: primitive(),\n pmapFn: usingModelSchema(lambdaModelSchema(plugins)),\n aggregateFn: usingModelSchema(lambdaModelSchema(plugins)),\n});\nconst tdsColumnInformationModelSchema = (plugins) => createModelSchema(V1_TDSColumnInformation, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.TDS_COLUMN_INFORMATION),\n name: primitive(),\n columnFn: usingModelSchema(lambdaModelSchema(plugins)),\n});\nconst tdsSortInformationModelSchema = createModelSchema(V1_TDSSortInformation, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.TDS_SORT_INFORMATION),\n column: primitive(),\n direction: primitive(),\n});\nconst relationStoreAccessorModelSchema = createModelSchema(V1_RelationStoreAccessor, {\n path: list(primitive()),\n});\nconst colSpecModelSchema = (plugins) => createModelSchema(V1_ColSpec, {\n function1: optional(usingModelSchema(lambdaModelSchema(plugins))),\n function2: optional(usingModelSchema(lambdaModelSchema(plugins))),\n name: primitive(),\n type: optional(primitive()),\n});\nconst colSpecArrayModelSchema = (plugins) => createModelSchema(V1_ColSpecArray, {\n colSpecs: list(usingModelSchema(colSpecModelSchema(plugins))),\n});\nconst tdsOlapRankModelSchema = (plugins) => createModelSchema(V1_TDSOlapRank, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.TDS_OLAP_RANK),\n function: usingModelSchema(lambdaModelSchema(plugins)),\n});\nconst tdsOlapAggregationModelSchema = (plugins) => createModelSchema(V1_TDSOlapAggregation, {\n _type: usingConstantValueSchema(V1_ClassInstanceType.TDS_OLAP_AGGREGATION),\n function: usingModelSchema(lambdaModelSchema(plugins)),\n columnName: primitive(),\n});\nexport function V1_deserializeClassInstanceValue(json, type, plugins) {\n switch (type) {\n case V1_ClassInstanceType.PATH:\n return deserialize(pathModelSchema(plugins), json);\n case V1_ClassInstanceType.ROOT_GRAPH_FETCH_TREE:\n return deserialize(rootGraphFetchTreeModelSchema(plugins), json);\n case V1_ClassInstanceType.AGGREGATE_VALUE:\n return deserialize(aggregationValueModelSchema(plugins), json);\n case V1_ClassInstanceType.EXECUTION_CONTEXT_INSTANCE:\n return deserialize(executionContextInstanceModelSchema(plugins), json);\n case V1_ClassInstanceType.PAIR:\n return deserialize(pairModelSchema(plugins), json);\n case V1_ClassInstanceType.PURE_LIST:\n return deserialize(pureListModelSchema(plugins), json);\n case V1_ClassInstanceType.RUNTIME_INSTANCE:\n return deserialize(runtimeInstanceModelSchema, json);\n case V1_ClassInstanceType.SERIALIZATION_CONFIG:\n return deserialize(serializationConfigModelSchema, json);\n case V1_ClassInstanceType.TDS_AGGREGATE_VALUE:\n return deserialize(tdsAggregrateValueModelSchema(plugins), json);\n case V1_ClassInstanceType.TDS_COLUMN_INFORMATION:\n return deserialize(tdsColumnInformationModelSchema(plugins), json);\n case V1_ClassInstanceType.TDS_OLAP_AGGREGATION:\n return deserialize(tdsOlapAggregationModelSchema(plugins), json);\n case V1_ClassInstanceType.TDS_OLAP_RANK:\n return deserialize(tdsOlapRankModelSchema(plugins), json);\n case V1_ClassInstanceType.TDS_SORT_INFORMATION:\n return deserialize(tdsSortInformationModelSchema, json);\n case V1_ClassInstanceType.COL_SPEC:\n return deserialize(colSpecModelSchema(plugins), json);\n case V1_ClassInstanceType.COL_SPEC_ARRAY:\n return deserialize(colSpecArrayModelSchema(plugins), json);\n case V1_ClassInstanceType.RELATION_STORE_ACCESSOR:\n return deserialize(relationStoreAccessorModelSchema, json);\n default: {\n const deserializers = plugins.flatMap((plugin) => plugin.V1_getExtraClassInstanceValueProtocolDeserializers?.() ?? []);\n for (const deserializer of deserializers) {\n const protocol = deserializer(json, type, plugins);\n if (protocol) {\n return protocol;\n }\n }\n throw new UnsupportedOperationError(`Can't deserialize value specification of type '${json._type}': no compatible deserializer available from plugins`);\n }\n }\n}\nexport function V1_serializeClassInstanceValue(protocol, plugins) {\n if (protocol instanceof V1_Path) {\n return serialize(pathModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_RootGraphFetchTree) {\n return serialize(rootGraphFetchTreeModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_ExecutionContextInstance) {\n return serialize(executionContextInstanceModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_AggregateValue) {\n return serialize(aggregationValueModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_Pair) {\n return serialize(pairModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_PureList) {\n return serialize(pureListModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_RuntimeInstance) {\n return serialize(runtimeInstanceModelSchema, protocol);\n }\n else if (protocol instanceof V1_SerializationConfig) {\n return serialize(serializationConfigModelSchema, protocol);\n }\n else if (protocol instanceof V1_TDSAggregateValue) {\n return serialize(tdsAggregrateValueModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_TDSColumnInformation) {\n return serialize(tdsColumnInformationModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_TDSOlapAggregation) {\n return serialize(tdsOlapAggregationModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_TDSOlapRank) {\n return serialize(tdsOlapRankModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_TDSSortInformation) {\n return serialize(tdsSortInformationModelSchema, protocol);\n }\n else if (protocol instanceof V1_ColSpec) {\n return serialize(colSpecModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_ColSpecArray) {\n return serialize(colSpecArrayModelSchema(plugins), protocol);\n }\n else if (protocol instanceof V1_RelationStoreAccessor) {\n return serialize(relationStoreAccessorModelSchema, protocol);\n }\n const serializers = plugins.flatMap((plugin) => plugin.V1_getExtraClassInstanceValueProtocolSerializers?.() ?? []);\n for (const serializer of serializers) {\n const json = serializer(protocol, plugins);\n if (json) {\n return json;\n }\n }\n throw new UnsupportedOperationError(`Can't serialize class instance value: no compatible serializer available from plugins`, protocol);\n}\n// ---------------------------------------- Serialization Methods --------------------------------------\nclass V1_ValueSpecificationSerializer {\n plugins = [];\n constructor(plugins) {\n this.plugins = plugins;\n }\n visit_INTERNAL__UnknownValueSpecfication(valueSpecification) {\n return valueSpecification.content;\n }\n visit_Variable(valueSpecification) {\n return serialize(V1_variableModelSchema, valueSpecification);\n }\n visit_Lambda(valueSpecification) {\n return serialize(lambdaModelSchema(this.plugins), valueSpecification);\n }\n visit_KeyExpression(valueSpecification) {\n return serialize(keyExpressionModelSchema(this.plugins), valueSpecification);\n }\n visit_PackageableElementPtr(valueSpecification) {\n return serialize(packageableElementPtrSchema, valueSpecification);\n }\n visit_GenericTypeInstance(valueSpecification) {\n return serialize(genericTypeInstanceSchema, valueSpecification);\n }\n visit_AppliedFunction(valueSpecification) {\n return serialize(appliedFunctionModelSchema(this.plugins), valueSpecification);\n }\n visit_AppliedProperty(valueSpecification) {\n return serialize(appliedPropertyModelSchema(this.plugins), valueSpecification);\n }\n visit_Collection(valueSpecification) {\n return serialize(collectionModelSchema(this.plugins), valueSpecification);\n }\n visit_EnumValue(valueSpecification) {\n return serialize(enumValueModelSchema, valueSpecification);\n }\n visit_CInteger(valueSpecification) {\n return serialize(CIntegerModelSchema, valueSpecification);\n }\n visit_CDecimal(valueSpecification) {\n return serialize(CDecimalModelSchema, valueSpecification);\n }\n visit_CString(valueSpecification) {\n return serialize(CStringModelSchema, valueSpecification);\n }\n visit_CBoolean(valueSpecification) {\n return serialize(CBooleanModelSchema, valueSpecification);\n }\n visit_CByteArray(valueSpecification) {\n return serialize(CByteArrayModelSchema, valueSpecification);\n }\n visit_CFloat(valueSpecification) {\n return serialize(CFloatModelSchema, valueSpecification);\n }\n visit_CDateTime(valueSpecification) {\n return serialize(CDateTimeModelSchema, valueSpecification);\n }\n visit_CStrictDate(valueSpecification) {\n return serialize(CStrictDateModelSchema, valueSpecification);\n }\n visit_CStrictTime(valueSpecification) {\n return serialize(CStrictTimeModelSchema, valueSpecification);\n }\n visit_CLatestDate(valueSpecification) {\n return serialize(CLatestDateModelSchema, valueSpecification);\n }\n visit_ClassInstance(valueSpecification) {\n return serialize(classInstanceModelSchema(this.plugins), valueSpecification);\n }\n}\nexport function V1_deserializeValueSpecification(json, plugins) {\n switch (json._type) {\n case V1_ValueSpecificationType.APPLIED_FUNCTION:\n return deserialize(appliedFunctionModelSchema(plugins), json);\n case V1_ValueSpecificationType.APPLIED_PROPERTY:\n return deserialize(appliedPropertyModelSchema(plugins), json);\n case V1_ValueSpecificationType.VARIABLE:\n return deserialize(V1_variableModelSchema, json);\n case V1_ValueSpecificationType.LAMBDA:\n return deserialize(lambdaModelSchema(plugins), json);\n case V1_ValueSpecificationType.KEY_EXPRESSION:\n return deserialize(keyExpressionModelSchema(plugins), json);\n case V1_ValueSpecificationType.COLLECTION:\n return deserialize(collectionModelSchema(plugins), json);\n case V1_ValueSpecificationType.ENUM_VALUE:\n return deserialize(enumValueModelSchema, json);\n // primitive values\n case V1_ValueSpecificationType.CBOOLEAN:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CBooleanModelSchema, val));\n case V1_ValueSpecificationType.CBYTEARRAY: {\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CByteArrayModelSchema, val));\n }\n case V1_ValueSpecificationType.CDATETIME:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CDateTimeModelSchema, val));\n case V1_ValueSpecificationType.CSTRICTTIME:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CStrictTimeModelSchema, val));\n case V1_ValueSpecificationType.CDECIMAL:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CDecimalModelSchema, val));\n case V1_ValueSpecificationType.CFLOAT:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CFloatModelSchema, val));\n case V1_ValueSpecificationType.CINTEGER:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CIntegerModelSchema, val));\n case V1_ValueSpecificationType.CLATESTDATE:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CLatestDateModelSchema, val));\n case V1_ValueSpecificationType.CSTRICTDATE:\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CStrictDateModelSchema, val));\n case V1_ValueSpecificationType.CSTRING: {\n // This workaround is intended to handle an edge case where CString is sent with empty values\n // we will convert it to an empty string instead\n // See https://github.com/finos/legend-engine/pull/1076\n if (Array.isArray(json.values) &&\n !json.values.length &&\n isPlainObject(json.multiplicity) &&\n json.multiplicity.upperBound === 1) {\n const result = new V1_CString();\n result.value = '';\n return result;\n }\n return deserializePrimitiveValueSpecification(json, plugins, (val) => deserialize(CStringModelSchema, val));\n }\n // class instance\n case V1_ValueSpecificationType.CLASS_INSTANCE:\n return deserialize(classInstanceModelSchema(plugins), json);\n /**\n * NOTE: the following types are here for backward compatibility\n * as some of these are used to be value specifications, but now\n * transformed into class instances\n *\n * @backwardCompatibility\n */\n case V1_ClassInstanceType.PAIR:\n case V1_ClassInstanceType.AGGREGATE_VALUE:\n case V1_ClassInstanceType.EXECUTION_CONTEXT_INSTANCE:\n case V1_ClassInstanceType.PATH:\n case V1_ClassInstanceType.ROOT_GRAPH_FETCH_TREE:\n case V1_ClassInstanceType.PURE_LIST:\n case V1_ClassInstanceType.RUNTIME_INSTANCE:\n case V1_ClassInstanceType.SERIALIZATION_CONFIG:\n case V1_ClassInstanceType.TDS_AGGREGATE_VALUE:\n case V1_ClassInstanceType.TDS_COLUMN_INFORMATION:\n case V1_ClassInstanceType.TDS_OLAP_AGGREGATION:\n case V1_ClassInstanceType.TDS_OLAP_RANK:\n case V1_ClassInstanceType.TDS_SORT_INFORMATION:\n return deserialize(classInstanceModelSchema(plugins), {\n _type: V1_ValueSpecificationType.CLASS_INSTANCE,\n type: json._type,\n value: json,\n });\n // packageable element pointer\n case V1_ValueSpecificationType.HACKED_CLASS: // deprecated\n return deserializeHackedClass(json);\n case V1_ValueSpecificationType.UNIT_TYPE: // deprecated\n case V1_ValueSpecificationType.HACKED_UNIT: // deprecated\n return deserializeHackedUnit(json);\n case V1_ValueSpecificationType.PRIMITIVE_TYPE: // deprecated\n case V1_ValueSpecificationType.ENUM: // deprecated\n case V1_ValueSpecificationType.CLASS: // deprecated\n case V1_ValueSpecificationType.MAPPING_INSTANCE: // deprecated\n case V1_ValueSpecificationType.PACKAGEABLE_ELEMENT_PTR:\n return deserialize(packageableElementPtrSchema, json);\n case V1_ValueSpecificationType.GENERIC_TYPE_INSTANCE:\n return deserialize(genericTypeInstanceSchema, json);\n default:\n throw new UnsupportedOperationError(`Can't deserialize value specification of type '${json._type}'`);\n }\n}\nexport function V1_serializeValueSpecification(protocol, plugins) {\n return protocol.accept_ValueSpecificationVisitor(new V1_ValueSpecificationSerializer(plugins));\n}\n//# sourceMappingURL=V1_ValueSpecificationSerializer.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_DataTypeValueSpecification } from './V1_DataTypeValueSpecification.js';\nexport class V1_EnumValue extends V1_DataTypeValueSpecification {\n fullPath;\n value;\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_EnumValue(this);\n }\n}\n//# sourceMappingURL=V1_EnumValue.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_CDate } from './V1_CDate.js';\nexport class V1_CLatestDate extends V1_CDate {\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CLatestDate(this);\n }\n}\n//# sourceMappingURL=V1_CLatestDate.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_PrimitiveValueSpecification } from './V1_PrimitiveValueSpecification.js';\nexport class V1_CByteArray extends V1_PrimitiveValueSpecification {\n value; // the Base64String transformed from byte[] by Jackson\n accept_ValueSpecificationVisitor(visitor) {\n return visitor.visit_CByteArray(this);\n }\n}\n//# sourceMappingURL=V1_CByteArray.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_AppliedFunction, V1_AppliedProperty, V1_CBoolean, V1_CDateTime, V1_CDecimal, V1_CFloat, V1_CInteger, V1_CStrictDate, V1_CStrictTime, V1_CString, V1_ClassInstance, V1_ColSpec, V1_ColSpecArray, V1_Collection, V1_Lambda, V1_Variable, PRIMITIVE_TYPE, V1_ClassInstanceType, } from '@finos/legend-graph';\nimport { TDSFilter, TDSFilterCondition, TDS_FILTER_GROUP, TDS_FILTER_OPERATION, TDS_AGGREGATION_FUNCTION, } from './TDSRequest.js';\nimport { UnsupportedOperationError, guaranteeIsBoolean, guaranteeIsNumber, guaranteeIsString, guaranteeNonNullable, } from '@finos/legend-shared';\nimport { DEFAULT_VARIABLE_NAME, QUERY_FUNCTION } from '../../Const.js';\nconst getPrimitiveValueSpecification = (type, column) => {\n switch (type) {\n case PRIMITIVE_TYPE.STRING: {\n const stringValue = new V1_CString();\n stringValue.value = guaranteeIsString(column);\n return stringValue;\n }\n case PRIMITIVE_TYPE.BOOLEAN: {\n const booleanValue = new V1_CBoolean();\n booleanValue.value = guaranteeIsBoolean(column);\n return booleanValue;\n }\n case PRIMITIVE_TYPE.NUMBER:\n case PRIMITIVE_TYPE.DECIMAL: {\n const cDecimal = new V1_CDecimal();\n cDecimal.value = guaranteeIsNumber(column);\n return cDecimal;\n }\n case PRIMITIVE_TYPE.INTEGER: {\n const cInteger = new V1_CInteger();\n cInteger.value = guaranteeIsNumber(column);\n return cInteger;\n }\n case PRIMITIVE_TYPE.FLOAT: {\n const cFloat = new V1_CFloat();\n cFloat.value = guaranteeIsNumber(column);\n return cFloat;\n }\n case PRIMITIVE_TYPE.DATE:\n case PRIMITIVE_TYPE.DATETIME: {\n const cDateTime = new V1_CDateTime();\n cDateTime.value = guaranteeIsString(column);\n return cDateTime;\n }\n case PRIMITIVE_TYPE.STRICTDATE: {\n const cStrictDate = new V1_CStrictDate();\n cStrictDate.value = guaranteeIsString(column);\n return cStrictDate;\n }\n case PRIMITIVE_TYPE.STRICTTIME: {\n const cStrictTime = new V1_CStrictTime();\n cStrictTime.value = guaranteeIsString(column);\n return cStrictTime;\n }\n default:\n throw new UnsupportedOperationError(`Unsupported tds column type ${type}`);\n }\n};\nconst updateParentFunction = (expressions, functionName, child) => {\n let newExpressions = [\n guaranteeNonNullable(expressions[0]),\n ];\n newExpressions = newExpressions.concat(child);\n const childFunc = new V1_AppliedFunction();\n childFunc.function = functionName;\n childFunc.parameters = newExpressions;\n expressions[0] = childFunc;\n};\nconst processFilterOperations = (expressions, filters) => {\n if (filters.length === 0) {\n return;\n }\n const filterLambda = new V1_Lambda();\n filters.forEach((filterValue) => {\n const conditions = filterValue.conditions;\n const groupCondition = filterValue.groupOperation;\n const defaultVariable = new V1_Variable();\n defaultVariable.name = DEFAULT_VARIABLE_NAME;\n const conditionExpressions = [];\n conditions.forEach((condition) => {\n const filterCondition = new V1_AppliedFunction();\n const property = new V1_AppliedProperty();\n property.property = filterValue.column;\n property.class = filterValue.columnType;\n property.parameters = [defaultVariable];\n switch (condition.operation) {\n case TDS_FILTER_OPERATION.EQUALS:\n case TDS_FILTER_OPERATION.GREATER_THAN:\n case TDS_FILTER_OPERATION.GREATER_THAN_OR_EQUAL:\n case TDS_FILTER_OPERATION.LESS_THAN:\n case TDS_FILTER_OPERATION.LESS_THAN_OR_EQUAL:\n case TDS_FILTER_OPERATION.CONTAINS:\n case TDS_FILTER_OPERATION.ENDS_WITH:\n case TDS_FILTER_OPERATION.STARTS_WITH: {\n filterCondition.function = condition.operation;\n filterCondition.parameters.push(property);\n filterCondition.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));\n break;\n }\n case TDS_FILTER_OPERATION.BLANK: {\n filterCondition.function = condition.operation;\n filterCondition.parameters.push(property);\n break;\n }\n case TDS_FILTER_OPERATION.NOT_EQUAL: {\n filterCondition.function = QUERY_FUNCTION.NOT;\n const filterConditionFunc = new V1_AppliedFunction();\n filterConditionFunc.function = TDS_FILTER_OPERATION.EQUALS;\n filterConditionFunc.parameters.push(property);\n filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));\n filterCondition.parameters.push(filterConditionFunc);\n break;\n }\n case TDS_FILTER_OPERATION.NOT_BLANK: {\n filterCondition.function = QUERY_FUNCTION.NOT;\n const filterConditionFunc = new V1_AppliedFunction();\n filterConditionFunc.function = TDS_FILTER_OPERATION.BLANK;\n filterConditionFunc.parameters.push(property);\n filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));\n filterCondition.parameters.push(filterConditionFunc);\n break;\n }\n case TDS_FILTER_OPERATION.NOT_CONTAINS: {\n filterCondition.function = QUERY_FUNCTION.NOT;\n const filterConditionFunc = new V1_AppliedFunction();\n filterConditionFunc.function = TDS_FILTER_OPERATION.CONTAINS;\n filterConditionFunc.parameters.push(property);\n filterConditionFunc.parameters.push(getPrimitiveValueSpecification(filterValue.columnType, condition.value));\n filterCondition.parameters.push(filterConditionFunc);\n break;\n }\n default:\n throw new UnsupportedOperationError(`Unsupported filter operation ${condition.operation}`);\n }\n conditionExpressions.push(filterCondition);\n });\n if (conditionExpressions.length > 1) {\n const groupFunc = new V1_AppliedFunction();\n groupFunc.function = groupCondition;\n groupFunc.parameters = conditionExpressions;\n filterLambda.body.push(groupFunc);\n }\n else {\n filterLambda.body = filterLambda.body.concat(conditionExpressions);\n }\n if (filterLambda.body.length > 1) {\n const andFunc = new V1_AppliedFunction();\n andFunc.function = TDS_FILTER_GROUP.AND;\n andFunc.parameters = filterLambda.body;\n filterLambda.body = [andFunc];\n }\n filterLambda.parameters = [defaultVariable];\n });\n updateParentFunction(expressions, QUERY_FUNCTION.FILTER, [filterLambda]);\n};\nconst getAggregationColSpec = (column, functionName, columnType, \n// Temporary. Remove it when we support groupBy with empty aggregations\ncolumnName) => {\n const colSpec = new V1_ColSpec();\n const aggLambda = new V1_Lambda();\n const property = new V1_AppliedProperty();\n property.property = column;\n property.class = columnType;\n const defaultVariable = new V1_Variable();\n defaultVariable.name = DEFAULT_VARIABLE_NAME;\n property.parameters = [defaultVariable];\n aggLambda.body.push(property);\n aggLambda.parameters.push(defaultVariable);\n colSpec.function1 = aggLambda;\n const funcLambda = new V1_Lambda();\n const aggFunc = new V1_AppliedFunction();\n aggFunc.function = functionName;\n const aggVariable = new V1_Variable();\n aggVariable.name = 'agg';\n funcLambda.body.push(aggFunc);\n aggFunc.parameters.push(aggVariable);\n funcLambda.parameters.push(aggVariable);\n colSpec.function2 = funcLambda;\n colSpec.name = columnName ?? column;\n return colSpec;\n};\nconst processGroupByOperations = (expressions, groupByOperation, columns) => {\n if (!groupByOperation.columns.length) {\n return;\n }\n const groupByInstance = new V1_ClassInstance();\n groupByInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;\n const groupByColSpecArray = new V1_ColSpecArray();\n const aggregationColSpecArray = new V1_ColSpecArray();\n const aggregationInstance = new V1_ClassInstance();\n aggregationInstance.type = V1_ClassInstanceType.COL_SPEC_ARRAY;\n if (groupByOperation.groupKeys.length !== groupByOperation.columns.length) {\n const groupKeys = groupByOperation.groupKeys;\n const currentGroupByColumn = groupByOperation.columns[groupKeys.length];\n const columnSpec = new V1_ColSpec();\n columnSpec.name = guaranteeNonNullable(currentGroupByColumn);\n groupByColSpecArray.colSpecs.push(columnSpec);\n // Temporary. Remove it later when we support empty aggregations\n if (groupByOperation.aggregations.length === 0) {\n const column = guaranteeNonNullable(groupByOperation.columns[0]);\n const colSpec = getAggregationColSpec(column, TDS_AGGREGATION_FUNCTION.COUNT, PRIMITIVE_TYPE.STRING, TDS_AGGREGATION_FUNCTION.COUNT);\n aggregationColSpecArray.colSpecs.push(colSpec);\n }\n }\n // Projecting the columns when there is an aggregation because that would end up projecting just the aggregation column\n if (groupByOperation.groupKeys.length === groupByOperation.columns.length &&\n groupByOperation.aggregations.length > 0) {\n const aggColumns = groupByOperation.aggregations.map((agg) => agg.column);\n columns.forEach((column) => {\n if (!aggColumns.includes(column)) {\n const colSpec = new V1_ColSpec();\n colSpec.name = column;\n groupByColSpecArray.colSpecs.push(colSpec);\n }\n });\n }\n groupByOperation.aggregations.forEach((agg) => {\n const colSpec = getAggregationColSpec(agg.column, agg.function, agg.columnType);\n aggregationColSpecArray.colSpecs.push(colSpec);\n });\n groupByInstance.value = groupByColSpecArray;\n aggregationInstance.value = aggregationColSpecArray;\n if (groupByColSpecArray.colSpecs.length !== 0 ||\n aggregationColSpecArray.colSpecs.length !== 0) {\n updateParentFunction(expressions, QUERY_FUNCTION.GROUPBY, [\n groupByInstance,\n aggregationInstance,\n ]);\n }\n};\nconst processSortOperations = (expressions, sortOperations, groupBy) => {\n if (sortOperations.length === 0) {\n return;\n }\n const sortCollection = new V1_Collection();\n sortOperations.forEach((sortValue) => {\n if (groupBy.columns.length === groupBy.groupKeys.length ||\n groupBy.columns.indexOf(sortValue.column) === groupBy.groupKeys.length) {\n const sortFunc = new V1_AppliedFunction();\n sortFunc.function = sortValue.order;\n const instance = new V1_ClassInstance();\n instance.type = V1_ClassInstanceType.COL_SPEC;\n const value = new V1_ColSpec();\n value.name = sortValue.column;\n instance.value = value;\n sortFunc.parameters.push(instance);\n sortCollection.values.push(sortFunc);\n }\n });\n updateParentFunction(expressions, QUERY_FUNCTION.SORT, [sortCollection]);\n};\nconst updateExpressionWithSlice = (expressions, start, end) => {\n if (start === undefined || end === undefined) {\n return;\n }\n const startValue = new V1_CInteger();\n startValue.value = start;\n const endValue = new V1_CInteger();\n endValue.value = end;\n const funcBody = expressions[0];\n let currentExpression = funcBody;\n while (currentExpression instanceof V1_AppliedFunction) {\n if (currentExpression.function === QUERY_FUNCTION.FROM) {\n if (currentExpression.parameters[0] instanceof V1_AppliedFunction &&\n currentExpression.parameters[0].function === QUERY_FUNCTION.SLICE) {\n currentExpression.parameters[0].parameters = [\n guaranteeNonNullable(currentExpression.parameters[0].parameters[0]),\n startValue,\n endValue,\n ];\n break;\n }\n const sliceFunction = new V1_AppliedFunction();\n sliceFunction.function = QUERY_FUNCTION.SLICE;\n sliceFunction.parameters = [\n guaranteeNonNullable(currentExpression.parameters[0]),\n startValue,\n endValue,\n ];\n currentExpression.parameters[0] = sliceFunction;\n break;\n }\n currentExpression = currentExpression.parameters[0];\n }\n};\nexport const buildLambdaExpressions = (funcBody, request, isPaginationEnabled) => {\n const expressions = [funcBody];\n if (isPaginationEnabled) {\n updateExpressionWithSlice(expressions, request.startRow, request.endRow);\n }\n const groupBy = request.groupBy;\n for (let index = 0; index < groupBy.groupKeys.length; index++) {\n const groupFilter = new TDSFilter(guaranteeNonNullable(groupBy.columns.at(index)), PRIMITIVE_TYPE.STRING, [\n new TDSFilterCondition(TDS_FILTER_OPERATION.EQUALS, groupBy.groupKeys.at(index)),\n ], TDS_FILTER_GROUP.AND);\n request.filter.push(groupFilter);\n }\n processFilterOperations(expressions, request.filter);\n processGroupByOperations(expressions, request.groupBy, request.columns);\n processSortOperations(expressions, request.sort, request.groupBy);\n const lambda = new V1_Lambda();\n lambda.body = expressions;\n return lambda;\n};\n//# sourceMappingURL=TDSLambdaBuilder.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable, isString, uuid } from '@finos/legend-shared';\n// Core\nexport var BuilderType;\n(function (BuilderType) {\n BuilderType[\"CLASS_BUILDER\"] = \"classBuilder\";\n BuilderType[\"TDS_BUILDER\"] = \"tdsBuilder\";\n BuilderType[\"JSON_BUILDER\"] = \"json\";\n})(BuilderType || (BuilderType = {}));\nexport var ExecutionActivityType;\n(function (ExecutionActivityType) {\n ExecutionActivityType[\"RELATIONAL\"] = \"relational\";\n ExecutionActivityType[\"RELATIONAL_EXECUTION_ACTIVITY\"] = \"RelationalExecutionActivity\";\n ExecutionActivityType[\"AGGREGATION_AWARE_ACTIVITY\"] = \"aggregationAware\";\n})(ExecutionActivityType || (ExecutionActivityType = {}));\n// TODO: Refactor to use external format (https://github.com/finos/legend-studio/issues/732)\nexport var EXECUTION_SERIALIZATION_FORMAT;\n(function (EXECUTION_SERIALIZATION_FORMAT) {\n EXECUTION_SERIALIZATION_FORMAT[\"CSV\"] = \"CSV\";\n})(EXECUTION_SERIALIZATION_FORMAT || (EXECUTION_SERIALIZATION_FORMAT = {}));\nexport class ResultBuilder {\n _type;\n constructor(type) {\n this._type = type;\n }\n}\n// ------------------------------------------ Execution Activities -----------------------------------------------\nexport class ExecutionActivities {\n}\nexport class RelationalExecutionActivities extends ExecutionActivities {\n sql;\n comment;\n constructor(sql) {\n super();\n this.sql = sql;\n }\n}\nexport class AggregationAwareActivities extends ExecutionActivities {\n rewrittenQuery;\n}\nexport class UnknownExecutionActivities extends ExecutionActivities {\n values;\n constructor(content) {\n super();\n this.values = content;\n }\n}\nexport class ExecutionResult {\n builder;\n activities;\n}\n// ------------------------------------------ Model -----------------------------------------------\nexport class JsonBuilder {\n _type = BuilderType.JSON_BUILDER;\n}\nexport class JsonExecutionResult extends ExecutionResult {\n values;\n}\nexport class RawExecutionResult extends ExecutionResult {\n value;\n constructor(content) {\n super();\n this.value = content;\n }\n}\n// ------------------------------------------ TDS -----------------------------------------------\n/**\n * TODO?: maybe we converge to use TDSColumn\n *\n * Since here, we're building out the result builder config, we don't need\n * to fully resolve all the references, hence we have this simplified version of TDSColumn\n */\nexport class INTERNAL__TDSColumn {\n name;\n type;\n relationalType;\n doc;\n}\nexport class TDSBuilder extends ResultBuilder {\n columns = [];\n constructor() {\n super(BuilderType.TDS_BUILDER);\n }\n}\nexport class TDSRow {\n values = [];\n}\nexport class TabularDataSet {\n columns = [];\n rows = [];\n}\nexport class TDSExecutionResult extends ExecutionResult {\n _UUID = uuid();\n builder = new TDSBuilder();\n result = new TabularDataSet();\n}\nexport class ClassBuilder extends ResultBuilder {\n _type = BuilderType.CLASS_BUILDER;\n}\nexport class ClassExecutionResult extends ExecutionResult {\n builder = new ClassBuilder(BuilderType.CLASS_BUILDER);\n objects;\n}\nexport const getTDSRowRankByColumnInAsc = (a, b, colIndex) => {\n const a1 = a.values[colIndex];\n const b1 = b.values[colIndex];\n if (a1 === null || a1 === undefined) {\n return -1;\n }\n if (b1 === null || b1 === undefined) {\n return 1;\n }\n if (isString(a1) && isString(b1)) {\n return a1.localeCompare(b1);\n }\n else {\n return Number(guaranteeNonNullable(a1)) - Number(guaranteeNonNullable(b1));\n }\n};\n//# sourceMappingURL=ExecutionResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, custom, list, optional, primitive, raw, SKIP, } from 'serializr';\nimport { SerializationFactory, usingModelSchema, } from '@finos/legend-shared';\nimport { ExecutionActivityType } from '../../../../../../graph-manager/action/execution/ExecutionResult.js';\nexport class V1_ResultBuilder {\n static builderSerialization = new SerializationFactory(createModelSchema(V1_ResultBuilder, {\n _type: primitive(),\n }));\n}\nexport class V1_ExecutionActivities {\n}\nexport class V1_RelationalExecutionActivities extends V1_ExecutionActivities {\n sql;\n comment;\n static serialization = new SerializationFactory(createModelSchema(V1_RelationalExecutionActivities, {\n sql: primitive(),\n comment: optional(primitive()),\n }));\n}\nexport class V1_AggregationAwareActivities extends V1_ExecutionActivities {\n rewrittenQuery;\n static serialization = new SerializationFactory(createModelSchema(V1_AggregationAwareActivities, {\n rewrittenQuery: primitive(),\n }));\n}\nexport class V1_ExecutionResult {\n builder;\n activities;\n}\nexport class V1_UnknownExecutionActivity extends V1_ExecutionActivities {\n content;\n constructor(content) {\n super();\n this.content = content;\n }\n}\nexport class V1_JsonExecutionResult extends V1_ExecutionResult {\n values;\n static serialization = new SerializationFactory(createModelSchema(V1_JsonExecutionResult, {\n _type: primitive(),\n builder: usingModelSchema(V1_ResultBuilder.builderSerialization.schema),\n values: raw(),\n }));\n}\n/**\n * TODO?: maybe we converge to use V1_TDSColumn\n *\n * Since here, we're building out the result builder config, we don't need\n * to fully resolve all the references, hence we have this simplified version of V1_TDSColumn\n */\nexport class V1_INTERNAL__TDSColumn {\n name;\n doc;\n type;\n relationalType;\n static serialization = new SerializationFactory(createModelSchema(V1_INTERNAL__TDSColumn, {\n name: primitive(),\n doc: optional(primitive()),\n type: optional(primitive()),\n relationalType: optional(primitive()),\n }));\n}\nexport class V1_TDSBuilder extends V1_ResultBuilder {\n columns = [];\n static serialization = new SerializationFactory(createModelSchema(V1_TDSBuilder, {\n _type: primitive(),\n columns: list(usingModelSchema(V1_INTERNAL__TDSColumn.serialization.schema)),\n }));\n}\nfunction V1_serializeExecutionActivities(value) {\n switch (value._type) {\n case ExecutionActivityType.RELATIONAL:\n return V1_RelationalExecutionActivities.serialization.fromJson(value);\n case ExecutionActivityType.RELATIONAL_EXECUTION_ACTIVITY:\n return V1_RelationalExecutionActivities.serialization.fromJson(value);\n case ExecutionActivityType.AGGREGATION_AWARE_ACTIVITY:\n return V1_AggregationAwareActivities.serialization.fromJson(value);\n default:\n return new V1_UnknownExecutionActivity(value);\n }\n}\nexport class V1_TDSExecutionResult extends V1_ExecutionResult {\n result;\n static serialization = new SerializationFactory(createModelSchema(V1_TDSExecutionResult, {\n builder: usingModelSchema(V1_TDSBuilder.serialization.schema),\n activities: list(custom(() => SKIP, V1_serializeExecutionActivities)),\n result: raw(),\n }));\n}\nexport class V1_ClassExecutionResult extends V1_ExecutionResult {\n objects;\n static serialization = new SerializationFactory(createModelSchema(V1_ClassExecutionResult, {\n builder: usingModelSchema(V1_ResultBuilder.builderSerialization.schema),\n activities: list(custom(() => SKIP, V1_serializeExecutionActivities)),\n objects: raw(),\n }));\n}\nexport class V1_RawExecutionResult extends V1_ExecutionResult {\n value;\n constructor(value) {\n super();\n this.value = value;\n }\n}\n//# sourceMappingURL=V1_ExecutionResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { V1_ExecutionResult } from './V1_ExecutionResult.js';\nexport class V1_INTERNAL__UnknownExecutionResult extends V1_ExecutionResult {\n content;\n}\n//# sourceMappingURL=V1_INTERNAL__UnknownExecutionResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ExecutionResult } from './ExecutionResult.js';\nexport class INTERNAL__UnknownExecutionResult extends ExecutionResult {\n content;\n}\n//# sourceMappingURL=INTERNAL__UnknownExecutionResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { guaranteeNonNullable, UnsupportedOperationError, isString, isNumber, isBoolean, } from '@finos/legend-shared';\nimport { TDSRow, ClassExecutionResult, JsonExecutionResult, TDSExecutionResult, TDSBuilder, INTERNAL__TDSColumn, RawExecutionResult, RelationalExecutionActivities, UnknownExecutionActivities, AggregationAwareActivities, BuilderType, } from '../../../../../../graph-manager/action/execution/ExecutionResult.js';\nimport { V1_ClassExecutionResult, V1_JsonExecutionResult, V1_TDSExecutionResult, V1_RawExecutionResult, V1_RelationalExecutionActivities, V1_UnknownExecutionActivity, V1_AggregationAwareActivities, } from './V1_ExecutionResult.js';\nimport { V1_INTERNAL__UnknownExecutionResult } from './V1_INTERNAL__UnknownExecutionResult.js';\nimport { INTERNAL__UnknownExecutionResult } from '../../../../../action/execution/INTERNAL__UnknownExecutionResult.js';\nconst buildExecutionActivities = (protocol) => {\n if (protocol instanceof V1_RelationalExecutionActivities) {\n const metamodel = new RelationalExecutionActivities(protocol.sql);\n metamodel.comment = protocol.comment;\n return metamodel;\n }\n else if (protocol instanceof V1_AggregationAwareActivities) {\n const metamodel = new AggregationAwareActivities();\n metamodel.rewrittenQuery = guaranteeNonNullable(protocol.rewrittenQuery, `Aggregation aware execution activities 'rewritenQuery' field is missing`);\n return metamodel;\n }\n else if (protocol instanceof V1_UnknownExecutionActivity) {\n const metamodel = new UnknownExecutionActivities(protocol);\n return metamodel;\n }\n throw new UnsupportedOperationError(`Can't build execution activities`, protocol);\n};\nconst buildJSONExecutionResult = (protocol) => {\n const metamodel = new JsonExecutionResult();\n metamodel.values = guaranteeNonNullable(protocol.values, `JSON execution result 'values' field is missing`);\n return metamodel;\n};\nconst INTERNAL__buildTDSColumn = (protocol) => {\n const metamodel = new INTERNAL__TDSColumn();\n metamodel.name = guaranteeNonNullable(protocol.name, `TDS column 'name' field is missing`);\n metamodel.type = protocol.type;\n metamodel.doc = protocol.doc;\n metamodel.relationalType = protocol.relationalType;\n return metamodel;\n};\nconst buildTDSBuilder = (protocol) => {\n const builder = new TDSBuilder();\n builder.columns = protocol.columns.map(INTERNAL__buildTDSColumn);\n return builder;\n};\nconst buildTDSExecutionResult = (protocol) => {\n const metamodel = new TDSExecutionResult();\n metamodel.builder = buildTDSBuilder(guaranteeNonNullable(protocol.builder, `TDS execution result 'builder' field is missing`));\n metamodel.activities = protocol.activities?.map(buildExecutionActivities);\n metamodel.result.columns = protocol.result.columns;\n metamodel.result.rows = protocol.result.rows.map((_row) => {\n const row = new TDSRow();\n row.values = _row.values;\n return row;\n });\n return metamodel;\n};\nconst buildClassExecutionResult = (protocol) => {\n const metamodel = new ClassExecutionResult();\n metamodel.objects = guaranteeNonNullable(protocol.objects, `Class execution result 'objects' field is missing`);\n metamodel.activities = protocol.activities?.map(buildExecutionActivities);\n return metamodel;\n};\nexport const V1_buildExecutionResult = (protocol) => {\n if (protocol instanceof V1_INTERNAL__UnknownExecutionResult) {\n const metamodel = new INTERNAL__UnknownExecutionResult();\n metamodel.content = protocol.content;\n return metamodel;\n }\n else if (protocol instanceof V1_ClassExecutionResult) {\n return buildClassExecutionResult(protocol);\n }\n else if (protocol instanceof V1_TDSExecutionResult) {\n return buildTDSExecutionResult(protocol);\n }\n else if (protocol instanceof V1_JsonExecutionResult) {\n return buildJSONExecutionResult(protocol);\n }\n else if (protocol instanceof V1_RawExecutionResult) {\n return new RawExecutionResult(protocol.value);\n }\n throw new UnsupportedOperationError(`Can't build execution result`, protocol);\n};\nexport const V1_serializeExecutionResult = (json) => {\n if (json === null || isString(json) || isNumber(json) || isBoolean(json)) {\n return new V1_RawExecutionResult(json);\n }\n switch (json.builder?._type) {\n case BuilderType.CLASS_BUILDER:\n return V1_ClassExecutionResult.serialization.fromJson(json);\n case BuilderType.TDS_BUILDER:\n return V1_TDSExecutionResult.serialization.fromJson(json);\n case BuilderType.JSON_BUILDER:\n return V1_JsonExecutionResult.serialization.fromJson(json);\n default: {\n // Fall back to create unknown stub if not supported\n const protocol = new V1_INTERNAL__UnknownExecutionResult();\n protocol.content = json;\n return protocol;\n }\n }\n};\n//# sourceMappingURL=V1_ExecutionHelper.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, optional, primitive } from 'serializr';\nimport { SerializationFactory, usingModelSchema } from '@finos/legend-shared';\nimport { V1_sourceInformationSerialization } from '../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js';\nexport var V1_EngineErrorType;\n(function (V1_EngineErrorType) {\n V1_EngineErrorType[\"COMPILATION\"] = \"COMPILATION\";\n V1_EngineErrorType[\"PARSER\"] = \"PARSER\";\n})(V1_EngineErrorType || (V1_EngineErrorType = {}));\nexport class V1_EngineError {\n message = '';\n errorType;\n sourceInformation;\n static serialization = new SerializationFactory(createModelSchema(V1_EngineError, {\n errorType: optional(primitive()),\n message: primitive(),\n sourceInformation: usingModelSchema(V1_sourceInformationSerialization.schema),\n }));\n}\n//# sourceMappingURL=V1_EngineError.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, optional, primitive } from 'serializr';\nimport { SerializationFactory, usingModelSchema } from '@finos/legend-shared';\nimport { V1_EngineError } from '../../engine/V1_EngineError.js';\nimport { V1_sourceInformationSerialization } from '../../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js';\nexport class V1_ParserError extends V1_EngineError {\n static serialization = new SerializationFactory(createModelSchema(V1_ParserError, {\n errorType: optional(primitive()),\n message: primitive(),\n sourceInformation: usingModelSchema(V1_sourceInformationSerialization.schema),\n }));\n}\n//# sourceMappingURL=V1_ParserError.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ApplicationError } from '@finos/legend-shared';\nimport { makeObservable, observable } from 'mobx';\nexport class EngineError extends ApplicationError {\n sourceInformation;\n}\nexport class ParserError extends EngineError {\n}\nexport class CompilationError extends EngineError {\n constructor(message) {\n super(message);\n makeObservable(this, {\n sourceInformation: observable,\n });\n }\n}\nexport class ExternalFormatError extends CompilationError {\n}\n//# sourceMappingURL=EngineError.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createModelSchema, primitive } from 'serializr';\nimport { SerializationFactory } from '@finos/legend-shared';\nexport class CompletionItem {\n display;\n completion;\n static serialization = new SerializationFactory(createModelSchema(CompletionItem, {\n display: primitive(),\n completion: primitive(),\n }));\n}\n//# sourceMappingURL=CompletionResult.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { REPLServerClient } from '../server/REPLServerClient.js';\nimport { NetworkClient, assertErrorThrown, LogEvent, guaranteeNonNullable, guaranteeType, ActionState, HttpStatus, NetworkClientError, } from '@finos/legend-shared';\nimport { flow, flowResult, makeObservable, observable } from 'mobx';\nimport { REPLGridServerResult } from '../components/grid/REPLGridServerResult.js';\nimport { LEGEND_APPLICATION_REPL_SETTING_KEY, LEGEND_REPL_EVENT, } from '../Const.js';\nimport { REPLGridState } from './REPLGridState.js';\nimport { buildLambdaExpressions } from '../components/grid/TDSLambdaBuilder.js';\nimport { TDSExecutionResult, V1_Lambda, V1_buildExecutionResult, V1_deserializeValueSpecification, V1_serializeExecutionResult, V1_serializeValueSpecification, V1_ParserError, ParserError, SourceInformation, } from '@finos/legend-graph';\nimport { CompletionItem } from './CompletionResult.js';\nimport { languages as monacoLanguagesAPI, } from 'monaco-editor';\nexport class REPLGridClientStore {\n applicationStore;\n client;\n replGridState;\n executeAction = ActionState.create();\n constructor(applicationStore) {\n makeObservable(this, {\n replGridState: observable,\n executeAction: observable,\n getREPLGridServerResult: flow,\n getInitialQueryLambda: flow,\n getInitialREPLGridServerResult: flow,\n getLicenseKey: flow,\n executeLambda: flow,\n parseQuery: flow,\n });\n this.applicationStore = applicationStore;\n this.client = new REPLServerClient(new NetworkClient({\n baseUrl: this.applicationStore.config.useDynamicREPLServer\n ? window.location.origin +\n this.applicationStore.config.baseAddress.replace('/repl/', '')\n : this.applicationStore.config.replUrl,\n }));\n const isPaginationEnabled = applicationStore.settingService.getBooleanValue(LEGEND_APPLICATION_REPL_SETTING_KEY.PAGINATION) ?? true;\n this.replGridState = new REPLGridState(isPaginationEnabled);\n }\n *getREPLGridServerResult(tdsRequest) {\n try {\n const isSubQuery = tdsRequest.groupBy.groupKeys.length !== 0;\n const lambda = buildLambdaExpressions(guaranteeNonNullable(this.replGridState.initialQueryLambda?.body[0]), tdsRequest, this.replGridState.isPaginationEnabled);\n const resultObj = (yield flowResult(this.client.getREPLGridServerResult(V1_serializeValueSpecification(lambda, []))));\n const replGridResult = REPLGridServerResult.serialization.fromJson(resultObj);\n const tdsResult = JSON.parse(replGridResult.result);\n this.replGridState.setCurrentResult(guaranteeType(V1_buildExecutionResult(V1_serializeExecutionResult(tdsResult)), TDSExecutionResult));\n if (isSubQuery) {\n this.replGridState.setCurrentSubQuery(replGridResult.currentQuery);\n }\n else {\n this.replGridState.queryEditorState.setQuery(replGridResult.currentQuery.substring(1));\n this.replGridState.setCurrentSubQuery(undefined);\n }\n }\n catch (error) {\n assertErrorThrown(error);\n this.applicationStore.notificationService.notifyError(error);\n this.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.FETCH_TDS_FAILURE), error);\n }\n }\n async getTypeaheadResults(position, model) {\n try {\n const textUntilPosition = model.getValueInRange({\n startLineNumber: 1,\n startColumn: 1,\n endLineNumber: position.lineNumber,\n endColumn: position.column,\n });\n const resultObj = await this.client.getTypeaheadResults(textUntilPosition);\n const result = resultObj.map((res) => CompletionItem.serialization.fromJson(res));\n const currentWord = model.getWordUntilPosition(position);\n return result.map((res) => ({\n label: res.display,\n kind: monacoLanguagesAPI.CompletionItemKind.Text,\n range: {\n startLineNumber: position.lineNumber,\n startColumn: currentWord.startColumn + 1,\n endLineNumber: position.lineNumber,\n endColumn: currentWord.endColumn + 1,\n },\n insertText: res.completion,\n }));\n }\n catch (e) {\n return [];\n }\n }\n *executeLambda() {\n try {\n this.executeAction.inProgress();\n const resultObj = (yield this.client.executeLambda(this.replGridState.queryEditorState.query, this.replGridState.isPaginationEnabled));\n const replGridResult = REPLGridServerResult.serialization.fromJson(resultObj);\n const tdsResultObj = JSON.parse(replGridResult.result);\n const tdsResult = guaranteeType(V1_buildExecutionResult(V1_serializeExecutionResult(tdsResultObj)), TDSExecutionResult);\n this.replGridState.setInitialResult(tdsResult);\n this.replGridState.queryEditorState.setQuery(replGridResult.currentQuery.substring(1));\n this.replGridState.setCurrentSubQuery(undefined);\n this.replGridState.setColumns(tdsResult.result.columns);\n yield flowResult(this.getInitialQueryLambda());\n this.executeAction.complete();\n }\n catch (error) {\n this.executeAction.fail();\n assertErrorThrown(error);\n this.applicationStore.notificationService.notifyError(error);\n this.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.FETCH_TDS_FAILURE), error);\n }\n }\n *parseQuery() {\n try {\n this.replGridState.queryEditorState.setParserError(undefined);\n yield flowResult(this.client.parseQuery(`|${this.replGridState.queryEditorState.query}`));\n }\n catch (error) {\n assertErrorThrown(error);\n if (error instanceof NetworkClientError &&\n error.response.status === HttpStatus.BAD_REQUEST) {\n const protocol = V1_ParserError.serialization.fromJson(error.payload);\n const parserError = new ParserError(protocol.message);\n if (protocol.sourceInformation) {\n parserError.sourceInformation = new SourceInformation(protocol.sourceInformation.sourceId, protocol.sourceInformation.startLine, protocol.sourceInformation.startColumn, protocol.sourceInformation.endLine, protocol.sourceInformation.endColumn);\n }\n this.replGridState.queryEditorState.setParserError(parserError);\n }\n }\n }\n *getInitialQueryLambda() {\n const lambdaObj = (yield this.client.getIntialQueryLambda());\n const lambda = V1_deserializeValueSpecification(lambdaObj, []);\n if (lambda instanceof V1_Lambda) {\n this.replGridState.setInitialQueryLambda(lambda);\n }\n }\n *getInitialREPLGridServerResult() {\n try {\n this.executeAction.inProgress();\n if (!this.replGridState.licenseKey) {\n yield flowResult(this.getLicenseKey());\n }\n yield flowResult(this.getInitialQueryLambda());\n const resultObj = (yield this.client.getInitialREPLGridServerResult(this.replGridState.isPaginationEnabled));\n const replGridResult = REPLGridServerResult.serialization.fromJson(resultObj);\n const tdsResultObj = JSON.parse(replGridResult.result);\n const tdsResult = guaranteeType(V1_buildExecutionResult(V1_serializeExecutionResult(tdsResultObj)), TDSExecutionResult);\n this.replGridState.setInitialResult(tdsResult);\n this.replGridState.queryEditorState.setQuery(replGridResult.currentQuery.substring(1));\n this.replGridState.setCurrentSubQuery(undefined);\n this.replGridState.setColumns(tdsResult.result.columns);\n this.executeAction.complete();\n }\n catch (error) {\n this.executeAction.fail();\n assertErrorThrown(error);\n this.applicationStore.notificationService.notifyError(error);\n this.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.FETCH_TDS_FAILURE), error);\n }\n }\n *getLicenseKey() {\n const licenseKey = (yield this.client.getLicenseKey());\n this.replGridState.setLicenseKey(licenseKey);\n }\n}\n//# sourceMappingURL=REPLGridClientStore.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContext, useContext } from 'react';\nimport { useLocalObservable } from 'mobx-react-lite';\nimport { REPLGridClientStore } from '../stores/REPLGridClientStore.js';\nimport { guaranteeNonNullable } from '@finos/legend-shared';\nimport { useApplicationStore } from '@finos/legend-application';\nconst EditorStoreContext = createContext(undefined);\nexport const REPLGridClientStoreProvider = ({ children, }) => {\n const applicationStore = useApplicationStore();\n const store = useLocalObservable(() => new REPLGridClientStore(applicationStore));\n return (_jsx(EditorStoreContext.Provider, { value: store, children: children }));\n};\nexport const useREPLGridClientStore = () => guaranteeNonNullable(useContext(EditorStoreContext), `Can't find editor store in context`);\nexport const withEditorStore = (WrappedComponent) => function WithEditorStore() {\n return (_jsx(REPLGridClientStoreProvider, { children: _jsx(WrappedComponent, {}) }));\n};\n//# sourceMappingURL=REPLGridClientStoreProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AgGridReact, } from '@ag-grid-community/react';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { ModuleRegistry } from '@ag-grid-community/core';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport { RowGroupingModule } from '@ag-grid-enterprise/row-grouping';\nimport { MenuModule } from '@ag-grid-enterprise/menu';\nimport { getDefaultColumnDefintions } from '../components/grid/GridUtils.js';\nimport { LicenseManager } from '@ag-grid-enterprise/core';\nconst communityModules = [ClientSideRowModelModule];\nconst enterpriseModules = [\n ServerSideRowModelModule,\n RowGroupingModule,\n MenuModule,\n];\nconst allModules = communityModules.concat(enterpriseModules);\nexport function AgGridComponent(props) {\n if (props.licenseKey) {\n LicenseManager.setLicenseKey(props.licenseKey);\n }\n return (_jsx(AgGridReact, { rowGroupPanelShow: 'always', suppressBrowserResizeObserver: true, suppressScrollOnNewData: true, alwaysMultiSort: true, rowModelType: 'serverSide', ...props, defaultColDef: getDefaultColumnDefintions(), modules: allModules }));\n}\nexport const configureAgGridComponent = () => {\n ModuleRegistry.registerModules([ClientSideRowModelModule, RowGroupingModule]);\n};\n//# sourceMappingURL=AgGrid.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TDSGroupby, TDSAggregation, TDSFilter, TDSRequest, TDSSort, TDSFilterCondition, TDS_FILTER_GROUP, } from './TDSRequest.js';\nimport { guaranteeNonNullable, assertErrorThrown, LogEvent, } from '@finos/legend-shared';\nimport { LEGEND_REPL_EVENT } from '../../Const.js';\nimport { getTDSRowData, getTDSSortOrder, getTDSFilterOperation, getAggregationFunction, getFilterColumnType, } from './GridUtils.js';\nimport { flow, flowResult, makeObservable } from 'mobx';\nexport class ServerSideDataSource {\n executions = 0;\n rowData = [];\n columns = [];\n editorStore;\n constructor(rowData, columns, editorStore) {\n makeObservable(this, {\n fetchRows: flow,\n });\n this.rowData = rowData ?? [];\n this.columns = columns ?? [];\n this.editorStore = editorStore;\n }\n *fetchRows(params) {\n try {\n if (this.executions > 0) {\n if (this.editorStore) {\n const request = this.extractRequest(params);\n if (request) {\n yield flowResult(this.editorStore.getREPLGridServerResult(request));\n const result = this.editorStore.replGridState.currentResult;\n const rowData = getTDSRowData(guaranteeNonNullable(result).result);\n params.success({ rowData: rowData });\n }\n else {\n params.fail();\n }\n }\n }\n else {\n params.success({ rowData: this.rowData });\n }\n this.executions++;\n }\n catch (error) {\n assertErrorThrown(error);\n this.editorStore?.applicationStore.notificationService.notifyError(error);\n this.editorStore?.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.FETCH_TDS_FAILURE), error);\n }\n }\n getRows(params) {\n this.fetchRows(params);\n }\n extractRequest(params) {\n try {\n const request = params.request;\n const startRow = request.startRow;\n const endRow = request.endRow;\n const columns = params.columnApi.getColumns()?.map((c) => c.getColId());\n const sort = request.sortModel.map((i) => new TDSSort(i.colId, getTDSSortOrder(i.sort)));\n const aggregations = request.valueCols.map((v) => {\n const colType = this.columns.find((c) => c.name === v.field)?.type;\n return new TDSAggregation(guaranteeNonNullable(v.field), colType, getAggregationFunction(guaranteeNonNullable(v.aggFunc)));\n });\n const groupBy = new TDSGroupby(request.rowGroupCols.map((r) => r.id), request.groupKeys, aggregations);\n const filter = [];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const filterModel = request.filterModel;\n if (filterModel) {\n Object.keys(filterModel).forEach((key) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const item = filterModel[key];\n const conditions = [];\n const colType = getFilterColumnType(item.filterType);\n if (item.filter === undefined && item.conditions) {\n item.conditions.forEach((condition) => conditions.push(new TDSFilterCondition(getTDSFilterOperation(condition.type), condition.filter)));\n }\n else {\n conditions.push(new TDSFilterCondition(getTDSFilterOperation(item.type), item.filter));\n }\n filter.push(new TDSFilter(key, colType, conditions, item.operator === 'OR'\n ? TDS_FILTER_GROUP.OR\n : TDS_FILTER_GROUP.AND));\n });\n }\n const tdsRequest = new TDSRequest(columns ?? [], filter, sort, groupBy, startRow, endRow);\n return tdsRequest;\n }\n catch (error) {\n assertErrorThrown(error);\n this.editorStore?.applicationStore.notificationService.notifyError(error);\n this.editorStore?.applicationStore.logService.error(LogEvent.create(LEGEND_REPL_EVENT.BUILD_TDS_EQUEST_FAILURE), error);\n return undefined;\n }\n }\n}\n//# sourceMappingURL=ServerSideDataSource.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useState, useRef, useEffect } from 'react';\nimport { editor as monacoEditorAPI } from 'monaco-editor';\nimport { disposeCodeEditor, getBaseCodeEditorOptions, resetLineNumberGutterWidth, getCodeEditorValue, normalizeLineEnding, setErrorMarkers, clearMarkers, } from './CodeEditorUtils.js';\nimport { DEFAULT_TAB_SIZE, useApplicationStore, } from '@finos/legend-application';\nimport { CODE_EDITOR_THEME } from './CodeEditorTheme.js';\nimport { clsx, WordWrapIcon } from '@finos/legend-art';\nexport const CodeEditor = (props) => {\n const { inputValue, updateInput, lightTheme, language, isReadOnly, hideMinimap, hideGutter, hidePadding, hideActionBar, lineToScroll, extraEditorOptions, error, } = props;\n const applicationStore = useApplicationStore();\n const [editor, setEditor] = useState();\n const [isWordWrap, setIsWordWrap] = useState(false);\n const onDidChangeModelContentEventDisposer = useRef(undefined);\n /**\n * NOTE: we want to normalize line ending here since if the original\n * input value includes CR '\\r' character, it will get normalized, calling\n * the updateInput method and cause a rerender. With the way we setup\n * `onChange` method, React will warn about `setState` being called in\n * `render` method.\n * See https://github.com/finos/legend-studio/issues/608\n */\n const value = normalizeLineEnding(inputValue);\n const textInputRef = useRef(null);\n const toggleWordWrap = () => {\n const updatedWordWrap = !isWordWrap;\n setIsWordWrap(updatedWordWrap);\n editor?.updateOptions({\n wordWrap: updatedWordWrap ? 'on' : 'off',\n });\n };\n useEffect(() => {\n if (!editor && textInputRef.current) {\n const element = textInputRef.current;\n const _editor = monacoEditorAPI.create(element, {\n ...getBaseCodeEditorOptions(),\n theme: applicationStore.layoutService\n .TEMPORARY__isLightColorThemeEnabled\n ? lightTheme ?? CODE_EDITOR_THEME.BUILT_IN__VSCODE_LIGHT\n : CODE_EDITOR_THEME.DEFAULT_DARK,\n // layout\n glyphMargin: !hidePadding,\n padding: !hidePadding ? { top: 20, bottom: 20 } : { top: 0, bottom: 0 },\n formatOnType: true,\n formatOnPaste: true,\n });\n setEditor(_editor);\n }\n }, [applicationStore, lightTheme, hidePadding, editor]);\n useEffect(() => {\n if (editor) {\n resetLineNumberGutterWidth(editor);\n const model = editor.getModel();\n if (model) {\n monacoEditorAPI.setModelLanguage(model, language);\n }\n }\n }, [editor, language]);\n useEffect(() => {\n if (editor && lineToScroll !== undefined) {\n editor.revealLineInCenter(lineToScroll);\n }\n }, [editor, lineToScroll]);\n if (editor) {\n // dispose the old editor content setter in case the `updateInput` handler changes\n // for a more extensive note on this, see `LambdaEditor`\n onDidChangeModelContentEventDisposer.current?.dispose();\n onDidChangeModelContentEventDisposer.current =\n editor.onDidChangeModelContent(() => {\n const currentVal = getCodeEditorValue(editor);\n if (currentVal !== value) {\n updateInput?.(currentVal);\n }\n });\n // Set the text value and editor options\n const currentValue = getCodeEditorValue(editor);\n if (currentValue !== value) {\n editor.setValue(value);\n }\n editor.updateOptions({\n readOnly: Boolean(isReadOnly),\n minimap: { enabled: !hideMinimap },\n // Hide the line number gutter\n // See https://github.com/microsoft/vscode/issues/30795\n ...(hideGutter\n ? {\n glyphMargin: !hidePadding,\n folding: false,\n lineNumbers: 'off',\n lineDecorationsWidth: 0,\n }\n : {}),\n ...(extraEditorOptions ?? {}),\n });\n const model = editor.getModel();\n model?.updateOptions({ tabSize: DEFAULT_TAB_SIZE });\n if (model) {\n if (error?.sourceInformation) {\n setErrorMarkers(model, [\n {\n message: error.message,\n startLineNumber: error.sourceInformation.startLine,\n startColumn: error.sourceInformation.startColumn,\n endLineNumber: error.sourceInformation.endLine,\n endColumn: error.sourceInformation.endColumn,\n },\n ]);\n }\n else {\n clearMarkers();\n }\n }\n }\n // dispose editor\n useEffect(() => () => {\n if (editor) {\n disposeCodeEditor(editor);\n onDidChangeModelContentEventDisposer.current?.dispose();\n }\n }, [editor]);\n return (_jsxs(\"div\", { className: \"code-editor\", children: [!hideActionBar && (_jsx(\"div\", { className: \"code-editor__header\", children: _jsx(\"button\", { tabIndex: -1, className: clsx('code-editor__header__action', {\n 'code-editor__header__action--active': isWordWrap,\n }), onClick: toggleWordWrap, title: `[${isWordWrap ? 'on' : 'off'}] Toggle word wrap`, children: _jsx(WordWrapIcon, {}) }) })), _jsx(\"div\", { className: clsx('code-editor__content', {\n 'code-editor__content--padding': !hidePadding,\n 'code-editor__content--with__header': !hideActionBar,\n }), children: _jsx(\"div\", { className: \"code-editor__body\", ref: textInputRef }) })] }));\n};\n//# sourceMappingURL=CodeEditor.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { observer } from 'mobx-react-lite';\nimport { useREPLGridClientStore, withEditorStore, } from './REPLGridClientStoreProvider.js';\nimport { AgGridComponent } from './AgGrid.js';\nimport { useEffect } from 'react';\nimport { flowResult } from 'mobx';\nimport { getTDSRowData } from '../components/grid/GridUtils.js';\nimport { ServerSideDataSource } from '../components/grid/ServerSideDataSource.js';\nimport { LEGEND_APPLICATION_COLOR_THEME } from '@finos/legend-application';\nimport { CODE_EDITOR_LANGUAGE, CODE_EDITOR_THEME, CodeEditor, } from '@finos/legend-lego/code-editor';\nimport { CheckSquareIcon, PanelLoadingIndicator, PlayIcon, SquareIcon, clsx, } from '@finos/legend-art';\nimport { LEGEND_APPLICATION_REPL_SETTING_KEY } from '../Const.js';\nimport { QueryEditor } from './REPLQueryEditor.js';\nexport const Editor = withEditorStore(observer(() => {\n const editorStore = useREPLGridClientStore();\n const selectDarkTheme = () => {\n editorStore.applicationStore.layoutService.setColorTheme(LEGEND_APPLICATION_COLOR_THEME.DEFAULT_DARK, { persist: true });\n };\n const selectLightTheme = () => {\n editorStore.applicationStore.layoutService.setColorTheme(LEGEND_APPLICATION_COLOR_THEME.LEGACY_LIGHT, { persist: true });\n };\n const isLightTheme = editorStore.applicationStore.layoutService\n .TEMPORARY__isLightColorThemeEnabled;\n const executeLambda = () => {\n flowResult(editorStore.executeLambda()).catch(editorStore.applicationStore.alertUnhandledError);\n };\n const togglePagination = () => {\n editorStore.replGridState.setIsPaginationEnabled(!editorStore.replGridState.isPaginationEnabled);\n editorStore.applicationStore.settingService.persistValue(LEGEND_APPLICATION_REPL_SETTING_KEY.PAGINATION, editorStore.replGridState.isPaginationEnabled);\n };\n useEffect(() => {\n flowResult(editorStore.getInitialREPLGridServerResult()).catch(editorStore.applicationStore.alertUnhandledError);\n }, [editorStore]);\n return (_jsxs(\"div\", { className: \"repl\", children: [_jsx(\"div\", { className: \"repl__header\", children: _jsxs(\"div\", { className: \"repl__header__content\", children: [_jsx(\"div\", { className: \"repl__header__content__title\", children: \"REPL Grid\" }), _jsxs(\"div\", { className: \"repl__header__actions\", children: [_jsxs(\"div\", { className: \"repl__header__action__pagination\", children: [_jsx(\"button\", { className: clsx('repl__header__action__pagination__toggler__btn', {\n 'repl__header__action__pagination__toggler__btn--toggled': editorStore.replGridState.isPaginationEnabled,\n }), onClick: togglePagination, tabIndex: -1, children: editorStore.replGridState.isPaginationEnabled ? (_jsx(CheckSquareIcon, {})) : (_jsx(SquareIcon, {})) }), _jsx(\"div\", { className: \"repl__header__action__pagination__label\", children: \"Pagination\" })] }), _jsx(\"button\", { className: isLightTheme\n ? 'repl__header__action'\n : 'repl__header__action repl__header__action--toggled', onClick: selectDarkTheme, children: \"Dark\" }), _jsx(\"button\", { className: isLightTheme\n ? 'repl__header__action repl__header__action--toggled'\n : 'repl__header__action', onClick: selectLightTheme, children: \"Light\" })] })] }) }), _jsxs(\"div\", { className: \"repl__content\", children: [_jsxs(\"div\", { className: \"repl__content__query\", children: [_jsx(\"div\", { className: \"repl__query\", children: _jsxs(\"div\", { className: \"repl__query__editor\", children: [_jsxs(\"div\", { className: \"repl__query__header\", children: [_jsx(\"div\", { className: \"repl__query__label\", children: \"Curent Query\" }), _jsx(\"div\", { className: \"repl__query__execute-btn btn__dropdown-combo btn__dropdown-combo--primary\", children: _jsxs(\"button\", { className: \"btn__dropdown-combo__label\", onClick: executeLambda, tabIndex: -1, children: [_jsx(PlayIcon, { className: \"btn__dropdown-combo__label__icon\" }), _jsx(\"div\", { className: \"btn__dropdown-combo__label__title\", children: \"Run Query\" })] }) })] }), _jsx(\"div\", { className: \"repl__query__content\", children: _jsx(QueryEditor, {}) })] }) }), editorStore.replGridState.currentSubQuery !== undefined && (_jsx(\"div\", { className: \"repl__query\", children: _jsxs(\"div\", { className: \"repl__query__editor\", children: [_jsxs(\"div\", { className: \"repl__query__header\", children: [_jsx(\"div\", { className: \"repl__query__label__sub__query\", children: \"Current Row Group Sub Query\" }), _jsx(\"div\", { className: \"repl__query__label__sub__query__read--only\", children: \"Read Only\" })] }), _jsx(\"div\", { className: \"repl__query__content\", children: _jsx(CodeEditor, { lightTheme: isLightTheme\n ? CODE_EDITOR_THEME.BUILT_IN__VSCODE_HC_LIGHT\n : CODE_EDITOR_THEME.BUILT_IN__VSCODE_HC_BLACK, language: CODE_EDITOR_LANGUAGE.PURE, isReadOnly: true, inputValue: editorStore.replGridState.currentSubQuery, hideActionBar: true, hidePadding: true }) })] }) }))] }), _jsx(\"div\", { className: \"repl__query__label\", children: \"Result\" }), _jsx(PanelLoadingIndicator, { isLoading: editorStore.executeAction.isInProgress }), editorStore.executeAction.hasCompleted && (_jsx(AgGridComponent, { className: editorStore.applicationStore.layoutService\n .TEMPORARY__isLightColorThemeEnabled\n ? 'ag-theme-balham'\n : 'ag-theme-balham-dark', gridOptions: editorStore.replGridState.initialResult\n ? {\n serverSideDatasource: new ServerSideDataSource(getTDSRowData(editorStore.replGridState.initialResult.result), editorStore.replGridState.initialResult.builder.columns, editorStore),\n }\n : {}, licenseKey: editorStore.replGridState.licenseKey ?? '', rowData: editorStore.replGridState.rowData, columnDefs: editorStore.replGridState.columnDefs, suppressServerSideInfiniteScroll: !editorStore.replGridState.isPaginationEnabled }))] })] }));\n}));\n//# sourceMappingURL=REPLGridClient.js.map","import { Fragment as _Fragment, jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { ApplicationComponentFrameworkProvider } from './ApplicationComponentFrameworkProvider.js';\nimport { useApplicationStore } from './ApplicationStoreProvider.js';\nimport { useApplicationPlatform } from './ApplicationPlatformProvider.js';\nexport const ApplicationFrameworkProvider = observer((props) => {\n const { children } = props;\n const platform = useApplicationPlatform();\n const applicationStore = useApplicationStore();\n useEffect(() => {\n applicationStore\n .initialize(platform)\n .catch(applicationStore.alertUnhandledError);\n }, [applicationStore, platform]);\n if (!applicationStore.initState.hasSucceeded) {\n return _jsx(_Fragment, {});\n }\n // TODO: would be great if we can have <React.StrictMode> here but since Mobx React is not ready for\n // concurrency yet, we would have to wait\n // See https://github.com/mobxjs/mobx/issues/2526\n return (_jsx(ApplicationComponentFrameworkProvider, { children: children }));\n});\n//# sourceMappingURL=ApplicationFrameworkProvider.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class LegendREPLGridClientBaseStore {\n applicationStore;\n pluginManager;\n constructor(applicationStore) {\n this.applicationStore = applicationStore;\n this.pluginManager = applicationStore.pluginManager;\n }\n}\n//# sourceMappingURL=LegendREPLGridClientBaseStore.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createContext } from 'react';\nimport { useLocalObservable } from 'mobx-react-lite';\nimport { ApplicationFrameworkProvider, useApplicationStore, } from '@finos/legend-application';\nimport { LegendREPLGridClientBaseStore, } from '../stores/LegendREPLGridClientBaseStore.js';\nexport const useLegendREPLGridClientApplicationStore = () => useApplicationStore();\nconst LegendREPLGridClientBaseStoreContext = createContext(undefined);\nconst LegendREPLGridClientBaseStoreProvider = ({ children }) => {\n const applicationStore = useLegendREPLGridClientApplicationStore();\n const store = useLocalObservable(() => new LegendREPLGridClientBaseStore(applicationStore));\n return (_jsx(LegendREPLGridClientBaseStoreContext.Provider, { value: store, children: children }));\n};\nexport const LegendREPLGridClientFrameworkProvider = ({ children }) => (_jsx(ApplicationFrameworkProvider, { children: _jsx(LegendREPLGridClientBaseStoreProvider, { children: children }) }));\n//# sourceMappingURL=LegendREPLGridClientFrameworkProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BrowserEnvironmentProvider, Route, Switch, } from '@finos/legend-application/browser';\nimport { Editor } from './REPLGridClient.js';\nimport { LegendREPLGridClientFrameworkProvider } from './LegendREPLGridClientFrameworkProvider.js';\nimport { observer } from 'mobx-react-lite';\nimport { withEditorStore } from './REPLGridClientStoreProvider.js';\nexport const LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN = Object.freeze({\n GRID: `/grid`,\n});\nexport const LegendREPLGridClientRouter = withEditorStore(observer(() => (_jsx(\"div\", { className: \"app\", children: _jsx(Switch, { children: _jsx(Route, { exact: true, path: [LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN.GRID], component: \n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n Editor }) }) }))));\nexport const LegendREPLGridClientWebApplication = (props) => {\n const { baseUrl } = props;\n return (_jsx(BrowserEnvironmentProvider, { baseUrl: baseUrl, children: _jsx(LegendREPLGridClientFrameworkProvider, { children: _jsx(LegendREPLGridClientRouter, {}) }) }));\n};\n//# sourceMappingURL=LegendREPLGridClientApplication.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LegendApplicationPlugin } from '@finos/legend-application';\nexport class LegendREPLGridClientApplicationPlugin extends LegendApplicationPlugin {\n /**\n * This helps to better type-check for this empty abtract type\n * See https://github.com/finos/legend-studio/blob/master/docs/technical/typescript-usage.md#understand-typescript-structual-type-system\n */\n _$nominalTypeBrand;\n install(pluginManager) {\n pluginManager.registerApplicationPlugin(this);\n }\n}\n//# sourceMappingURL=LegendREPLGridClientApplicationPlugin.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { DATE_FORMAT, ELEMENT_PATH_DELIMITER, MULTIPLICITY_INFINITE, MULTIPLICITY_RANGE_OPERATOR, PRIMITIVE_TYPE, } from '../MetaModelConst.js';\nimport { PrimitiveType } from '../metamodel/pure/packageableElements/domain/PrimitiveType.js';\nimport { Enumeration } from '../metamodel/pure/packageableElements/domain/Enumeration.js';\nimport { formatDate } from '@finos/legend-shared';\nexport var PURE_ELEMENT_NAME;\n(function (PURE_ELEMENT_NAME) {\n PURE_ELEMENT_NAME[\"PROFILE\"] = \"Profile\";\n PURE_ELEMENT_NAME[\"CLASS\"] = \"Class\";\n PURE_ELEMENT_NAME[\"ENUMERATION\"] = \"Enum\";\n PURE_ELEMENT_NAME[\"MEASURE\"] = \"Measure\";\n PURE_ELEMENT_NAME[\"ASSOCIATION\"] = \"Association\";\n PURE_ELEMENT_NAME[\"FUNCTION\"] = \"function\";\n PURE_ELEMENT_NAME[\"MAPPING\"] = \"Mapping\";\n PURE_ELEMENT_NAME[\"FLAT_DATA\"] = \"FlatData\";\n PURE_ELEMENT_NAME[\"DATABASE\"] = \"Database\";\n PURE_ELEMENT_NAME[\"SERVICE\"] = \"Service\";\n PURE_ELEMENT_NAME[\"RUNTIME\"] = \"Runtime\";\n PURE_ELEMENT_NAME[\"CONNECTION\"] = \"Connection\";\n PURE_ELEMENT_NAME[\"FILE_GENERATION\"] = \"FileGeneration\";\n PURE_ELEMENT_NAME[\"GENERATION_SPECIFICATION\"] = \"GenerationSpecification\";\n PURE_ELEMENT_NAME[\"DATA_ELEMENT\"] = \"Data\";\n PURE_ELEMENT_NAME[\"EXECUTION_ENVIRONMENT\"] = \"ExecutionEnvironment\";\n})(PURE_ELEMENT_NAME || (PURE_ELEMENT_NAME = {}));\nexport var PURE_CONNECTION_NAME;\n(function (PURE_CONNECTION_NAME) {\n PURE_CONNECTION_NAME[\"JSON_MODEL_CONNECTION\"] = \"JsonModelConnection\";\n PURE_CONNECTION_NAME[\"XML_MODEL_CONNECTION\"] = \"XmlModelConnection\";\n PURE_CONNECTION_NAME[\"MODEL_CHAIN_CONNECTION\"] = \"ModelChainConnection\";\n PURE_CONNECTION_NAME[\"RELATIONAL_DATABASE_CONNECTION\"] = \"RelationalDatabaseConnection\";\n PURE_CONNECTION_NAME[\"FLAT_DATA_CONNECTION\"] = \"FlatDataConnection\";\n})(PURE_CONNECTION_NAME || (PURE_CONNECTION_NAME = {}));\nexport var PURE_PARSER;\n(function (PURE_PARSER) {\n PURE_PARSER[\"PURE\"] = \"Pure\";\n PURE_PARSER[\"CONNECTION\"] = \"Connection\";\n PURE_PARSER[\"RUNTIME\"] = \"Runtime\";\n PURE_PARSER[\"MAPPING\"] = \"Mapping\";\n PURE_PARSER[\"SERVICE\"] = \"Service\";\n PURE_PARSER[\"FLATDATA\"] = \"FlatData\";\n PURE_PARSER[\"RELATIONAL\"] = \"Relational\";\n PURE_PARSER[\"GENERATION_SPECIFICATION\"] = \"GenerationSpecification\";\n PURE_PARSER[\"FILE_GENERATION_SPECIFICATION\"] = \"FileGeneration\";\n PURE_PARSER[\"DATA\"] = \"Data\";\n})(PURE_PARSER || (PURE_PARSER = {}));\nexport const generateMultiplicityString = (lowerBound, upperBound) => {\n if (lowerBound === upperBound) {\n return lowerBound.toString();\n }\n else if (lowerBound === 0 && upperBound === undefined) {\n return MULTIPLICITY_INFINITE;\n }\n return `${lowerBound}${MULTIPLICITY_RANGE_OPERATOR}${upperBound ?? MULTIPLICITY_INFINITE}`;\n};\nexport const generateDefaultParameterValueForType = (type, index) => {\n if (!type) {\n return `param${index}`;\n }\n if (type instanceof Enumeration) {\n return type.values.length !== 0\n ? `${type.path}.${type.values[0]?.name}`\n : `param${index}`;\n }\n else if (type instanceof PrimitiveType) {\n switch (type.name) {\n case PRIMITIVE_TYPE.BOOLEAN:\n return true;\n case PRIMITIVE_TYPE.FLOAT:\n case PRIMITIVE_TYPE.DECIMAL:\n return 0.0;\n case PRIMITIVE_TYPE.NUMBER:\n case PRIMITIVE_TYPE.INTEGER:\n return 0;\n case PRIMITIVE_TYPE.DATE:\n case PRIMITIVE_TYPE.STRICTDATE:\n return `%${formatDate(new Date(), DATE_FORMAT)}`;\n case PRIMITIVE_TYPE.DATETIME:\n return `%${formatDate(new Date(), DATE_FORMAT)}T00:00:00`;\n case PRIMITIVE_TYPE.STRICTTIME:\n return `%00:00:00`;\n case PRIMITIVE_TYPE.STRING:\n return \"''\";\n default:\n return `param${index}`;\n }\n }\n // Other non-primitive types, e.g. Class\n return `param${index}`;\n};\nexport const generateFunctionCallString = (element) => {\n let lambdaString = '';\n if (element.parameters.length > 0) {\n for (let i = 0; i < element.parameters.length; i++) {\n const paramType = element.parameters[i]?.type.value;\n const separator = i !== element.parameters.length - 1 ? ', ' : '';\n lambdaString =\n lambdaString +\n generateDefaultParameterValueForType(paramType, i) +\n separator;\n }\n }\n return `${element.package?.path}${ELEMENT_PATH_DELIMITER}${element.functionName}(${lambdaString})`;\n};\nexport const generateFunctionPrettyName = (element, options) => `${options?.fullPath ? `${element.package?.path}${ELEMENT_PATH_DELIMITER}` : ''}${element.functionName}(${element.parameters\n .map((p) => !options?.notIncludeParamName\n ? `${p.name}: ${p.type.value.name}[${generateMultiplicityString(p.multiplicity.lowerBound, p.multiplicity.upperBound)}]`\n : `${p.type.value.name}[${generateMultiplicityString(p.multiplicity.lowerBound, p.multiplicity.upperBound)}]`)\n .join(', ')}): ${element.returnType.value.name}[${generateMultiplicityString(element.returnMultiplicity.lowerBound, element.returnMultiplicity.upperBound)}]`.replaceAll(/\\s*/gu, (val) => {\n if (options?.spacing) {\n return val;\n }\n return '';\n});\n//# sourceMappingURL=PureLanguageHelper.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable prefer-named-capture-group */\nimport { PURE_ELEMENT_NAME, PURE_CONNECTION_NAME } from '@finos/legend-graph';\nimport { languages as monacoLanguagesAPI } from 'monaco-editor';\nimport { PURE_GRAMMAR_TOKEN } from './PureLanguage.js';\nimport { CODE_EDITOR_LANGUAGE } from './CodeEditorUtils.js';\n/**\n * The postfix to be added to all token types, i.e. identifier.pure, number.pure, etc.\n */\nconst PURE_GRAMMAR_TOKEN_POSTFIX = '.pure';\n// Taken from `monaco-languages` configuration for Java in order to do propert brace matching\n// See https://github.com/microsoft/monaco-languages/blob/master/src/java/java.ts\nconst configuration = {\n // NOTE: Pure identifier includes $ but not in the first position (as that is parsed as a variable)\n wordPattern: /(-?\\d*\\.\\d\\w*)|([^`~!@#%^$&*()\\-=+[{\\]}\\\\|;:'\",.<>/?\\s][^`~!@#%^&*()\\-=+[{\\]}\\\\|;:'\",.<>/?\\s]*)/,\n comments: {\n lineComment: '//',\n blockComment: ['/*', '*/'],\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n { open: '<', close: '>' },\n { open: '<<', close: '>>' },\n ],\n folding: {\n markers: {\n start: new RegExp('^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:<editor-fold\\\\b))'),\n end: new RegExp('^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:</editor-fold>))'),\n },\n },\n};\n/**\n * Create new monarch definition to support syntax-highlighting\n * See https://microsoft.github.io/monaco-editor/monarch.html\n *\n * The way SQL monarch definition is organized is good and worth learning from\n * See https://github.com/microsoft/monaco-languages/blob/master/src/sql/sql.ts\n *\n * NOTE: using `monarch` only allows fairly very basic syntax-highlighting\n * to actually do full AST analysis, we might need something more serious like\n * using TextMate grammar which is used by VSCode itself\n * See https://github.com/microsoft/monaco-editor#faq\n * See https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide\n */\nconst generateLanguageMonarch = (extraKeywords) => \n// TODO: complete syntax-highlighter for core features like constraint, derived properties, etc.\n// TODO: add syntax highlighting for modules/plugins (come up with a plugin mechanism to do this).\n({\n defaultToken: 'invalid',\n tokenPostfix: PURE_GRAMMAR_TOKEN_POSTFIX,\n keywords: [\n ...extraKeywords,\n // relational\n 'Schema',\n 'Table',\n 'Join',\n 'View',\n 'primaryKey',\n 'groupBy',\n 'mainTable',\n // native\n 'let',\n 'extends',\n 'true',\n 'false',\n 'projects',\n // elements\n PURE_ELEMENT_NAME.CLASS,\n PURE_ELEMENT_NAME.ASSOCIATION,\n PURE_ELEMENT_NAME.ENUMERATION,\n PURE_ELEMENT_NAME.MEASURE,\n PURE_ELEMENT_NAME.PROFILE,\n PURE_ELEMENT_NAME.FUNCTION,\n PURE_ELEMENT_NAME.MAPPING,\n PURE_ELEMENT_NAME.RUNTIME,\n PURE_ELEMENT_NAME.CONNECTION,\n PURE_ELEMENT_NAME.FILE_GENERATION,\n PURE_ELEMENT_NAME.GENERATION_SPECIFICATION,\n PURE_ELEMENT_NAME.DATA_ELEMENT,\n // connections\n PURE_CONNECTION_NAME.JSON_MODEL_CONNECTION,\n PURE_CONNECTION_NAME.MODEL_CHAIN_CONNECTION,\n PURE_CONNECTION_NAME.XML_MODEL_CONNECTION,\n // mapping\n 'include',\n 'EnumerationMapping',\n 'Pure',\n 'AssociationMapping',\n 'XStore',\n 'AggregationAware',\n /**\n * @modularize\n * See https://github.com/finos/legend-studio/issues/65\n */\n PURE_ELEMENT_NAME.SERVICE,\n PURE_ELEMENT_NAME.FLAT_DATA,\n PURE_ELEMENT_NAME.DATABASE,\n PURE_CONNECTION_NAME.FLAT_DATA_CONNECTION,\n PURE_CONNECTION_NAME.RELATIONAL_DATABASE_CONNECTION,\n 'Relational',\n ],\n operators: [\n '=',\n '>',\n '<',\n '!',\n '~',\n '?',\n ':',\n '==',\n '<=',\n '>=',\n '&&',\n '||',\n '++',\n '--',\n '+',\n '-',\n '*',\n '/',\n '&',\n '|',\n '^',\n '%',\n '->',\n '#{',\n '}#',\n '@',\n '<<',\n '>>',\n ],\n languageStructs: ['import', 'native'],\n // common regular expressions to be used in tokenizer\n identifier: /[a-zA-Z_$][\\w$]*/,\n symbols: /[=><!~?:&|+\\-*/^%#@]+/,\n escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n digits: /\\d+(_+\\d+)*/,\n octaldigits: /[0-7]+(_+[0-7]+)*/,\n binarydigits: /[0-1]+(_+[0-1]+)*/,\n hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,\n multiplicity: /\\[(?:[a-zA-Z0-9]+(?:\\.\\.(?:[a-zA-Z0-9]+|\\*|))?|\\*)\\]/,\n package: /(?:[\\w_]+::)+/,\n // NOTE: generics is a little tricky because in order to do it right, we have to\n // do some sort of bracket matching, but we just can use a simple tokenizer here\n // so to account for cases like `<Nil,Any|*>)->` `Function<{T[1]->Boolean[1]}>[1]`\n // we have to make sure the content does not contain any `:` or `.` characters\n // in order to avoid the accidental greedy match with inputs like\n // `function doSomething<T>(a: Function<T[1]->Boolean[1]>)`\n // nor we want to make sure the last character of the content is not `-` to avoid\n // accidentally matching `->` as the end of the generics\n generics: /(?:(?:<\\w+>)|(?:<[^:.@^()]+[^-]>))/,\n date: /%-?\\d+(?:-\\d+(?:-\\d+(?:T(?:\\d+(?::\\d+(?::\\d+(?:.\\d+)?)?)?)(?:[+-][0-9]{4})?)))/,\n time: /%\\d+(?::\\d+(?::\\d+(?:.\\d+)?)?)?/,\n tokenizer: {\n root: [\n // NOTE: since `monaco-editor` Monarch is only meant for tokenizing\n // and the need to highlight Pure syntax is more than just token-based,\n // but semantic/syntax-based we have to create these complex rules.\n // the things to note here is these are not meant to match multilines\n // and they must be placed before identifier rules since token matching\n // is run in order\n // See https://github.com/microsoft/monaco-editor/issues/316#issuecomment-273555698\n // See https://github.com/microsoft/monaco-editor/issues/571#issuecomment-342555050\n // See https://microsoft.github.io/monaco-editor/monarch.html\n { include: '@pure' },\n { include: '@date' },\n { include: '@color' },\n // parser markers\n [\n // NOTE: any leading whitespace to the section header is considered invalid syntax\n /^\\s*###[\\w]+/,\n PURE_GRAMMAR_TOKEN.PARSER,\n ],\n // identifiers and keywords\n [\n /(@identifier)/,\n {\n cases: {\n '@languageStructs': PURE_GRAMMAR_TOKEN.LANGUAGE_STRUCT,\n '@keywords': `${PURE_GRAMMAR_TOKEN.KEYWORD}.$0`,\n // function descriptor\n '([a-zA-Z_$][\\\\w$]*)_((\\\\w+_(([a-zA-Z0-9]+)|(\\\\$[a-zA-Z0-9]+_[a-zA-Z0-9]+\\\\$)))__)*(\\\\w+_(([a-zA-Z0-9]+)|(\\\\$[a-zA-Z0-9]+_[a-zA-Z0-9]+\\\\$)))_': PURE_GRAMMAR_TOKEN.TYPE,\n '@default': PURE_GRAMMAR_TOKEN.IDENTIFIER,\n },\n },\n ],\n // whitespace\n { include: '@whitespace' },\n // delimiters and operators\n [/[{}()[\\]]/, '@brackets'],\n [/[<>](?!@symbols)/, '@brackets'],\n [\n /@symbols/,\n {\n cases: {\n '@operators': PURE_GRAMMAR_TOKEN.OPERATOR,\n '@default': PURE_GRAMMAR_TOKEN.IDENTIFIER,\n },\n },\n ],\n { include: '@number' },\n // delimiter: after number because of .\\d floats\n [/[;,.]/, PURE_GRAMMAR_TOKEN.DELIMITER],\n // strings\n // NOTE: including non-teminated string so as people type ', we can start showing them that they're working on a string\n [/'([^'\\\\]|\\\\.)*$/, `${PURE_GRAMMAR_TOKEN.STRING}.invalid`],\n [/'/, PURE_GRAMMAR_TOKEN.STRING, '@string'],\n { include: '@characters' },\n ],\n pure: [\n // type\n [/(@package\\*)/, [PURE_GRAMMAR_TOKEN.PACKAGE]],\n [\n /(@package?)(@identifier)(@generics?)(\\s*)(@multiplicity)/,\n [\n PURE_GRAMMAR_TOKEN.PACKAGE,\n PURE_GRAMMAR_TOKEN.TYPE,\n PURE_GRAMMAR_TOKEN.GENERICS,\n PURE_GRAMMAR_TOKEN.WHITESPACE,\n PURE_GRAMMAR_TOKEN.MULTIPLICITY,\n ],\n ],\n [\n /(@package)(@identifier)(@generics?)/,\n [\n PURE_GRAMMAR_TOKEN.PACKAGE,\n PURE_GRAMMAR_TOKEN.TYPE,\n PURE_GRAMMAR_TOKEN.GENERICS,\n ],\n ],\n // special operators that uses type (e.g. constructor, cast)\n [\n /([@^])(\\s*)(@package?)(@identifier)(@generics?)(@multiplicity?)/,\n [\n `${PURE_GRAMMAR_TOKEN.TYPE}.operator`,\n PURE_GRAMMAR_TOKEN.WHITESPACE,\n PURE_GRAMMAR_TOKEN.PACKAGE,\n PURE_GRAMMAR_TOKEN.TYPE,\n PURE_GRAMMAR_TOKEN.GENERICS,\n PURE_GRAMMAR_TOKEN.MULTIPLICITY,\n ],\n ],\n // property / parameter\n [\n /(\\.\\s*)(@identifier)/,\n [PURE_GRAMMAR_TOKEN.DELIMITER, PURE_GRAMMAR_TOKEN.PROPERTY],\n ],\n [\n /(@identifier)(\\s*=)/,\n [PURE_GRAMMAR_TOKEN.PROPERTY, PURE_GRAMMAR_TOKEN.OPERATOR],\n ],\n [\n /(@identifier)(\\.)(@identifier)/,\n [\n PURE_GRAMMAR_TOKEN.TYPE,\n PURE_GRAMMAR_TOKEN.OPERATOR,\n PURE_GRAMMAR_TOKEN.PROPERTY,\n ],\n ],\n [\n /(@identifier)(\\s*:)/,\n [PURE_GRAMMAR_TOKEN.PARAMETER, PURE_GRAMMAR_TOKEN.OPERATOR],\n ],\n // variables\n [\n /(let)(\\s+)(@identifier)(\\s*=)/,\n [\n PURE_GRAMMAR_TOKEN.KEYWORD,\n PURE_GRAMMAR_TOKEN.WHITESPACE,\n PURE_GRAMMAR_TOKEN.VARIABLE,\n PURE_GRAMMAR_TOKEN.OPERATOR,\n ],\n ],\n [/(\\$@identifier)/, [`${PURE_GRAMMAR_TOKEN.VARIABLE}.reference`]],\n ],\n date: [\n [/(%latest)/, [`${PURE_GRAMMAR_TOKEN.DATE}.latest`]],\n [/(@date)/, [PURE_GRAMMAR_TOKEN.DATE]],\n [/(@time)/, [`${PURE_GRAMMAR_TOKEN.DATE}.time`]],\n ],\n color: [[/(#[0-9a-fA-F]{6})/, [PURE_GRAMMAR_TOKEN.COLOR]]],\n number: [\n [\n /(@digits)[eE]([-+]?(@digits))?[fFdD]?/,\n `${PURE_GRAMMAR_TOKEN.NUMBER}.float`,\n ],\n [\n /(@digits)\\.(@digits)([eE][-+]?(@digits))?[fFdD]?/,\n `${PURE_GRAMMAR_TOKEN.NUMBER}.float`,\n ],\n [/0[xX](@hexdigits)[Ll]?/, `${PURE_GRAMMAR_TOKEN.NUMBER}.hex`],\n [/0(@octaldigits)[Ll]?/, `${PURE_GRAMMAR_TOKEN.NUMBER}.octal`],\n [/0[bB](@binarydigits)[Ll]?/, `${PURE_GRAMMAR_TOKEN.NUMBER}.binary`],\n [/(@digits)[fFdD]/, `${PURE_GRAMMAR_TOKEN.NUMBER}.float`],\n [/(@digits)[lL]?/, PURE_GRAMMAR_TOKEN.NUMBER],\n ],\n whitespace: [\n [/[ \\t\\r\\n]+/, PURE_GRAMMAR_TOKEN.WHITESPACE],\n [/\\/\\*\\*(?!\\/)/, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc`, '@doc'],\n [/\\/\\*/, PURE_GRAMMAR_TOKEN.COMMENT, '@comment'],\n [/\\/\\/.*$/, PURE_GRAMMAR_TOKEN.COMMENT],\n ],\n comment: [\n [/[^/*]+/, PURE_GRAMMAR_TOKEN.COMMENT],\n // [/\\/\\*/, PURE_GRAMMAR_TOKEN.COMMENT, '@push' ], // nested comment not allowed :-(\n // [/\\/\\*/, ${PURE_GRAMMAR_TOKEN.COMMENT}.invalid` ], // this breaks block comments in the shape of /* //*/\n [/\\*\\//, PURE_GRAMMAR_TOKEN.COMMENT, '@pop'],\n [/[/*]/, PURE_GRAMMAR_TOKEN.COMMENT],\n ],\n // Identical copy of comment above, except for the addition of .doc\n doc: [\n [/[^/*]+/, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc`],\n // [/\\/\\*/, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc`, '@push' ], // nested comment not allowed :-(\n [/\\/\\*/, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc.invalid`],\n [/\\*\\//, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc`, '@pop'],\n [/[/*]/, `${PURE_GRAMMAR_TOKEN.COMMENT}.doc`],\n ],\n string: [\n [/[^\\\\']+/, PURE_GRAMMAR_TOKEN.STRING],\n [/@escapes/, `${PURE_GRAMMAR_TOKEN.STRING}.escape`],\n [/\\\\./, `${PURE_GRAMMAR_TOKEN.STRING}.escape.invalid`],\n [/'/, PURE_GRAMMAR_TOKEN.STRING, '@pop'],\n ],\n characters: [\n [/'[^\\\\']'/, PURE_GRAMMAR_TOKEN.STRING],\n [\n /(')(@escapes)(')/,\n [\n PURE_GRAMMAR_TOKEN.STRING,\n `${PURE_GRAMMAR_TOKEN.STRING}.escape`,\n PURE_GRAMMAR_TOKEN.STRING,\n ],\n ],\n [/'/, `${PURE_GRAMMAR_TOKEN.STRING}.invalid`],\n ],\n },\n});\nexport function setupPureLanguageService(options) {\n monacoLanguagesAPI.register({ id: CODE_EDITOR_LANGUAGE.PURE });\n monacoLanguagesAPI.setLanguageConfiguration(CODE_EDITOR_LANGUAGE.PURE, configuration);\n monacoLanguagesAPI.setMonarchTokensProvider(CODE_EDITOR_LANGUAGE.PURE, generateLanguageMonarch(options?.extraKeywords ?? []));\n}\n//# sourceMappingURL=PureLanguageService.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport packageJson from '../../package.json' assert { type: 'json' };\nimport { LegendREPLGridClientApplicationPlugin } from '../stores/LegendREPLGridClientApplicationPlugin.js';\nimport { configureAgGridComponent } from './AgGrid.js';\nimport { configureCodeEditorComponent, setupPureLanguageService, } from '@finos/legend-lego/code-editor';\nexport class Core_LegendREPLGridClientApplicationPlugin extends LegendREPLGridClientApplicationPlugin {\n static NAME = packageJson.extensions.applicationREPLGridClientPlugin;\n constructor() {\n super(Core_LegendREPLGridClientApplicationPlugin.NAME, packageJson.version);\n }\n getExtraApplicationSetups() {\n return [\n async (applicationStore) => {\n configureAgGridComponent();\n await configureCodeEditorComponent(applicationStore);\n setupPureLanguageService();\n },\n ];\n }\n}\n//# sourceMappingURL=Core_LegendREPLGridClientApplicationPlugin.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { createRoot } from 'react-dom/client';\nimport { LegendApplication, ApplicationStoreProvider, Core_LegendApplicationPlugin, getApplicationRootElement, } from '@finos/legend-application';\nimport { LegendREPLGridClientApplicationConfig, } from './LegendREPLGridClientApplicationConfig.js';\nimport { LegendREPLGridClientPluginManager } from './LegendREPLGridClientPluginManager.js';\nimport { LegendREPLGridClientWebApplication } from '../components/LegendREPLGridClientApplication.js';\nimport { Core_LegendREPLGridClientApplicationPlugin } from '../components/Core_LegendREPLGridClientApplicationPlugin.js';\nexport class LegendREPLGridClient extends LegendApplication {\n static create() {\n const application = new LegendREPLGridClient(LegendREPLGridClientPluginManager.create());\n application.withBasePlugins([\n new Core_LegendApplicationPlugin(),\n new Core_LegendREPLGridClientApplicationPlugin(),\n ]);\n application.withBasePresets([]);\n return application;\n }\n async configureApplication(input) {\n return new LegendREPLGridClientApplicationConfig(input);\n }\n async loadApplication(applicationStore) {\n createRoot(getApplicationRootElement()).render(_jsx(ApplicationStoreProvider, { store: applicationStore, children: _jsx(LegendREPLGridClientWebApplication, { baseUrl: this.baseAddress }) }));\n }\n}\n//# sourceMappingURL=LegendREPLGridClient.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {} from '@finos/legend-shared';\nimport { LegendREPLGridClient } from './application/LegendREPLGridClient.js';\nimport { Core_LegendREPLGridClientApplicationPlugin } from './components/Core_LegendREPLGridClientApplicationPlugin.js';\nexport class LegendREPLGridClientWebApplication {\n static getPresetCollection() {\n return [];\n }\n static getPluginCollection() {\n return [new Core_LegendREPLGridClientApplicationPlugin()];\n }\n static run(baseUrl) {\n LegendREPLGridClient.create()\n .setup({ baseAddress: baseUrl })\n .withPresets(LegendREPLGridClientWebApplication.getPresetCollection())\n .withPlugins(LegendREPLGridClientWebApplication.getPluginCollection())\n .start()\n .catch((e) => {\n throw e;\n });\n }\n}\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LegendREPLGridClientWebApplication } from '@finos/legend-application-repl';\nimport config from '../repl.config.js';\nimport './index.scss';\n\nLegendREPLGridClientWebApplication.run(config.baseUrl);\n","/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport default {\n /**\n * `favicon` [string, optional]\n * Relative path to the favicon file\n * e.g. './assets/favicon.ico'\n */\n faviconPath: './assets/favicon.ico',\n /**\n * `baseUrl` [string, required]\n * Base URL for your site. This can also be considered the path after the host.\n * e.g. `/something/` is the `baseUrl` of https://www.example.org/something/\n * For URLs that have no path, use '/'.\n */\n baseUrl: '/repl/',\n /**\n * `devServerOptions` [object, optional]\n * Options to override `webpack-dev-server` configs.\n * See https://webpack.js.org/configuration/dev-server/\n */\n devServerOptions: {\n // NOTE: for development from within a Docker container, it's best to update this to 0.0.0.0\n host: 'localhost',\n port: 9005,\n },\n};\n","\"use strict\";\n/**\n * Copyright (c) 2020-present, Goldman Sachs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Previously, these exports rely on ES module interop to expose `default` export\n * properly. But since we use `ESM` for Typescript resolution now, we lose this\n * so we have to workaround by importing these and re-export them from CJS\n *\n * TODO: remove these when the package properly work with Typescript's nodenext\n * module resolution\n *\n * @workaround ESM\n * See https://github.com/microsoft/TypeScript/issues/49298\n *\n * In addition to that, due to our upgrade to Typescript 5.0, we are forced to enable\n * --verbatimModuleSyntax flag, so we have to use CommonJS syntax in this file\n * See https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#verbatimmodulesyntax\n */\nconst Fuse = require(\"fuse.js\");\nmodule.exports = {\n Fuse,\n};\n//# sourceMappingURL=CJS__Fuse.cjs.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/repl/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t826: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk_finos_legend_application_repl_deployment\"] = globalThis[\"webpackChunk_finos_legend_application_repl_deployment\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [736], () => (__webpack_require__(8932)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","noop","ApplicationError","Error","uuid","constructor","message","super","this","undefined","detail","EnrichedError","name","error","overideMessage","messageLines","match","length","stack","split","slice","join","captureStackTrace","IllegalStateError","unsupportedObject","value","options","opts","obj","printFunctionName","maxDepth","deep","pickBy","val","replace","includes","printObject","assertErrorThrown","returnUndefOnError","fn","AssertionError","isNonNullable","guaranteeType","clazz","assertType","guaranteeNonEmptyString","str","assertNonEmptyString","assertionValue","isNaN","guaranteeIsString","assertIsString","guaranteeIsNumber","assertIsNumber","guaranteeIsBoolean","assertIsBoolean","HttpStatus","CHARSET","HttpHeader","ContentType","HttpMethod","DEFAULT_CLIENT_REQUEST_OPTIONS","mode","credentials","redirect","mergeRequestHeaders","headersOne","headersTwo","requestHeaders","Object","entries","forEach","key","NetworkClientError","response","payload","status","statusText","url","summary","JSON","stringify","payloadAsObject","parse","extractMessage","substring","processResponse","async","init","responseProcessConfig","preprocess","ok","text","Promise","reject","skipProcessing","resolve","NO_CONTENT","accept","headers","Accept","APPLICATION_JSON","json","TEXT_PLAIN","createRequestHeaders","method","baseRequestHeaders","GET","CONTENT_TYPE","NetworkClient","baseUrl","config","get","parameters","requestProcessConfig","request","put","data","PUT","post","POST","DELETE","requestUrl","URL","fullUrl","Array","isArray","filter","subVal","searchParams","append","toString","makeUrl","body","enableCompression","Blob","compressData","APPLICATION_ZLIB","requestInit","fetch","then","UNAUTHORIZED","autoReAuthenticateUrl","id","previous","document","getElementById","remove","element","createElement","src","style","display","addEventListener","appendChild","autoReAuthenticate","resp","catch","TypeError","couldBeCORS","fileName","content","contentType","blob","type","createObjectURL","link","download","href","click","removeChild","location","LOG_LEVEL","APPLICATION_EVENT","LogEvent","channel","timestamp","Date","now","create","event","LogService","loggers","registerPlugins","loggerPlugins","debug","logger","info","warn","SerializationFactory","schema","deserializeNullAsUndefined","Boolean","toJson","fromJson","optionalCustomUsingModelSchema","DocumentationEntry","markdownText","title","related","static","documentationKey","entry","serialization","collectKeyedDocumentationEntriesFromConfig","rawEntries","map","DocumentationService","links","docRegistry","Map","contextualDocIndex","applicationStore","documentationUrl","documentationLinkEntries","pluginManager","getApplicationPlugins","flatMap","plugin","getExtraKeyedDocumentationEntries","hasDocEntry","logService","DOCUMENTATION_LOAD__SKIP","set","keyedDocumentationEntries","contextualDocEntries","getExtraContextualDocumentationEntries","missingDocumentationEntries","uniq","getExtraRequiredDocumentationKeys","concat","has","push","DOCUMENTATION_REQUIREMENT_CHECK__FAILURE","hasContextualDocEntry","context","CONTEXTUAL_DOCUMENTATION_LOAD__SKIP","existingDocEntry","getDocEntry","getContextualDocEntry","getAllDocEntries","from","values","publishDocRegistry","result","publishContextualDocIndex","ACTION_STATE","CORE_TRACER_TAG","ActionState","state","_message","_messageFormatter","INITIAL","setMessage","setMessageFormatter","reset","inProgress","IN_PROGRESS","fail","FAILED","pass","SUCCEEDED","complete","hasSucceeded","sync","exportData","isInInitialState","isInProgress","hasFailed","hasCompleted","Trace","traceEntries","setup","bootstrap","clientSpan","reportSuccess","concludeClientSpan","reportError","close","concludeServerSpan","serverSpan","TracerService","plugins","createTrace","traceData","trace","createClientSpan","createServerSpan","FuzzySearchEngine","Fuse","default","ADVANCED_FUZZY_SEARCH_MODE","VIRTUAL_ASSISTANT_TAB","FuzzySearchAdvancedConfigState","currentMode","STANDARD","onSearchModeChange","isAdvancedSearchActive","setCurrentMode","generateSearchText","INCLUDE","EXACT","INVERSE","VirtualAssistantDocumentationEntry","isOpen","docEntry","setIsOpen","VirtualAssistantContextualDocumentationEntry","isValidVirtualAssistantDocumentationEntry","AssistantService","panelRenderingKey","isHidden","isPanelMaximized","selectedTab","SEARCH","currentDocumentationEntry","searchEngine","searchConfigurationState","searchState","searchText","searchResults","showSearchConfigurationMenu","isOverSearchLimit","currentContextualDocumentationEntry","setIsHidden","setIsPanelMaximized","setSelectedTab","setSearchText","resetSearch","search","openDocumentationEntry","refreshPanelRendering","setShowSearchConfigurationMenu","documentationService","includeScore","shouldSort","ignoreLocation","threshold","keys","weight","useExtendedSearch","navigationContextService","currentContext","openDocumentationEntryLink","shouldDisplayVirtualAssistantDocumentationEntry","navigationService","navigator","visitAddress","hideAssistant","toggleAssistant","limit","DOCUMENTATION_SEARCH_RESULTS_LIMIT","item","EventService","notifierPlugins","registerEventNotifierPlugins","notify","LegendApplicationTelemetryHelper","logEvent_ApplicationInitializationSucceeded","service","logEvent","APPLICATION_LOAD__SUCCESS","application","appName","version","appVersion","env","browser","userAgent","screen","height","window","width","logEvent_ApplicationContextAccessed","APPLICATION_CONTEXT__ACCESS","logEvent_VirtualAssistantDocumentationEntryAccessed","VIRTUAL_ASSISTANT_DOCUMENTATION_ENTRY__ACCESS","logEvent_ApplicationUsageInterrupted","APPLICATION_USAGE__INTERRUPT","ApplicationNavigationContextService","contextStack","pop","newContextStack","ctx","isTransient","find","getExtraAccessEventLoggingApplicationContextKeys","telemetryService","existingCtx","idx","indexOf","CommandService","commandRegistry","registerCommand","deregisterCommand","command","commandKey","COMMAND_CENTER_REGISTRATION__FAILURE","delete","runCommand","args","trigger","action","KeyboardShortcutsService","keyMap","commandKeyMap","isHotkeysBlocked","addHotkey","blockGlobalHotkeys","unblockGlobalHotkeys","getExtraKeyedCommandConfigEntries","shortcuts","defaultKeyboardShortcut","additionalKeyboardShortcuts","shortcut","keyCombination","dispatch","mappedCommandKeys","commandService","DEFAULT_MONOSPACED_FONT_FAMILY","DEFAULT_DATE_TIME_FORMAT","DISPLAY_ANSI_ESCAPE","ANSI_moveCursor","line","column","ConsoleSearchConfiguration","searchInput","useRegex","matchWholeWord","matchCaseSensitive","resultCount","currentResultIndex","setSearchInput","el","focus","Console","searchConfig","setSearchRegex","setSearchWholeWord","setSearchCaseSensitive","setSearchResultCount","setSearchCurrentResultIndex","Terminal","preserveLog","setPreserveLog","showHelp","showCommonANSIEscapeSequences","capitalize","toUpperCase","TITLE_CASE_EXCEPTION_WORDS","toTitleCase","trim","toLowerCase","KEYBOARD_NAMED_KEY","parseKeybinding","press","modifiers","isMatchingKeyPressData","keyPressData","code","every","modifier","getModifierState","SHIFT","META","ALT","CONTROL","isMatchingKeyCombination","LegendCustomMUITheme","createTheme","transitions","LegendStyleProvider","props","children","StyledEngineProvider","injectFirst","ThemeProvider","theme","generateSimpleDIVComponent","componentName","divClassName","component","className","displayName","Modal","darkMode","ModalTitle","icon","ModalHeader","ModalBody","ModalFooter","ActionAlertType","ActionAlertActionType","AlertService","blockingAlertInfo","actionAlertInfo","setBlockingAlert","setActionAlertInfo","alertInfo","keyboardShortcutsService","notificationService","notifyIllegalState","ApplicationStoreContext","createContext","useApplicationStore","useContext","ApplicationStoreProvider","store","Provider","getActionButtonClassName","PROCEED_WITH_CAUTION","PROCEED","ActionAlertContent","prompt","onClose","onEnter","actions","handleClose","alertService","Dialog","open","TransitionProps","onSubmit","preventDefault","handler","onClick","e","autoFocus","label","ActionAlert","PanelLoadingIndicator","isLoading","ref","useRef","useEffect","current","parentElement","classList","add","BlockingAlert","classes","root","container","layoutService","TEMPORARY__isLightColorThemeEnabled","showLoading","WordWrapIcon","CloseIcon","ThinVerticalDragHandleIcon","TimesIcon","TimesCircleIcon","CogIcon","SquareIcon","CheckSquareIcon","QuestionCircleIcon","InfoCircleIcon","PlayIcon","SearchIcon","MinusCircleIcon","CheckCircleIcon","ExclamationTriangleIcon","BugIcon","EmptyWindowRestoreIcon","WindowMaximizeIcon","MapMarkerIcon","WizardHatIcon","FaceLaughWinkIcon","FaceSadTearIcon","BeardIcon","SunglassesIcon","ChevronDownIcon","ChevronUpIcon","ChevronRightIcon","DEFAULT_NOTIFICATION_HIDE_TIME","NOTIFCATION_SEVERITY","Notification","severity","autoHideDuration","NotificationService","notification","setNotification","notifySuccess","notifyWarning","notifyError","INFO","SUCCESS","WARNING","ERROR","ILEGAL_STATE","notifyUnsupportedFeature","featureName","notifyAndReturnAlternativeOnError","alternative","NotificationManager","isExpanded","setIsExpanded","useState","notificationIcon","handleCopy","guardUnhandledError","clipboardService","copyTextToClipboard","anchorOriginBottomRight","anchorOrigin","vertical","horizontal","reason","tabIndex","BaseMenu","otherProps","paper","list","transitionDuration","ContextMenu","menuProps","disabled","onOpen","contextMenuRoot","anchorEl","setAnchorEl","left","setLeft","top","setTop","stopPropagation","onContextMenu","containerRect","getBoundingClientRect","containerLeft","scrollX","documentElement","scrollLeft","containerTop","scrollY","scrollTop","clientX","clientY","target","eventTarget","elementsFromPoint","some","anchorPosition","anchorReference","BackdropProps","invisible","disableRestoreFocus","MenuContent","forwardRef","MenuContentItem","MarkdownTextViewer","initialize","startOnLoad","contentLoaded","remarkPlugins","components","_props","node","rest","exec","groups","language","BlankPanelContent","contentRef","contentWidth","contentHeight","refreshMode","refreshRate","refreshOptions","trailing","showContent","setShowContent","containerRef","containerWidth","containerHeight","DEFAULT_CONTENT_PADDING","BaseRadioGroup","size","targetOptionsValuesInMatrix","arr","stepSize","matrix","i","transformToMatrix","row","op","FormControlLabel","control","Radio","BasePopover","LEGEND_APPLICATION_DOCUMENTATION_KEY","VirtualAssistantDocumentationEntryViewer","toggleExpand","copyDocumentationKey","elevation","rel","VirtualAssistantContextualSupportPanel","contextualEntry","assistantService","copyContextIDToClipboard","copyCurrentContextIDToClipboard","copyContextStackToClipboard","VirtualAssistantSearchPanel","searchInputRef","debouncedSearch","useMemo","debounce","querySelectorAll","activeElement","spellCheck","onChange","placeholder","QUESTION_HOW_TO_USE_ADVANCED_SEARCH_SYNTAX","searchMode","format","VirtualAssistantPanel","triggerElement","extraViewConfigurations","getExtraVirtualAssistantViewConfigurations","currentExtensionView","hideBackdrop","PaperProps","disableEnforceFocus","transformOrigin","onKeyDown","CONTEXTUAL_SUPPORT","autoExpandOnOpen","renderer","VirtualAssistant","isDragging","setIsDragging","_key","_setKey","assistantRef","toggleAssistantPanel","bounds","onStart","onStop","handle","APPLICATION_COMPONENT_ELEMENT_ID","PLATFORM_NATIVE_KEYBOARD_SHORTCUTS","BackdropContainer","elementId","ApplicationComponentFrameworkProvider","keyBindingMap","keyCombinations","combinations","buildHotkeysConfiguration","onKeyEvent","possibleMatches","timer","KeyboardEvent","uniqBy","combination","parsedKeyCombination","remainingExpectedKeyPresses","currentExpectedKeyPress","clearTimeout","setTimeout","clear","bind","createKeybindingsHandler","removeEventListener","onVisibilityChange","hidden","timeService","recordUsageInterruption","showBackdrop","Portal","getElementByID","backdropContainerElementID","BACKDROP_CONTAINER","Backdrop","DndProvider","backend","TOP_LEVEL_CONTAINER","LEGEND_XTERM_THEME","foreground","background","cursor","selectionBackground","black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","LEGEND_XTERM_SEARCH_THEME","matchOverviewRuler","activeMatchColorOverviewRuler","matchBackground","activeMatchBackground","DEFAULT_COMMAND_HEADER","BOLD","BRIGHT_BLUE","RESET","MAGENTA","COMMAND_START","XTerm","instance","resizer","searcher","webLinkProvider","_TEMPORARY__onKeyListener","_TEMPORARY__onDataListener","commandHistory","currentCommandSearchString","commandHistoryNavigationIdx","isRunningCommand","setupState","allowProposedApi","fontSize","letterSpacing","fontWeight","fontWeightBold","fontFamily","tabStopWidth","overviewRulerWidth","scrollback","convertEol","scrollOnUserInput","configuration","onContextLoss","dispose","loadAddon","unicode","activeVersion","attachCustomKeyEventHandler","hasSelection","urlRegex","regex","commands","commandConfig","aliases","TERMINAL_COMMAND_CONFIGURATION_CHECK__FAILURE","onDidChangeResults","resultIndex","onKey","domEvent","replaceAll","addCommandToHistory","matchingCommand","arg","finally","isFlushed","abort","deleteFromCommand","altKey","ctrlKey","computeCursorJumpMovement","movement","computeCursorMovement","scrollLines","scroll","write","seq","writeToCommand","dispatchEvent","setCommandFromHistory","onData","startsWith","trimEnd","getCommandRange","buffer","active","cols","commandText","commandFirstLine","repeat","startY","cursorIdx","baseY","cursorY","getLine","translateToString","cursorX","startX","endY","endX","back","range","distance","foundWord","charAt","rows","maxDistance","Math","min","abs","newCursorX","newCursorY","abs_cursorY","ceil","max","floor","viewportY","right","setCommand","cursorMovement","isSetup","isFocused","textarea","mount","autoResize","fit","at","unshift","padEnd","newCommand","newSystemCommand","DIM","flushScreen","isLastLineEmpty","lineText","scrollToTop","resetANSIStyling","scrollToBottom","BRIGHT_BLACK","BRIGHT_GREEN","description","usage","chunk","systemCommand","RED","output","findNext","decorations","wholeWord","caseSensitive","incremental","clearSearch","clearDecorations","clearSelection","findPrevious","getContent","lines","copy","getSelection","alertUnhandledError","copyAll","TerminalService","terminal","UNKNOWN_USER_ID","IdentityService","currentUser","setCurrentUser","isAnonymous","LEGEND_APPLICATION_COLOR_THEME","LocalStorage","localStorage","setItem","getItem","removeItem","hasItem","StorageStore","storeIndex","storageService","getIndex","getValue","getNumericValue","getStringValue","getBooleanValue","getObjectValue","assertIsObject","guaranteeIsObject","hasValue","persistValue","updateIndex","StorageService","storage","applicationStorageKey","index","isEmpty","TelemetryService","userId","identityService","appEnv","appSessionId","appStartTime","eventType","TimeService","interruptions","finalizeTimingsRecord","stopWatch","timings","totalTime","elapsed","startTime","endTime","record","fromEntries","records","total","numberOfInteruptions","interruption","__numberOfInteruptions","DEFAULT_DARK_COLOR_THEME","DEFAULT_DARK","TEMPORARY__globalCSSClassName","colors","LEGACY_LIGHT_COLOR_THEME","LEGACY_LIGHT","HIGH_CONTRAST_LIGHT_COLOR_THEME","HIGH_CONTRAST_LIGHT","LEGEND_APPLICATION_SETTING_KEY","LEGEND_APPLICATION_SETTING_CONFIG","COLOR_THEME","defaultValue","LayoutService","colorThemeRegistry","currentColorTheme","setBackdropContainerElementID","setShowBackdrop","setColorTheme","getExtraColorThemes","colorTheme","COLOR_THEME_CONFIGURATION_CHECK__FAILURE","themeKey","settingService","TEMPORARY__syncGlobalCSSClassName","querySelector","previousTheme","newColorTheme","previousColorTheme","persist","getColor","ClipboardService","clipboard","writeText","notifySuccessMessage","NavigationService","DOWNLOAD_EVENTS","SettingService","registry","getExtraSettingConfigurationEntries","SETTING_CONFIGURATION_CHECK__FAILURE","SETTING_RETRIVE_FAILURE","DefaultNavigator","goToLocation","reload","goToAddress","address","generateAddress","updateCurrentLocation","updateCurrentZone","zone","resetZone","getCurrentBaseAddress","getCurrentAddress","getCurrentLocation","getCurrentLocationParameters","getCurrentLocationParameterValue","getCurrentZone","blockNavigation","blockCheckers","onBlock","onNativePlatformNavigationBlock","unblockNavigation","isNavigationBlocked","INTERNAL__internalizeTransientParameter","UserDataService","USER_DATA_RETRIEVE_FAILURE","ApplicationStore","extensionStates","initState","platform","userDataService","terminalService","eventService","tracerService","getLoggerPlugins","getEventNotifierPlugins","getTelemetryServicePlugins","getTracerServicePlugins","getExtraApplicationExtensionStateBuilders","creator","getNavigator","APPLICATION_LOAD__FAILURE","ILLEGAL_APPLICATION_STATE_OCCURRED","actionFn","LegendApplicationLogger","LegendApplicationWebConsole","console","LegendApplication","basePresets","basePlugins","baseAddress","pluginRegister","_isConfigured","downloadHelperServiceWorkerPath","downloadHelper","withBasePresets","presets","withPresets","withBasePlugins","withPlugins","usePresets","usePlugins","withDownloadHelper","path","fetchApplicationConfiguration","client","configData","versionData","origin","APPLICATION_CONFIGURATION__FAILURE","configureApplication","extensions","loadDocumentationRegistryData","all","documentationRegistryEntries","getExtraDocumentationRegistryEntries","simple","docData","patterns","RegExp","pattern","test","DOCUMENTATION_FETCH__FAILURE","start","extensionConfigData","configure","install","getExtraApplicationSetups","loadApplication","workerPath","serviceWorker","register","reg","registerDownloadHelperServiceWorker","LEGEND_APPLICATION_ROOT_ELEMENT_TAG","PluginInfo","signature","getName","getVersion","getSignature","getUUID","getInfo","AbstractPluginManager","configObj","preset","getHiddenPluginNames","sort","a","b","localeCompare","getHiddenPresetNames","LegendApplicationPlugin","Core_LegendApplicationPlugin","NAME","registerApplicationPlugin","enforceActions","LegendApplicationConfig","appVersionBuildTime","appVersionCommitId","input","storageKey","getDefaultApplicationStorageKey","documentation","contextualEntries","buildTime","commitSHA","resolveAbsoluteUrl","LegendREPLGridClientApplicationConfig","replUrl","useDynamicREPLServer","repl","dynamic","LegendApplicationPluginManager","telemetryServicePlugins","tracerServicePlugins","eventNotifierPlugins","applicationPlugins","registerLoggerPlugin","registerTelemetryServicePlugin","registerTracerServicePlugin","registerEventNotifierPlugin","LegendREPLGridClientPluginManager","pureProtocolProcessorPlugins","pureGraphManagerPlugins","pureGraphPlugins","registerPureProtocolProcessorPlugin","registerPureGraphManagerPlugin","registerPureGraphPlugin","getPureGraphManagerPlugins","getPureProtocolProcessorPlugins","getPureGraphPlugins","LEGEND_APPLICATION_PARAM_TOKEN","BrowserNavigator","historyAPI","_isNavigationBlocked","_forceBypassNavigationBlocking","_blockCheckers","_beforeUnloadListener","checker","returnValue","historyApiClient","ignoreBlocking","onProceed","createHref","pathname","hash","withAppRoot","isFullUrl","parseUrl","query","getQueryParameters","paramValue","decodeURIComponent","getQueryParameterValue","history","pushState","onpopstate","forward","currentZone","params","stringifyQueryParams","ApplicationPlatform","BrowserPlatform","initialColorTheme","INITIAL_COLOR_THEME","ApplicationPlatformContext","BrowserPlatformProvider","BrowserEnvironmentProvider","basename","REPLServerClient","networkClient","getREPLGridServerResult","getIntialQueryLambda","executeLambda","lambda","isPaginationEnabled","getTypeaheadResults","parseQuery","getInitialREPLGridServerResult","getLicenseKey","REPLGridServerResult","currentQuery","LEGEND_REPL_EVENT","LEGEND_APPLICATION_REPL_SETTING_KEY","QUERY_FUNCTION","TDS_FILTER_OPERATION","TDS_FILTER_GROUP","TDS_AGGREGATION_FUNCTION","TDS_SORT_ORDER","FILTER_TYPE","ROOT_PACKAGE_NAME","ATOMIC_TEST_TYPE","PRIMITIVE_TYPE","CORE_PURE_PATH","MILESTONING_STEREOTYPE","MILESTONING_VERSION_PROPERTY_SUFFIX","PackageableElementPointerType","SUPPORTED_FUNCTIONS","TDSFilterCondition","operation","TDSFilter","columnType","conditions","groupOperation","TDSSort","order","TDSAggregation","function","_function","TDSGroupby","columns","groupKeys","aggregations","TDSRequest","startRow","endRow","groupBy","getTDSFilterOperation","filterOperation","EQUALS","NOT_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","BLANK","NOT_BLANK","CONTAINS","NOT_CONTAINS","STARTS_WITH","ENDS_WITH","getAggregationTDSColumnCustomizations","isAgGridLicenseEnabled","columnName","builder","col","STRING","allowedAggFuncs","DATE","DATETIME","STRICTDATE","DECIMAL","INTEGER","FLOAT","getTDSRowData","tds","_row","rowIdx","colIdx","String","rowNumber","PURE_GRAMMAR_TOKEN","buildCodeEditorTheme","vscodeThemeData","baseTheme","colorsOverride","rulesOverride","baseThemeData","rawData","rules","tokenColors","tokenColor","settings","scopes","scope","baseRule","fontStyle","rule","token","array","base","inherit","parseVSCodeTheme","BASE_PURE_LANGUAGE_COLOR_TOKENS","IDENTIFIER","NUMBER","COLOR","PACKAGE","PARSER","LANGUAGE_STRUCT","MULTIPLICITY","GENERICS","PROPERTY","PARAMETER","VARIABLE","TYPE","CODE_EDITOR_THEME","DEFAULT_DARK_THEME","SOLARIZED_DARK_THEME","BUILT_IN__VSCODE_DARK","GITHUB_DARK_THEME","GITHUB_DARK_DIMMED_THEME","MATERIAL_DEFAULT_THEME","MATERIAL_DARKER_THEME","ONE_DARK_PRO_THEME","ONE_DARK_PRO_DARKER_THEME","disposeCodeEditor","editor","getModel","getCodeEditorValue","EndOfLinePreference","LF","INTERNAL__DUMMY_PROBLEM_MARKER_OWNER","setErrorMarkers","editorModel","errors","ownerId","setModelMarkers","startLineNumber","startColumn","endLineNumber","endColumn","MarkerSeverity","clearMarkers","removeAllMarkers","normalizeLineEnding","CODE_EDITOR_LANGUAGE","SourceInformation","sourceId","startLine","endLine","QueryEditorState","parserError","setQuery","setParserError","sourceInformation","processSourceInformation","QueryEditor","editorStore","useREPLGridClientStore","queryEditorState","replGridState","onDidChangeModelContentEventDisposer","setEditor","textInputRef","autoCompleteSuggestionProviderDisposer","debouncedParseQuery","fl","onDidChangeModelContent","currentVal","cancel","currentValue","setValue","registerCompletionItemProvider","PURE","triggerCharacters","provideCompletionItems","model","position","suggestions","updateOptions","tabSize","_editor","contextmenu","copyWithSyntaxHighlighting","fontLigatures","fixedOverflowWidgets","detectIndentation","automaticLayout","BUILT_IN__VSCODE_LIGHT","REPLGridState","initialResult","currentResult","currentSubQuery","licenseKey","initialQueryLambda","setInitialResult","setCurrentSubQuery","setColumns","setInitialQueryLambda","setCurrentResult","setLicenseKey","setIsPaginationEnabled","rowData","columnDefs","c","field","headerName","CORE_HASH_STRUCTURE","sha1","update","digest","hashCode","V1_Multiplicity","lowerBound","upperBound","V1_ValueSpecification","V1_DataTypeValueSpecification","multiplicity","ONE","V1_PrimitiveValueSpecification","V1_CString","accept_ValueSpecificationVisitor","visitor","visit_CString","V1_CBoolean","visit_CBoolean","V1_CDecimal","visit_CDecimal","V1_CInteger","visit_CInteger","V1_CFloat","visit_CFloat","V1_CDate","V1_CDateTime","visit_CDateTime","V1_CStrictDate","visit_CStrictDate","V1_CStrictTime","visit_CStrictTime","V1_AbstractAppliedFunction","V1_AppliedFunction","fControl","visit_AppliedFunction","V1_CoreClassInstance","V1_Lambda","visit_Lambda","V1_Variable","class","visit_Variable","V1_AppliedProperty","property","visit_AppliedProperty","V1_ColSpec","function1","function2","V1_ClassInstance","visit_ClassInstance","V1_GraphFetchTree","subTrees","subTypeTrees","V1_RootGraphFetchTree","accept_GraphFetchTreeVisitor","visit_RootGraphFetchTree","V1_Path","startType","V1_Collection","ONE_MANY","visit_Collection","V1_AggregateValue","mapFn","aggregateFn","V1_Pair","first","second","V1_RuntimeInstance","runtime","V1_ExecutionContextInstance","executionContext","V1_PropertyGraphFetchTree","alias","subType","visit_PropertyGraphFetchTree","V1_SubTypeGraphFetchTree","subTypeClass","visit_SubTypeGraphFetchTree","V1_SerializationConfig","includeType","typeKeyName","includeEnumType","removePropertiesWithNullValues","removePropertiesWithEmptySets","fullyQualifiedTypePath","includeObjectReference","V1_KeyExpression","expression","visit_KeyExpression","V1_PureList","V1_TDSAggregateValue","pmapFn","V1_TDSColumnInformation","columnFn","V1_TDSSortInformation","direction","V1_TDSOlapRank","V1_TDSOlapAggregation","V1_PackageableElement","package","PACKAGEABLE_ELEMENT","V1_sourceInformationSerialization","V1_INTERNAL__PackageableElementWithSourceInformation","PACKAGEABLE_ELEMENT_POINTER","V1_multiplicityModelSchema","V1_PathElement","V1_PropertyPathElement","V1_Runtime","mappings","connectionStores","connections","ENGINE_RUNTIME","SINGLE_ENGINE_RUNTIME","V1_RuntimePointer","RUNTIME_POINTER","V1_RuntimeType","V1_runtimePointerModelSchema","_type","runtimeValue","PACKAGEABLE_RUNTIME","accept_PackageableElementVisitor","visit_PackageableRuntime","V1_serializeRuntimeValue","protocol","V1_deserializeRuntimeValue","V1_ExecutionContext","queryTimeOutInSeconds","enableConstraints","V1_AnalyticsExecutionContext","useAnalytics","toFlowSetFunction","V1_BaseExecutionContext","V1_PackageableElementPtr","fullPath","visit_PackageableElementPtr","V1_GenericTypeInstance","visit_GenericTypeInstance","V1_ColSpecArray","colSpecs","V1_RelationStoreAccessor","V1_ExecutionContextType","V1_PathElementType","V1_GraphFetchTreeType","V1_ClassInstanceType","V1_ValueSpecificationType","V1_variableModelSchema","lambdaModelSchema","LAMBDA","V1_serializeValueSpecification","V1_deserializeValueSpecification","keyExpressionModelSchema","KEY_EXPRESSION","appliedFunctionModelSchema","APPLIED_FUNCTION","appliedPropertyModelSchema","APPLIED_PROPERTY","packageableElementPtrSchema","PACKAGEABLE_ELEMENT_PTR","genericTypeInstanceSchema","GENERIC_TYPE_INSTANCE","deserializeHackedUnit","unitType","deserializeHackedClass","collectionModelSchema","COLLECTION","enumValueModelSchema","visit_EnumValue","ENUM_VALUE","CDecimalModelSchema","CDECIMAL","CIntegerModelSchema","CINTEGER","CStringModelSchema","CSTRING","CFloatModelSchema","CFLOAT","CDateTimeModelSchema","CDATETIME","CStrictTimeModelSchema","CSTRICTTIME","CStrictDateModelSchema","CSTRICTDATE","CLatestDateModelSchema","visit_CLatestDate","CLATESTDATE","CBooleanModelSchema","CBOOLEAN","CByteArrayModelSchema","visit_CByteArray","CBYTEARRAY","deserializePrimitiveValueSpecification","deserializer","collection","ZERO","classInstanceModelSchema","CLASS_INSTANCE","pathModelSchema","rootGraphFetchTreeModelSchema","executionContextInstanceModelSchema","aggregationValueModelSchema","pairModelSchema","pureListModelSchema","runtimeInstanceModelSchema","serializationConfigModelSchema","tdsAggregrateValueModelSchema","tdsColumnInformationModelSchema","tdsOlapAggregationModelSchema","tdsOlapRankModelSchema","tdsSortInformationModelSchema","colSpecModelSchema","colSpecArrayModelSchema","relationStoreAccessorModelSchema","serializers","V1_getExtraClassInstanceValueProtocolSerializers","serializer","V1_serializeClassInstanceValue","PATH","ROOT_GRAPH_FETCH_TREE","AGGREGATE_VALUE","EXECUTION_CONTEXT_INSTANCE","PAIR","PURE_LIST","RUNTIME_INSTANCE","SERIALIZATION_CONFIG","TDS_AGGREGATE_VALUE","TDS_COLUMN_INFORMATION","TDS_OLAP_AGGREGATION","TDS_OLAP_RANK","TDS_SORT_INFORMATION","COL_SPEC","COL_SPEC_ARRAY","RELATION_STORE_ACCESSOR","deserializers","V1_getExtraClassInstanceValueProtocolDeserializers","V1_deserializeClassInstanceValue","propertyPathElementModelSchema","PROPERTY_PATH_ELEMENT","V1_serializePathElement","V1_deserializePathElement","V1_serializeGraphFetchTree","V1_deserializeGraphFetchTree","propertyGraphFetchTreeModelSchema","PROPERTY_GRAPH_FETCH_TREE","subTypeGraphFetchTreeModelSchema","SUBTYPE_GRAPH_FETCH_TREE","analyticsExecutionContextModelSchema","ANALYTICS_EXECUTION_CONTEXT","baseExecutionContextModelSchema","BASE_EXECUTION_CONTEXT","V1_serializeExecutionContext","V1_deserializeExecutionContext","V1_serializeRuntime","includeEnumTypee","removePropertiesWithNullValuese","removePropertiesWithEmptySetse","fullyQualifiedTypePathe","includeObjectReferencee","V1_ValueSpecificationSerializer","visit_INTERNAL__UnknownValueSpecfication","valueSpecification","HACKED_CLASS","UNIT_TYPE","HACKED_UNIT","ENUM","CLASS","MAPPING_INSTANCE","getPrimitiveValueSpecification","stringValue","BOOLEAN","booleanValue","cDecimal","cInteger","cFloat","cDateTime","cStrictDate","STRICTTIME","cStrictTime","updateParentFunction","expressions","functionName","child","newExpressions","childFunc","getAggregationColSpec","colSpec","aggLambda","defaultVariable","funcLambda","aggFunc","aggVariable","BuilderType","ExecutionActivityType","EXECUTION_SERIALIZATION_FORMAT","ResultBuilder","ExecutionActivities","RelationalExecutionActivities","sql","comment","AggregationAwareActivities","rewrittenQuery","UnknownExecutionActivities","ExecutionResult","activities","JsonExecutionResult","RawExecutionResult","INTERNAL__TDSColumn","relationalType","doc","TDSBuilder","TDS_BUILDER","TDSRow","TabularDataSet","TDSExecutionResult","_UUID","ClassBuilder","CLASS_BUILDER","ClassExecutionResult","objects","V1_ResultBuilder","V1_ExecutionActivities","V1_RelationalExecutionActivities","V1_AggregationAwareActivities","V1_ExecutionResult","V1_UnknownExecutionActivity","V1_JsonExecutionResult","builderSerialization","V1_INTERNAL__TDSColumn","V1_TDSBuilder","V1_serializeExecutionActivities","RELATIONAL","RELATIONAL_EXECUTION_ACTIVITY","AGGREGATION_AWARE_ACTIVITY","V1_TDSExecutionResult","V1_ClassExecutionResult","V1_RawExecutionResult","V1_INTERNAL__UnknownExecutionResult","INTERNAL__UnknownExecutionResult","buildExecutionActivities","metamodel","INTERNAL__buildTDSColumn","V1_buildExecutionResult","buildClassExecutionResult","buildTDSBuilder","buildTDSExecutionResult","buildJSONExecutionResult","V1_serializeExecutionResult","JSON_BUILDER","V1_EngineErrorType","V1_EngineError","errorType","V1_ParserError","EngineError","ParserError","CompletionItem","completion","REPLGridClientStore","executeAction","getInitialQueryLambda","PAGINATION","tdsRequest","isSubQuery","funcBody","end","startValue","endValue","currentExpression","FROM","SLICE","sliceFunction","updateExpressionWithSlice","groupFilter","AND","filters","filterLambda","filterValue","groupCondition","conditionExpressions","condition","filterCondition","NOT","filterConditionFunc","groupFunc","andFunc","FILTER","processFilterOperations","groupByOperation","groupByInstance","groupByColSpecArray","aggregationColSpecArray","aggregationInstance","currentGroupByColumn","columnSpec","COUNT","aggColumns","agg","GROUPBY","processGroupByOperations","sortOperations","sortCollection","sortValue","sortFunc","SORT","processSortOperations","buildLambdaExpressions","resultObj","replGridResult","tdsResult","FETCH_TDS_FAILURE","textUntilPosition","getValueInRange","lineNumber","res","currentWord","getWordUntilPosition","kind","CompletionItemKind","Text","insertText","tdsResultObj","BAD_REQUEST","EditorStoreContext","REPLGridClientStoreProvider","withEditorStore","WrappedComponent","communityModules","enterpriseModules","allModules","AgGridComponent","rowGroupPanelShow","suppressBrowserResizeObserver","suppressScrollOnNewData","alwaysMultiSort","rowModelType","defaultColDef","minWidth","sortable","flex","resizable","enableRowGroup","enableValue","menuTabs","modules","ServerSideDataSource","executions","fetchRows","extractRequest","success","getRows","columnApi","getColumns","getColId","sortModel","colId","sortOrder","ASCENDING","DESCENDING","getTDSSortOrder","valueCols","v","colType","SUM","MIN","MAX","getAggregationFunction","rowGroupCols","r","filterModel","getFilterColumnType","filterType","operator","OR","BUILD_TDS_EQUEST_FAILURE","CodeEditor","inputValue","updateInput","lightTheme","isReadOnly","hideMinimap","hideGutter","hidePadding","hideActionBar","lineToScroll","extraEditorOptions","isWordWrap","setIsWordWrap","glyphMargin","padding","bottom","formatOnType","formatOnPaste","lineNumbersMinChars","log10","resetLineNumberGutterWidth","setModelLanguage","revealLineInCenter","readOnly","minimap","enabled","folding","lineNumbers","lineDecorationsWidth","updatedWordWrap","wordWrap","Editor","isLightTheme","BUILT_IN__VSCODE_HC_LIGHT","BUILT_IN__VSCODE_HC_BLACK","gridOptions","serverSideDatasource","suppressServerSideInfiniteScroll","ApplicationFrameworkProvider","LegendREPLGridClientBaseStore","LegendREPLGridClientBaseStoreContext","LegendREPLGridClientBaseStoreProvider","LegendREPLGridClientFrameworkProvider","LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN","freeze","GRID","LegendREPLGridClientRouter","exact","LegendREPLGridClientWebApplication","LegendREPLGridClientApplicationPlugin","_$nominalTypeBrand","PURE_ELEMENT_NAME","PURE_CONNECTION_NAME","PURE_PARSER","wordPattern","comments","lineComment","blockComment","brackets","autoClosingPairs","surroundingPairs","markers","Core_LegendREPLGridClientApplicationPlugin","extraKeywords","registerModules","fontLoadFailureErrorMessage","fonts","load","check","remeasureFonts","APPLICATION_SETUP__FAILURE","OVERRIDE_DEFAULT_KEYBINDING_COMMAND","accessor","hotkeyMapping","KeyCode","F1","F8","F9","KeyMod","WinCtrl","KeyG","KeyB","KeyO","KeyD","KeyP","Shift","F10","F2","F12","addKeybindingRules","nativeCodeEditorKeyBinding","keybinding","commandArgs","defineTheme","SOLARIZED_DARK","GITHUB_DARK","GITHUB_DARK_DIMMED","MATERIAL_DEFAULT","MATERIAL_DARKER","ONE_DARK_PRO","ONE_DARK_PRO_DARKER","configureCodeEditorComponent","setLanguageConfiguration","setMonarchTokensProvider","defaultToken","tokenPostfix","keywords","ASSOCIATION","ENUMERATION","MEASURE","PROFILE","FUNCTION","MAPPING","RUNTIME","CONNECTION","FILE_GENERATION","GENERATION_SPECIFICATION","DATA_ELEMENT","JSON_MODEL_CONNECTION","MODEL_CHAIN_CONNECTION","XML_MODEL_CONNECTION","SERVICE","FLAT_DATA","DATABASE","FLAT_DATA_CONNECTION","RELATIONAL_DATABASE_CONNECTION","operators","languageStructs","identifier","symbols","escapes","digits","octaldigits","binarydigits","hexdigits","generics","date","time","tokenizer","include","cases","KEYWORD","OPERATOR","DELIMITER","pure","WHITESPACE","color","number","whitespace","COMMENT","string","characters","LegendREPLGridClient","rootEl","getElementsByTagName","setAttribute","getApplicationRootElement","render","getPresetCollection","getPluginCollection","run","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","amdO","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","splice","n","getter","__esModule","d","getPrototypeOf","t","ns","def","getOwnPropertyNames","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}