@finos/legend-application-repl 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/lib/__lib__/LegendREPLSetting.d.ts +22 -0
  2. package/lib/__lib__/LegendREPLSetting.d.ts.map +1 -0
  3. package/lib/__lib__/LegendREPLSetting.js +23 -0
  4. package/lib/__lib__/LegendREPLSetting.js.map +1 -0
  5. package/lib/components/LegendREPLApplication.d.ts.map +1 -1
  6. package/lib/components/LegendREPLApplication.js +17 -8
  7. package/lib/components/LegendREPLApplication.js.map +1 -1
  8. package/lib/index.css +1 -1
  9. package/lib/package.json +5 -5
  10. package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts +9 -4
  11. package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts.map +1 -1
  12. package/lib/stores/LegendREPLDataCubeApplicationEngine.js +21 -6
  13. package/lib/stores/LegendREPLDataCubeApplicationEngine.js.map +1 -1
  14. package/lib/stores/LegendREPLDataCubeEngine.d.ts +8 -1
  15. package/lib/stores/LegendREPLDataCubeEngine.d.ts.map +1 -1
  16. package/lib/stores/LegendREPLDataCubeEngine.js +38 -18
  17. package/lib/stores/LegendREPLDataCubeEngine.js.map +1 -1
  18. package/lib/stores/LegendREPLServerClient.d.ts +3 -3
  19. package/lib/stores/LegendREPLServerClient.d.ts.map +1 -1
  20. package/lib/stores/LegendREPLServerClient.js +2 -2
  21. package/lib/stores/LegendREPLServerClient.js.map +1 -1
  22. package/package.json +11 -11
  23. package/src/__lib__/LegendREPLSetting.ts +22 -0
  24. package/src/components/LegendREPLApplication.tsx +31 -12
  25. package/src/stores/LegendREPLDataCubeApplicationEngine.ts +40 -12
  26. package/src/stores/LegendREPLDataCubeEngine.ts +71 -18
  27. package/src/stores/LegendREPLServerClient.ts +12 -6
  28. package/tsconfig.json +1 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum LEGEND_REPL_SETTING_KEY {
17
+ ENABLE_DEBUG_MODE = "legend-repl.engine.enableDebugMode",
18
+ GRID_CLIENT_ROW_BUFFER = "legend-repl.engine.grid-client.rowBuffer",
19
+ GRID_CLIENT_PURGE_CLOSED_ROW_NODES = "legend-repl.engine.grid-client.purgeClosedRowNodes",
20
+ GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING = "legend-repl.engine.grid-client.suppressLargeDatasetWarning"
21
+ }
22
+ //# sourceMappingURL=LegendREPLSetting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendREPLSetting.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendREPLSetting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,oBAAY,uBAAuB;IACjC,iBAAiB,uCAAuC;IACxD,sBAAsB,6CAA6C;IACnE,kCAAkC,uDAAuD;IACzF,0CAA0C,+DAA+D;CAC1G"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export var LEGEND_REPL_SETTING_KEY;
17
+ (function (LEGEND_REPL_SETTING_KEY) {
18
+ LEGEND_REPL_SETTING_KEY["ENABLE_DEBUG_MODE"] = "legend-repl.engine.enableDebugMode";
19
+ LEGEND_REPL_SETTING_KEY["GRID_CLIENT_ROW_BUFFER"] = "legend-repl.engine.grid-client.rowBuffer";
20
+ LEGEND_REPL_SETTING_KEY["GRID_CLIENT_PURGE_CLOSED_ROW_NODES"] = "legend-repl.engine.grid-client.purgeClosedRowNodes";
21
+ LEGEND_REPL_SETTING_KEY["GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING"] = "legend-repl.engine.grid-client.suppressLargeDatasetWarning";
22
+ })(LEGEND_REPL_SETTING_KEY || (LEGEND_REPL_SETTING_KEY = {}));
23
+ //# sourceMappingURL=LegendREPLSetting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegendREPLSetting.js","sourceRoot":"","sources":["../../src/__lib__/LegendREPLSetting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,mFAAwD,CAAA;IACxD,8FAAmE,CAAA;IACnE,oHAAyF,CAAA;IACzF,oIAAyG,CAAA;AAC3G,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendREPLApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqDH,eAAO,MAAM,qCAAqC;;EAEhD,CAAC;AAEH,eAAO,MAAM,gBAAgB;;CAa3B,CAAC;AAEH,eAAO,MAAM,wBAAwB,UAAW;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,4CAUlE,CAAC"}
1
+ {"version":3,"file":"LegendREPLApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendREPLApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA4EH,eAAO,MAAM,qCAAqC;;EAEhD,CAAC;AAEH,eAAO,MAAM,gBAAgB;;CAS3B,CAAC;AAEH,eAAO,MAAM,wBAAwB,UAAW;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,4CAUlE,CAAC"}
@@ -14,32 +14,41 @@ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { BrowserEnvironmentProvider, Route, Switch, } from '@finos/legend-application/browser';
17
+ import { BrowserEnvironmentProvider, Route, Routes, } from '@finos/legend-application/browser';
18
18
  import { observer } from 'mobx-react-lite';
19
- import { useMemo } from 'react';
20
- import { guaranteeNonNullable, NetworkClient } from '@finos/legend-shared';
19
+ import { useEffect, useMemo } from 'react';
20
+ import { guaranteeNonNullable, LogEvent, NetworkClient, } from '@finos/legend-shared';
21
21
  import { LegendREPLServerClient } from '../stores/LegendREPLServerClient.js';
22
22
  import { LegendREPLDataCubeApplicationEngine } from '../stores/LegendREPLDataCubeApplicationEngine.js';
23
23
  import { LegendREPLDataCubeEngine } from '../stores/LegendREPLDataCubeEngine.js';
24
24
  import { DataCube, DataCubeProvider } from '@finos/legend-data-cube';
25
- import { ApplicationFrameworkProvider, useApplicationStore, } from '@finos/legend-application';
25
+ import { APPLICATION_EVENT, ApplicationFrameworkProvider, useApplicationStore, } from '@finos/legend-application';
26
26
  const LegendREPLDataCube = observer(() => {
27
27
  const applicationStore = useApplicationStore();
28
28
  const application = useMemo(() => new LegendREPLDataCubeApplicationEngine(applicationStore), [applicationStore]);
29
- const engine = new LegendREPLDataCubeEngine(new LegendREPLServerClient(new NetworkClient({
29
+ const engine = new LegendREPLDataCubeEngine(application, new LegendREPLServerClient(new NetworkClient({
30
30
  baseUrl: applicationStore.config.useDynamicREPLServer
31
31
  ? window.location.origin +
32
32
  guaranteeNonNullable(applicationStore.config.baseAddress).replace('/repl/', '')
33
33
  : applicationStore.config.replUrl,
34
34
  })));
35
+ useEffect(() => {
36
+ application.blockNavigation(
37
+ // Only block navigation in production
38
+ // eslint-disable-next-line no-process-env
39
+ [() => process.env.NODE_ENV === 'production'], undefined, () => {
40
+ application.logWarning(LogEvent.create(APPLICATION_EVENT.NAVIGATION_BLOCKED), `Navigation from the application is blocked`);
41
+ });
42
+ return () => {
43
+ application.unblockNavigation();
44
+ };
45
+ }, [application]);
35
46
  return (_jsx(DataCubeProvider, { application: application, engine: engine, children: _jsx(DataCube, {}) }));
36
47
  });
37
48
  export const LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN = Object.freeze({
38
49
  DATA_CUBE: `/dataCube`,
39
50
  });
40
- export const LegendREPLRouter = observer(() => (_jsx("div", { className: "h-full", children: _jsx(Switch, { children: _jsx(Route, { exact: true, path: [LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN.DATA_CUBE], component:
41
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
42
- LegendREPLDataCube }) }) })));
51
+ export const LegendREPLRouter = observer(() => (_jsx("div", { className: "h-full", children: _jsx(Routes, { children: _jsx(Route, { path: LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN.DATA_CUBE, element: _jsx(LegendREPLDataCube, {}) }) }) })));
43
52
  export const LegendREPLWebApplication = (props) => {
44
53
  const { baseUrl } = props;
45
54
  return (_jsx(BrowserEnvironmentProvider, { baseUrl: baseUrl, children: _jsx(ApplicationFrameworkProvider, { simple: true, children: _jsx(LegendREPLRouter, {}) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLApplication.js","sourceRoot":"","sources":["../../src/components/LegendREPLApplication.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,EAC1B,KAAK,EACL,MAAM,GAEP,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,mCAAmC,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GAGpB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE;IACvC,MAAM,gBAAgB,GAAG,mBAAmB,EAGzC,CAAC;IACJ,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,IAAI,mCAAmC,CAAC,gBAAgB,CAAC,EAC/D,CAAC,gBAAgB,CAAC,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,wBAAwB,CACzC,IAAI,sBAAsB,CACxB,IAAI,aAAa,CAAC;QAChB,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,oBAAoB;YACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;gBACtB,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAC/D,QAAQ,EACR,EAAE,CACH;YACH,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO;KACpC,CAAC,CACH,CACF,CAAC;IAEF,OAAO,CACL,KAAC,gBAAgB,IAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YACxD,KAAC,QAAQ,KAAG,GACK,CACpB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,MAAM,CAAC;IACjE,SAAS,EAAE,WAAW;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAC7C,cAAK,SAAS,EAAC,QAAQ,YACrB,KAAC,MAAM,cACL,KAAC,KAAK,IACJ,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,CAAC,qCAAqC,CAAC,SAAS,CAAC,EACvD,SAAS;YACP,mEAAmE;YACnE,kBAAyD,GAE3D,GACK,GACL,CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAA0B,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,OAAO,CACL,KAAC,0BAA0B,IAAC,OAAO,EAAE,OAAO,YAC1C,KAAC,4BAA4B,IAAC,MAAM,EAAE,IAAI,YACxC,KAAC,gBAAgB,KAAG,GACS,GACJ,CAC9B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"LegendREPLApplication.js","sourceRoot":"","sources":["../../src/components/LegendREPLApplication.tsx"],"names":[],"mappings":"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"}
package/lib/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /** @license @finos/legend-application-repl v1.0.4
1
+ /** @license @finos/legend-application-repl v1.0.6
2
2
  * Copyright (c) 2020-present, Goldman Sachs
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-repl",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Legend REPL Grid client application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -48,7 +48,7 @@
48
48
  "@finos/legend-data-cube": "workspace:*",
49
49
  "@finos/legend-graph": "workspace:*",
50
50
  "@finos/legend-shared": "workspace:*",
51
- "@types/react": "18.3.9",
51
+ "@types/react": "18.3.11",
52
52
  "@types/react-dom": "18.3.0",
53
53
  "mobx": "6.13.3",
54
54
  "mobx-react-lite": "4.0.7",
@@ -59,12 +59,12 @@
59
59
  "@finos/legend-dev-utils": "workspace:*",
60
60
  "@jest/globals": "29.7.0",
61
61
  "cross-env": "7.0.3",
62
- "eslint": "8.57.1",
62
+ "eslint": "9.12.0",
63
63
  "jest": "29.7.0",
64
64
  "npm-run-all": "4.1.5",
65
65
  "rimraf": "6.0.1",
66
- "sass": "1.79.3",
67
- "typescript": "5.6.2"
66
+ "sass": "1.79.4",
67
+ "typescript": "5.6.3"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "react": "^18.0.0"
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { type DocumentationEntry, LogEvent } from '@finos/legend-shared';
17
- import { DataCubeApplicationEngine, type ActionAlert } from '@finos/legend-data-cube';
17
+ import { DataCubeApplicationEngine } from '@finos/legend-data-cube';
18
18
  import type { LegendREPLApplicationStore } from '../application/LegendREPLApplicationStore.js';
19
19
  export declare class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngine {
20
20
  private readonly application;
@@ -25,14 +25,19 @@ export declare class LegendREPLDataCubeApplicationEngine extends DataCubeApplica
25
25
  shouldDisplayDocumentationEntry(entry: DocumentationEntry): boolean;
26
26
  openLink(url: string): void;
27
27
  setWindowTitle(title: string): void;
28
- alertAction(alertInfo: ActionAlert | undefined): void;
29
- alertUnhandledError(error: Error): void;
28
+ blockNavigation(blockCheckers: (() => boolean)[], onBlock?: ((onProceed: () => void) => void) | undefined, onNativePlatformNavigationBlock?: (() => void) | undefined): void;
29
+ unblockNavigation(): void;
30
30
  logDebug(message: string, ...data: unknown[]): void;
31
- debugProcess(processName: string, ...data: unknown[]): void;
31
+ debugProcess(processName: string, ...data: [string, unknown][]): void;
32
32
  logInfo(event: LogEvent, ...data: unknown[]): void;
33
33
  logWarning(event: LogEvent, ...data: unknown[]): void;
34
34
  logError(event: LogEvent, ...data: unknown[]): void;
35
35
  logUnhandledError(error: Error): void;
36
36
  logIllegalStateError(message: string, error?: Error): void;
37
+ getPersistedNumericValue(key: string): number | undefined;
38
+ getPersistedStringValue(key: string): string | undefined;
39
+ getPersistedBooleanValue(key: string): boolean | undefined;
40
+ getPersistedObjectValue(key: string): object | undefined;
41
+ persistValue(key: string, value: string | number | boolean | object | undefined): void;
37
42
  }
38
43
  //# sourceMappingURL=LegendREPLDataCubeApplicationEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLDataCubeApplicationEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeApplicationEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,KAAK,kBAAkB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,yBAAyB,EACzB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE/F,qBAAa,mCAAoC,SAAQ,yBAAyB;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAE7C,WAAW,EAAE,0BAA0B;IAMnD,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,qBAAqB,CAAC,GAAG,EAAE,MAAM;IAIjC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB;IAIhD,+BAA+B,CAAC,KAAK,EAAE,kBAAkB;IAIzD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,WAAW,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS;IAI9C,mBAAmB,CAAC,KAAK,EAAE,KAAK;IAIhC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAQ5C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IASpD,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI3C,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI9C,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI5C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAI9B,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAOpD"}
1
+ {"version":3,"file":"LegendREPLDataCubeApplicationEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeApplicationEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,KAAK,kBAAkB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE/F,qBAAa,mCAAoC,SAAQ,yBAAyB;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAE7C,WAAW,EAAE,0BAA0B;IAMnD,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,qBAAqB,CAAC,GAAG,EAAE,MAAM;IAIjC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB;IAIhD,+BAA+B,CAAC,KAAK,EAAE,kBAAkB;IAIzD,QAAQ,CAAC,GAAG,EAAE,MAAM;IAIpB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,eAAe,CACb,aAAa,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,EAChC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,EACvD,+BAA+B,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAS5D,iBAAiB;IAIjB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAQ5C,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAS9D,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI3C,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI9C,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI5C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAI9B,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAQnD,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIzD,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI1D,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIxD,YAAY,CACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GACpD,IAAI;CAGR"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { shouldDisplayVirtualAssistantDocumentationEntry, APPLICATION_EVENT, } from '@finos/legend-application';
17
17
  import { LogEvent } from '@finos/legend-shared';
18
- import { DataCubeApplicationEngine, } from '@finos/legend-data-cube';
18
+ import { DataCubeApplicationEngine } from '@finos/legend-data-cube';
19
19
  export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngine {
20
20
  application;
21
21
  constructor(application) {
@@ -40,17 +40,17 @@ export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngi
40
40
  setWindowTitle(title) {
41
41
  this.application.layoutService.setWindowTitle(title);
42
42
  }
43
- alertAction(alertInfo) {
44
- this.currentActionAlert = alertInfo;
43
+ blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock) {
44
+ this.application.navigationService.navigator.blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock);
45
45
  }
46
- alertUnhandledError(error) {
47
- this.application.alertUnhandledError(error);
46
+ unblockNavigation() {
47
+ this.application.navigationService.navigator.unblockNavigation();
48
48
  }
49
49
  logDebug(message, ...data) {
50
50
  this.application.logService.debug(LogEvent.create(APPLICATION_EVENT.DEBUG), message, ...data);
51
51
  }
52
52
  debugProcess(processName, ...data) {
53
- this.application.logService.debug(LogEvent.create(APPLICATION_EVENT.DEBUG), `\n------ START DEBUG PROCESS: ${processName} ------\n`, ...data, `\n------- END DEBUG PROCESS: ${processName} -------\n`);
53
+ this.application.logService.debug(LogEvent.create(APPLICATION_EVENT.DEBUG), `\n------ START DEBUG PROCESS: ${processName} ------`, ...data.flatMap(([key, value]) => [`\n[${key.toUpperCase()}]:`, value]), `\n------- END DEBUG PROCESS: ${processName} -------\n\n`);
54
54
  }
55
55
  logInfo(event, ...data) {
56
56
  this.application.logService.info(event, ...data);
@@ -67,5 +67,20 @@ export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngi
67
67
  logIllegalStateError(message, error) {
68
68
  this.logError(LogEvent.create(APPLICATION_EVENT.ILLEGAL_APPLICATION_STATE_OCCURRED), message, error);
69
69
  }
70
+ getPersistedNumericValue(key) {
71
+ return this.application.settingService.getNumericValue(key);
72
+ }
73
+ getPersistedStringValue(key) {
74
+ return this.application.settingService.getStringValue(key);
75
+ }
76
+ getPersistedBooleanValue(key) {
77
+ return this.application.settingService.getBooleanValue(key);
78
+ }
79
+ getPersistedObjectValue(key) {
80
+ return this.application.settingService.getObjectValue(key);
81
+ }
82
+ persistValue(key, value) {
83
+ this.application.settingService.persistValue(key, value);
84
+ }
70
85
  }
71
86
  //# sourceMappingURL=LegendREPLDataCubeApplicationEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLDataCubeApplicationEngine.js","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeApplicationEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,+CAA+C,EAC/C,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA2B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,yBAAyB,GAE1B,MAAM,yBAAyB,CAAC;AAGjC,MAAM,OAAO,mCAAoC,SAAQ,yBAAyB;IAC/D,WAAW,CAA6B;IAEzD,YAAY,WAAuC;QACjD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,sBAAsB,CAAC,KAAyB;QAC9C,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,+BAA+B,CAAC,KAAyB;QACvD,OAAO,+CAA+C,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,SAAkC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,KAAY;QAC9B,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,GAAG,IAAe;QAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAC/B,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACxC,OAAO,EACP,GAAG,IAAI,CACR,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,GAAG,IAAe;QAClD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAC/B,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACxC,iCAAiC,WAAW,WAAW,EACvD,GAAG,IAAI,EACP,gCAAgC,WAAW,YAAY,CACxD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAe,EAAE,GAAG,IAAe;QACzC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,UAAU,CAAC,KAAe,EAAE,GAAG,IAAe;QAC5C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ,CAAC,KAAe,EAAE,GAAG,IAAe;QAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC5B,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,OAAe,EAAE,KAAa;QACjD,IAAI,CAAC,QAAQ,CACX,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,EACrE,OAAO,EACP,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"LegendREPLDataCubeApplicationEngine.js","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeApplicationEngine.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,19 @@
16
16
  import type { LegendREPLServerClient } from './LegendREPLServerClient.js';
17
17
  import { DataCubeEngine, DataCubeGetBaseQueryResult, type CompletionItem, type DataCubeInfrastructureInfo, type RelationType } from '@finos/legend-data-cube';
18
18
  import { TDSExecutionResult, type V1_Lambda, type V1_ValueSpecification } from '@finos/legend-graph';
19
+ import type { LegendREPLDataCubeApplicationEngine } from './LegendREPLDataCubeApplicationEngine.js';
19
20
  export declare class LegendREPLDataCubeEngine extends DataCubeEngine {
21
+ readonly application: LegendREPLDataCubeApplicationEngine;
20
22
  readonly client: LegendREPLServerClient;
21
- constructor(client: LegendREPLServerClient);
23
+ constructor(application: LegendREPLDataCubeApplicationEngine, client: LegendREPLServerClient);
24
+ setEnableDebugMode(value: boolean): void;
25
+ setGridClientRowBuffer(value: number): void;
26
+ setGridClientPurgeClosedRowNodes(value: boolean): void;
27
+ setGridClientSuppressLargeDatasetWarning(value: boolean): void;
22
28
  getInfrastructureInfo(): Promise<DataCubeInfrastructureInfo>;
23
29
  getQueryTypeahead(code: string, query: V1_ValueSpecification): Promise<CompletionItem[]>;
24
30
  parseQuery(code: string, returnSourceInformation?: boolean): Promise<V1_ValueSpecification>;
31
+ getQueryCode(query: V1_ValueSpecification, pretty?: boolean): Promise<string>;
25
32
  getBaseQuery(): Promise<DataCubeGetBaseQueryResult>;
26
33
  getQueryRelationType(query: V1_ValueSpecification): Promise<RelationType>;
27
34
  getQueryCodeRelationReturnType(code: string, baseQuery: V1_ValueSpecification): Promise<RelationType>;
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAKlB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAE5B,MAAM,EAAE,sBAAsB;IAsBpC,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI5D,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC;IAOtB,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAO3B,YAAY,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAMnD,oBAAoB,CACxB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,YAAY,CAAC;IAMlB,8BAA8B,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,YAAY,CAAC;IAOlB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAC5C,MAAM,EAAE,kBAAkB,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CAgBH"}
1
+ {"version":3,"file":"LegendREPLDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,0BAA0B,EAK1B,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAKlB,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAGpG,qBAAa,wBAAyB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,WAAW,EAAE,mCAAmC,CAAC;IAC1D,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAGtC,WAAW,EAAE,mCAAmC,EAChD,MAAM,EAAE,sBAAsB;IAyBvB,kBAAkB,CAAC,KAAK,EAAE,OAAO;IAQjC,sBAAsB,CAAC,KAAK,EAAE,MAAM;IAQpC,gCAAgC,CAAC,KAAK,EAAE,OAAO;IAQ/C,wCAAwC,CAAC,KAAK,EAAE,OAAO;IAQ1D,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI5D,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,cAAc,EAAE,CAAC;IAOtB,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,uBAAuB,CAAC,EAAE,OAAO,GAChC,OAAO,CAAC,qBAAqB,CAAC;IAOxB,YAAY,CACnB,KAAK,EAAE,qBAAqB,EAC5B,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC;IAOZ,YAAY,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAMnD,oBAAoB,CACxB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,YAAY,CAAC;IAMlB,8BAA8B,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,YAAY,CAAC;IAOlB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAC5C,MAAM,EAAE,kBAAkB,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CAgBH"}
@@ -13,40 +13,60 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { action, makeObservable, observable } from 'mobx';
17
- import { DataCubeEngine, DataCubeGetBaseQueryResult, } from '@finos/legend-data-cube';
16
+ import { DataCubeEngine, DataCubeGetBaseQueryResult, DEFAULT_ENABLE_DEBUG_MODE, DEFAULT_GRID_CLIENT_PURGE_CLOSED_ROW_NODES, DEFAULT_GRID_CLIENT_ROW_BUFFER, DEFAULT_GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING, } from '@finos/legend-data-cube';
18
17
  import { TDSExecutionResult, V1_buildExecutionResult, V1_deserializeValueSpecification, V1_serializeExecutionResult, V1_serializeValueSpecification, } from '@finos/legend-graph';
19
18
  import { guaranteeType } from '@finos/legend-shared';
19
+ import { LEGEND_REPL_SETTING_KEY } from '../__lib__/LegendREPLSetting.js';
20
20
  export class LegendREPLDataCubeEngine extends DataCubeEngine {
21
+ application;
21
22
  client;
22
- constructor(client) {
23
+ constructor(application, client) {
23
24
  super();
24
- makeObservable(this, {
25
- enableDebugMode: observable,
26
- setEnableDebugMode: action,
27
- enableEngineDebugMode: observable,
28
- setEnableEngineDebugMode: action,
29
- gridClientRowBuffer: observable,
30
- setGridClientRowBuffer: action,
31
- gridClientPurgeClosedRowNodes: observable,
32
- setGridClientPurgeClosedRowNodes: action,
33
- gridClientSuppressLargeDatasetWarning: observable,
34
- setGridClientSuppressLargeDatasetWarning: action,
35
- });
25
+ this.application = application;
36
26
  this.client = client;
27
+ this.enableDebugMode =
28
+ this.application.getPersistedBooleanValue(LEGEND_REPL_SETTING_KEY.ENABLE_DEBUG_MODE) ?? DEFAULT_ENABLE_DEBUG_MODE;
29
+ this.gridClientRowBuffer =
30
+ this.application.getPersistedNumericValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_ROW_BUFFER) ?? DEFAULT_GRID_CLIENT_ROW_BUFFER;
31
+ this.gridClientPurgeClosedRowNodes =
32
+ this.application.getPersistedBooleanValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_PURGE_CLOSED_ROW_NODES) ?? DEFAULT_GRID_CLIENT_PURGE_CLOSED_ROW_NODES;
33
+ this.gridClientSuppressLargeDatasetWarning =
34
+ this.application.getPersistedBooleanValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING) ?? DEFAULT_GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING;
35
+ }
36
+ setEnableDebugMode(value) {
37
+ super.setEnableDebugMode(value);
38
+ this.application.persistValue(LEGEND_REPL_SETTING_KEY.ENABLE_DEBUG_MODE, value);
39
+ }
40
+ setGridClientRowBuffer(value) {
41
+ super.setGridClientRowBuffer(value);
42
+ this.application.persistValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_ROW_BUFFER, value);
43
+ }
44
+ setGridClientPurgeClosedRowNodes(value) {
45
+ super.setGridClientPurgeClosedRowNodes(value);
46
+ this.application.persistValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_PURGE_CLOSED_ROW_NODES, value);
47
+ }
48
+ setGridClientSuppressLargeDatasetWarning(value) {
49
+ super.setGridClientSuppressLargeDatasetWarning(value);
50
+ this.application.persistValue(LEGEND_REPL_SETTING_KEY.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING, value);
37
51
  }
38
52
  async getInfrastructureInfo() {
39
53
  return this.client.getInfrastructureInfo();
40
54
  }
41
55
  async getQueryTypeahead(code, query) {
42
- return (await this.client.getQueryTypeahead({
56
+ return this.client.getQueryTypeahead({
43
57
  code,
44
58
  baseQuery: V1_serializeValueSpecification(query, []),
45
- }));
59
+ });
46
60
  }
47
61
  async parseQuery(code, returnSourceInformation) {
48
62
  return V1_deserializeValueSpecification(await this.client.parseQuery({ code, returnSourceInformation }), []);
49
63
  }
64
+ getQueryCode(query, pretty) {
65
+ return this.client.getQueryCode({
66
+ query: V1_serializeValueSpecification(query, []),
67
+ pretty,
68
+ });
69
+ }
50
70
  async getBaseQuery() {
51
71
  return DataCubeGetBaseQueryResult.serialization.fromJson(await this.client.getBaseQuery());
52
72
  }
@@ -64,7 +84,7 @@ export class LegendREPLDataCubeEngine extends DataCubeEngine {
64
84
  async executeQuery(query) {
65
85
  const result = await this.client.executeQuery({
66
86
  query: V1_serializeValueSpecification(query, []),
67
- debug: this.enableEngineDebugMode,
87
+ debug: this.enableDebugMode,
68
88
  });
69
89
  return {
70
90
  result: guaranteeType(V1_buildExecutionResult(V1_serializeExecutionResult(JSON.parse(result.result))), TDSExecutionResult),
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLDataCubeEngine.js","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,0BAA0B,GAI3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gCAAgC,EAChC,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IACjD,MAAM,CAAyB;IAExC,YAAY,MAA8B;QACxC,KAAK,EAAE,CAAC;QAER,cAAc,CAAC,IAAI,EAAE;YACnB,eAAe,EAAE,UAAU;YAC3B,kBAAkB,EAAE,MAAM;YAE1B,qBAAqB,EAAE,UAAU;YACjC,wBAAwB,EAAE,MAAM;YAEhC,mBAAmB,EAAE,UAAU;YAC/B,sBAAsB,EAAE,MAAM;YAE9B,6BAA6B,EAAE,UAAU;YACzC,gCAAgC,EAAE,MAAM;YAExC,qCAAqC,EAAE,UAAU;YACjD,wCAAwC,EAAE,MAAM;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAY,EACZ,KAA4B;QAE5B,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC1C,IAAI;YACJ,SAAS,EAAE,8BAA8B,CAAC,KAAK,EAAE,EAAE,CAAC;SACrD,CAAC,CAAqB,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,uBAAiC;QAEjC,OAAO,gCAAgC,CACrC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAC/D,EAAE,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,0BAA0B,CAAC,aAAa,CAAC,QAAQ,CACtD,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAA4B;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC;YAC5C,KAAK,EAAE,8BAA8B,CAAC,KAAK,EAAE,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,8BAA8B,CAClC,IAAY,EACZ,SAAgC;QAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC;YAChD,IAAI;YACJ,SAAS,EAAE,8BAA8B,CAAC,SAAS,EAAE,EAAE,CAAC;SACzD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAgB;QAKjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC5C,KAAK,EAAE,8BAA8B,CAAC,KAAK,EAAE,EAAE,CAAC;YAChD,KAAK,EAAE,IAAI,CAAC,qBAAqB;SAClC,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,aAAa,CACnB,uBAAuB,CACrB,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACvD,EACD,kBAAkB,CACnB;YACD,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"LegendREPLDataCubeEngine.js","sourceRoot":"","sources":["../../src/stores/LegendREPLDataCubeEngine.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import type { CompletionItem, RelationType, DataCubeGetBaseQueryResult, DataCube
18
18
  import type { V1_Lambda, V1_ValueSpecification } from '@finos/legend-graph';
19
19
  type DataCubeGetQueryCodeInput = {
20
20
  query: PlainObject<V1_ValueSpecification>;
21
- pretty?: boolean;
21
+ pretty?: boolean | undefined;
22
22
  };
23
23
  type DataCubeParseQueryInput = {
24
24
  code: string;
@@ -50,9 +50,9 @@ export declare class LegendREPLServerClient {
50
50
  get baseUrl(): string;
51
51
  private get dataCube();
52
52
  getInfrastructureInfo(): Promise<DataCubeInfrastructureInfo>;
53
- getQueryTypeahead(input: DataCubeQueryTypeaheadInput): Promise<PlainObject<CompletionItem>[]>;
53
+ getQueryTypeahead(input: DataCubeQueryTypeaheadInput): Promise<CompletionItem[]>;
54
54
  parseQuery(input: DataCubeParseQueryInput): Promise<PlainObject<V1_ValueSpecification>>;
55
- getQueryCode(input: DataCubeGetQueryCodeInput): Promise<PlainObject<string>>;
55
+ getQueryCode(input: DataCubeGetQueryCodeInput): Promise<string>;
56
56
  getBaseQuery(): Promise<PlainObject<DataCubeGetBaseQueryResult>>;
57
57
  getQueryRelationReturnType(input: DataCubeGetQueryRelationReturnTypeInput): Promise<RelationType>;
58
58
  getQueryCodeRelationReturnType(input: DataCubeGetQueryCodeRelationReturnTypeInput): Promise<RelationType>;
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLServerClient.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLServerClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,KAAK,yBAAyB,GAAG;IAC/B,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,uCAAuC,GAAG;IAC7C,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,KAAK,2CAA2C,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,aAAa,EAAE,aAAa;IAIxC,IAAI,OAAO,IAAI,MAAM,CAKpB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAEK,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI5D,iBAAiB,CACrB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;IAInC,UAAU,CACd,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAGxC,YAAY,CAChB,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAIzB,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAIhE,0BAA0B,CAC9B,KAAK,EAAE,uCAAuC,GAC7C,OAAO,CAAC,YAAY,CAAC;IAOlB,8BAA8B,CAClC,KAAK,EAAE,2CAA2C,GACjD,OAAO,CAAC,YAAY,CAAC;IAOlB,YAAY,CAChB,KAAK,EAAE,WAAW,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,uBAAuB,CAAC;CAGpC"}
1
+ {"version":3,"file":"LegendREPLServerClient.d.ts","sourceRoot":"","sources":["../../src/stores/LegendREPLServerClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,KAAK,yBAAyB,GAAG;IAC/B,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,uCAAuC,GAAG;IAC7C,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,KAAK,2CAA2C,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAChD,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,aAAa,EAAE,aAAa;IAIxC,IAAI,OAAO,IAAI,MAAM,CAKpB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAEK,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAI5D,iBAAiB,CACrB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,cAAc,EAAE,CAAC;IAItB,UAAU,CACd,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAIxC,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAS/D,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAIhE,0BAA0B,CAC9B,KAAK,EAAE,uCAAuC,GAC7C,OAAO,CAAC,YAAY,CAAC;IAOlB,8BAA8B,CAClC,KAAK,EAAE,2CAA2C,GACjD,OAAO,CAAC,YAAY,CAAC;IAOlB,YAAY,CAChB,KAAK,EAAE,WAAW,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,uBAAuB,CAAC;CAGpC"}
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { guaranteeNonNullable, } from '@finos/legend-shared';
16
+ import { ContentType, guaranteeNonNullable, HttpHeader, } from '@finos/legend-shared';
17
17
  export class LegendREPLServerClient {
18
18
  networkClient;
19
19
  constructor(networkClient) {
@@ -35,7 +35,7 @@ export class LegendREPLServerClient {
35
35
  return this.networkClient.post(`${this.dataCube}/parseQuery`, input);
36
36
  }
37
37
  async getQueryCode(input) {
38
- return this.networkClient.post(`${this.dataCube}/getQueryCode`, input);
38
+ return this.networkClient.post(`${this.dataCube}/getQueryCode`, input, {}, { [HttpHeader.ACCEPT]: ContentType.TEXT_PLAIN });
39
39
  }
40
40
  async getBaseQuery() {
41
41
  return this.networkClient.get(`${this.dataCube}/getBaseQuery`);
@@ -1 +1 @@
1
- {"version":3,"file":"LegendREPLServerClient.js","sourceRoot":"","sources":["../../src/stores/LegendREPLServerClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AA4C9B,MAAM,OAAO,sBAAsB;IAChB,aAAa,CAAgB;IAE9C,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,oBAAoB,CACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAC1B,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,qBAAqB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAkC;QAElC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,YAAY,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAA8B;QAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,aAAa,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,KAAK,CAAC,YAAY,CAChB,KAAgC;QAEhC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,KAA8C;QAE9C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,8BAA8B,CAClC,KAAkD;QAElD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,IAAI,CAAC,QAAQ,6BAA6B,EAC7C,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAA0C;QAE1C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;CACF"}
1
+ {"version":3,"file":"LegendREPLServerClient.js","sourceRoot":"","sources":["../../src/stores/LegendREPLServerClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,UAAU,GAGX,MAAM,sBAAsB,CAAC;AA4C9B,MAAM,OAAO,sBAAsB;IAChB,aAAa,CAAgB;IAE9C,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,oBAAoB,CACzB,IAAI,CAAC,aAAa,CAAC,OAAO,EAC1B,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,qBAAqB,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAkC;QAElC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,YAAY,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAA8B;QAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,aAAa,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAgC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,IAAI,CAAC,QAAQ,eAAe,EAC/B,KAAK,EACL,EAAE,EACF,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,KAA8C;QAE9C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,IAAI,CAAC,QAAQ,wBAAwB,EACxC,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,8BAA8B,CAClC,KAAkD;QAElD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAC5B,GAAG,IAAI,CAAC,QAAQ,6BAA6B,EAC7C,KAAK,CACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAA0C;QAE1C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-repl",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Legend REPL Grid client application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -43,12 +43,12 @@
43
43
  "test:watch": "jest --watch"
44
44
  },
45
45
  "dependencies": {
46
- "@finos/legend-application": "16.0.1",
47
- "@finos/legend-art": "7.1.60",
48
- "@finos/legend-data-cube": "0.0.6",
49
- "@finos/legend-graph": "31.10.36",
50
- "@finos/legend-shared": "10.0.56",
51
- "@types/react": "18.3.9",
46
+ "@finos/legend-application": "16.0.3",
47
+ "@finos/legend-art": "7.1.62",
48
+ "@finos/legend-data-cube": "0.0.8",
49
+ "@finos/legend-graph": "31.10.37",
50
+ "@finos/legend-shared": "10.0.57",
51
+ "@types/react": "18.3.11",
52
52
  "@types/react-dom": "18.3.0",
53
53
  "mobx": "6.13.3",
54
54
  "mobx-react-lite": "4.0.7",
@@ -56,15 +56,15 @@
56
56
  "react-dom": "18.3.1"
57
57
  },
58
58
  "devDependencies": {
59
- "@finos/legend-dev-utils": "2.1.23",
59
+ "@finos/legend-dev-utils": "2.1.25",
60
60
  "@jest/globals": "29.7.0",
61
61
  "cross-env": "7.0.3",
62
- "eslint": "8.57.1",
62
+ "eslint": "9.12.0",
63
63
  "jest": "29.7.0",
64
64
  "npm-run-all": "4.1.5",
65
65
  "rimraf": "6.0.1",
66
- "sass": "1.79.3",
67
- "typescript": "5.6.2"
66
+ "sass": "1.79.4",
67
+ "typescript": "5.6.3"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "react": "^18.0.0"
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export enum LEGEND_REPL_SETTING_KEY {
18
+ ENABLE_DEBUG_MODE = 'legend-repl.engine.enableDebugMode',
19
+ GRID_CLIENT_ROW_BUFFER = 'legend-repl.engine.grid-client.rowBuffer',
20
+ GRID_CLIENT_PURGE_CLOSED_ROW_NODES = 'legend-repl.engine.grid-client.purgeClosedRowNodes',
21
+ GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING = 'legend-repl.engine.grid-client.suppressLargeDatasetWarning',
22
+ }
@@ -17,17 +17,21 @@
17
17
  import {
18
18
  BrowserEnvironmentProvider,
19
19
  Route,
20
- Switch,
21
- type TEMPORARY__ReactRouterComponentType,
20
+ Routes,
22
21
  } from '@finos/legend-application/browser';
23
22
  import { observer } from 'mobx-react-lite';
24
- import { useMemo } from 'react';
25
- import { guaranteeNonNullable, NetworkClient } from '@finos/legend-shared';
23
+ import { useEffect, useMemo } from 'react';
24
+ import {
25
+ guaranteeNonNullable,
26
+ LogEvent,
27
+ NetworkClient,
28
+ } from '@finos/legend-shared';
26
29
  import { LegendREPLServerClient } from '../stores/LegendREPLServerClient.js';
27
30
  import { LegendREPLDataCubeApplicationEngine } from '../stores/LegendREPLDataCubeApplicationEngine.js';
28
31
  import { LegendREPLDataCubeEngine } from '../stores/LegendREPLDataCubeEngine.js';
29
32
  import { DataCube, DataCubeProvider } from '@finos/legend-data-cube';
30
33
  import {
34
+ APPLICATION_EVENT,
31
35
  ApplicationFrameworkProvider,
32
36
  useApplicationStore,
33
37
  type LegendApplicationPlugin,
@@ -45,6 +49,7 @@ const LegendREPLDataCube = observer(() => {
45
49
  [applicationStore],
46
50
  );
47
51
  const engine = new LegendREPLDataCubeEngine(
52
+ application,
48
53
  new LegendREPLServerClient(
49
54
  new NetworkClient({
50
55
  baseUrl: applicationStore.config.useDynamicREPLServer
@@ -58,6 +63,24 @@ const LegendREPLDataCube = observer(() => {
58
63
  ),
59
64
  );
60
65
 
66
+ useEffect(() => {
67
+ application.blockNavigation(
68
+ // Only block navigation in production
69
+ // eslint-disable-next-line no-process-env
70
+ [() => process.env.NODE_ENV === 'production'],
71
+ undefined,
72
+ () => {
73
+ application.logWarning(
74
+ LogEvent.create(APPLICATION_EVENT.NAVIGATION_BLOCKED),
75
+ `Navigation from the application is blocked`,
76
+ );
77
+ },
78
+ );
79
+ return (): void => {
80
+ application.unblockNavigation();
81
+ };
82
+ }, [application]);
83
+
61
84
  return (
62
85
  <DataCubeProvider application={application} engine={engine}>
63
86
  <DataCube />
@@ -71,16 +94,12 @@ export const LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN = Object.freeze({
71
94
 
72
95
  export const LegendREPLRouter = observer(() => (
73
96
  <div className="h-full">
74
- <Switch>
97
+ <Routes>
75
98
  <Route
76
- exact={true}
77
- path={[LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN.DATA_CUBE]}
78
- component={
79
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
80
- LegendREPLDataCube as TEMPORARY__ReactRouterComponentType
81
- }
99
+ path={LEGEND_REPL_GRID_CLIENT_ROUTE_PATTERN.DATA_CUBE}
100
+ element={<LegendREPLDataCube />}
82
101
  />
83
- </Switch>
102
+ </Routes>
84
103
  </div>
85
104
  ));
86
105
 
@@ -19,10 +19,7 @@ import {
19
19
  APPLICATION_EVENT,
20
20
  } from '@finos/legend-application';
21
21
  import { type DocumentationEntry, LogEvent } from '@finos/legend-shared';
22
- import {
23
- DataCubeApplicationEngine,
24
- type ActionAlert,
25
- } from '@finos/legend-data-cube';
22
+ import { DataCubeApplicationEngine } from '@finos/legend-data-cube';
26
23
  import type { LegendREPLApplicationStore } from '../application/LegendREPLApplicationStore.js';
27
24
 
28
25
  export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngine {
@@ -58,12 +55,20 @@ export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngi
58
55
  this.application.layoutService.setWindowTitle(title);
59
56
  }
60
57
 
61
- alertAction(alertInfo: ActionAlert | undefined) {
62
- this.currentActionAlert = alertInfo;
58
+ blockNavigation(
59
+ blockCheckers: (() => boolean)[],
60
+ onBlock?: ((onProceed: () => void) => void) | undefined,
61
+ onNativePlatformNavigationBlock?: (() => void) | undefined,
62
+ ) {
63
+ this.application.navigationService.navigator.blockNavigation(
64
+ blockCheckers,
65
+ onBlock,
66
+ onNativePlatformNavigationBlock,
67
+ );
63
68
  }
64
69
 
65
- alertUnhandledError(error: Error) {
66
- this.application.alertUnhandledError(error);
70
+ unblockNavigation() {
71
+ this.application.navigationService.navigator.unblockNavigation();
67
72
  }
68
73
 
69
74
  logDebug(message: string, ...data: unknown[]) {
@@ -74,12 +79,12 @@ export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngi
74
79
  );
75
80
  }
76
81
 
77
- debugProcess(processName: string, ...data: unknown[]) {
82
+ debugProcess(processName: string, ...data: [string, unknown][]) {
78
83
  this.application.logService.debug(
79
84
  LogEvent.create(APPLICATION_EVENT.DEBUG),
80
- `\n------ START DEBUG PROCESS: ${processName} ------\n`,
81
- ...data,
82
- `\n------- END DEBUG PROCESS: ${processName} -------\n`,
85
+ `\n------ START DEBUG PROCESS: ${processName} ------`,
86
+ ...data.flatMap(([key, value]) => [`\n[${key.toUpperCase()}]:`, value]),
87
+ `\n------- END DEBUG PROCESS: ${processName} -------\n\n`,
83
88
  );
84
89
  }
85
90
 
@@ -106,4 +111,27 @@ export class LegendREPLDataCubeApplicationEngine extends DataCubeApplicationEngi
106
111
  error,
107
112
  );
108
113
  }
114
+
115
+ getPersistedNumericValue(key: string): number | undefined {
116
+ return this.application.settingService.getNumericValue(key);
117
+ }
118
+
119
+ getPersistedStringValue(key: string): string | undefined {
120
+ return this.application.settingService.getStringValue(key);
121
+ }
122
+
123
+ getPersistedBooleanValue(key: string): boolean | undefined {
124
+ return this.application.settingService.getBooleanValue(key);
125
+ }
126
+
127
+ getPersistedObjectValue(key: string): object | undefined {
128
+ return this.application.settingService.getObjectValue(key);
129
+ }
130
+
131
+ persistValue(
132
+ key: string,
133
+ value: string | number | boolean | object | undefined,
134
+ ): void {
135
+ this.application.settingService.persistValue(key, value);
136
+ }
109
137
  }
@@ -14,11 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { action, makeObservable, observable } from 'mobx';
18
17
  import type { LegendREPLServerClient } from './LegendREPLServerClient.js';
19
18
  import {
20
19
  DataCubeEngine,
21
20
  DataCubeGetBaseQueryResult,
21
+ DEFAULT_ENABLE_DEBUG_MODE,
22
+ DEFAULT_GRID_CLIENT_PURGE_CLOSED_ROW_NODES,
23
+ DEFAULT_GRID_CLIENT_ROW_BUFFER,
24
+ DEFAULT_GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING,
22
25
  type CompletionItem,
23
26
  type DataCubeInfrastructureInfo,
24
27
  type RelationType,
@@ -33,30 +36,70 @@ import {
33
36
  type V1_ValueSpecification,
34
37
  } from '@finos/legend-graph';
35
38
  import { guaranteeType } from '@finos/legend-shared';
39
+ import type { LegendREPLDataCubeApplicationEngine } from './LegendREPLDataCubeApplicationEngine.js';
40
+ import { LEGEND_REPL_SETTING_KEY } from '../__lib__/LegendREPLSetting.js';
36
41
 
37
42
  export class LegendREPLDataCubeEngine extends DataCubeEngine {
43
+ readonly application: LegendREPLDataCubeApplicationEngine;
38
44
  readonly client: LegendREPLServerClient;
39
45
 
40
- constructor(client: LegendREPLServerClient) {
46
+ constructor(
47
+ application: LegendREPLDataCubeApplicationEngine,
48
+ client: LegendREPLServerClient,
49
+ ) {
41
50
  super();
42
51
 
43
- makeObservable(this, {
44
- enableDebugMode: observable,
45
- setEnableDebugMode: action,
52
+ this.application = application;
53
+ this.client = client;
46
54
 
47
- enableEngineDebugMode: observable,
48
- setEnableEngineDebugMode: action,
55
+ this.enableDebugMode =
56
+ this.application.getPersistedBooleanValue(
57
+ LEGEND_REPL_SETTING_KEY.ENABLE_DEBUG_MODE,
58
+ ) ?? DEFAULT_ENABLE_DEBUG_MODE;
59
+ this.gridClientRowBuffer =
60
+ this.application.getPersistedNumericValue(
61
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_ROW_BUFFER,
62
+ ) ?? DEFAULT_GRID_CLIENT_ROW_BUFFER;
63
+ this.gridClientPurgeClosedRowNodes =
64
+ this.application.getPersistedBooleanValue(
65
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_PURGE_CLOSED_ROW_NODES,
66
+ ) ?? DEFAULT_GRID_CLIENT_PURGE_CLOSED_ROW_NODES;
67
+ this.gridClientSuppressLargeDatasetWarning =
68
+ this.application.getPersistedBooleanValue(
69
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING,
70
+ ) ?? DEFAULT_GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING;
71
+ }
49
72
 
50
- gridClientRowBuffer: observable,
51
- setGridClientRowBuffer: action,
73
+ override setEnableDebugMode(value: boolean) {
74
+ super.setEnableDebugMode(value);
75
+ this.application.persistValue(
76
+ LEGEND_REPL_SETTING_KEY.ENABLE_DEBUG_MODE,
77
+ value,
78
+ );
79
+ }
52
80
 
53
- gridClientPurgeClosedRowNodes: observable,
54
- setGridClientPurgeClosedRowNodes: action,
81
+ override setGridClientRowBuffer(value: number) {
82
+ super.setGridClientRowBuffer(value);
83
+ this.application.persistValue(
84
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_ROW_BUFFER,
85
+ value,
86
+ );
87
+ }
55
88
 
56
- gridClientSuppressLargeDatasetWarning: observable,
57
- setGridClientSuppressLargeDatasetWarning: action,
58
- });
59
- this.client = client;
89
+ override setGridClientPurgeClosedRowNodes(value: boolean) {
90
+ super.setGridClientPurgeClosedRowNodes(value);
91
+ this.application.persistValue(
92
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_PURGE_CLOSED_ROW_NODES,
93
+ value,
94
+ );
95
+ }
96
+
97
+ override setGridClientSuppressLargeDatasetWarning(value: boolean) {
98
+ super.setGridClientSuppressLargeDatasetWarning(value);
99
+ this.application.persistValue(
100
+ LEGEND_REPL_SETTING_KEY.GRID_CLIENT_SUPPRESS_LARGE_DATASET_WARNING,
101
+ value,
102
+ );
60
103
  }
61
104
 
62
105
  async getInfrastructureInfo(): Promise<DataCubeInfrastructureInfo> {
@@ -67,10 +110,10 @@ export class LegendREPLDataCubeEngine extends DataCubeEngine {
67
110
  code: string,
68
111
  query: V1_ValueSpecification,
69
112
  ): Promise<CompletionItem[]> {
70
- return (await this.client.getQueryTypeahead({
113
+ return this.client.getQueryTypeahead({
71
114
  code,
72
115
  baseQuery: V1_serializeValueSpecification(query, []),
73
- })) as CompletionItem[];
116
+ });
74
117
  }
75
118
 
76
119
  async parseQuery(
@@ -83,6 +126,16 @@ export class LegendREPLDataCubeEngine extends DataCubeEngine {
83
126
  );
84
127
  }
85
128
 
129
+ override getQueryCode(
130
+ query: V1_ValueSpecification,
131
+ pretty?: boolean,
132
+ ): Promise<string> {
133
+ return this.client.getQueryCode({
134
+ query: V1_serializeValueSpecification(query, []),
135
+ pretty,
136
+ });
137
+ }
138
+
86
139
  async getBaseQuery(): Promise<DataCubeGetBaseQueryResult> {
87
140
  return DataCubeGetBaseQueryResult.serialization.fromJson(
88
141
  await this.client.getBaseQuery(),
@@ -114,7 +167,7 @@ export class LegendREPLDataCubeEngine extends DataCubeEngine {
114
167
  }> {
115
168
  const result = await this.client.executeQuery({
116
169
  query: V1_serializeValueSpecification(query, []),
117
- debug: this.enableEngineDebugMode,
170
+ debug: this.enableDebugMode,
118
171
  });
119
172
  return {
120
173
  result: guaranteeType(
@@ -15,7 +15,9 @@
15
15
  */
16
16
 
17
17
  import {
18
+ ContentType,
18
19
  guaranteeNonNullable,
20
+ HttpHeader,
19
21
  type NetworkClient,
20
22
  type PlainObject,
21
23
  } from '@finos/legend-shared';
@@ -29,7 +31,7 @@ import type { V1_Lambda, V1_ValueSpecification } from '@finos/legend-graph';
29
31
 
30
32
  type DataCubeGetQueryCodeInput = {
31
33
  query: PlainObject<V1_ValueSpecification>;
32
- pretty?: boolean;
34
+ pretty?: boolean | undefined;
33
35
  };
34
36
 
35
37
  type DataCubeParseQueryInput = {
@@ -86,7 +88,7 @@ export class LegendREPLServerClient {
86
88
 
87
89
  async getQueryTypeahead(
88
90
  input: DataCubeQueryTypeaheadInput,
89
- ): Promise<PlainObject<CompletionItem>[]> {
91
+ ): Promise<CompletionItem[]> {
90
92
  return this.networkClient.post(`${this.dataCube}/typeahead`, input);
91
93
  }
92
94
 
@@ -95,10 +97,14 @@ export class LegendREPLServerClient {
95
97
  ): Promise<PlainObject<V1_ValueSpecification>> {
96
98
  return this.networkClient.post(`${this.dataCube}/parseQuery`, input);
97
99
  }
98
- async getQueryCode(
99
- input: DataCubeGetQueryCodeInput,
100
- ): Promise<PlainObject<string>> {
101
- return this.networkClient.post(`${this.dataCube}/getQueryCode`, input);
100
+
101
+ async getQueryCode(input: DataCubeGetQueryCodeInput): Promise<string> {
102
+ return this.networkClient.post(
103
+ `${this.dataCube}/getQueryCode`,
104
+ input,
105
+ {},
106
+ { [HttpHeader.ACCEPT]: ContentType.TEXT_PLAIN },
107
+ );
102
108
  }
103
109
 
104
110
  async getBaseQuery(): Promise<PlainObject<DataCubeGetBaseQueryResult>> {
package/tsconfig.json CHANGED
@@ -49,6 +49,7 @@
49
49
  }
50
50
  ],
51
51
  "files": [
52
+ "./src/__lib__/LegendREPLSetting.ts",
52
53
  "./src/application/LegendREPLApplicationConfig.ts",
53
54
  "./src/application/LegendREPLApplicationStore.ts",
54
55
  "./src/stores/LegendREPLDataCubeApplicationEngine.ts",