@finos/legend-application-repl-deployment 11.43.0 → 11.45.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/repl/index.html +1 -1
- package/dist/repl/static/{index.237168cd.js → index.66bb5e1c.js} +2 -2
- package/dist/repl/static/index.66bb5e1c.js.map +1 -0
- package/dist/repl/static/{index.e4523ca6.css → index.99f721c9.css} +3 -3
- package/dist/repl/static/{index.e4523ca6.css.map → index.99f721c9.css.map} +1 -1
- package/dist/repl/version.json +1 -1
- package/package.json +3 -3
- package/dist/repl/static/index.237168cd.js.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"static/index.66bb5e1c.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 CORE_HASH_STRUCTURE[\"RELATION_COL_SPEC_ARRAY\"] = \"RELATION_COL_SPEC_ARRAY\";\n CORE_HASH_STRUCTURE[\"RELATION_COL_SPEC\"] = \"RELATION_COL_SPEC\";\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":""}
|