@finos/legend-application-repl 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/__lib__/LegendREPLSetting.d.ts +22 -0
- package/lib/__lib__/LegendREPLSetting.d.ts.map +1 -0
- package/lib/__lib__/LegendREPLSetting.js +23 -0
- package/lib/__lib__/LegendREPLSetting.js.map +1 -0
- package/lib/components/LegendREPLApplication.d.ts.map +1 -1
- package/lib/components/LegendREPLApplication.js +15 -4
- package/lib/components/LegendREPLApplication.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts +9 -4
- package/lib/stores/LegendREPLDataCubeApplicationEngine.d.ts.map +1 -1
- package/lib/stores/LegendREPLDataCubeApplicationEngine.js +21 -6
- package/lib/stores/LegendREPLDataCubeApplicationEngine.js.map +1 -1
- package/lib/stores/LegendREPLDataCubeEngine.d.ts +8 -1
- package/lib/stores/LegendREPLDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendREPLDataCubeEngine.js +38 -18
- package/lib/stores/LegendREPLDataCubeEngine.js.map +1 -1
- package/lib/stores/LegendREPLServerClient.d.ts +3 -3
- package/lib/stores/LegendREPLServerClient.d.ts.map +1 -1
- package/lib/stores/LegendREPLServerClient.js +2 -2
- package/lib/stores/LegendREPLServerClient.js.map +1 -1
- package/package.json +6 -6
- package/src/__lib__/LegendREPLSetting.ts +22 -0
- package/src/components/LegendREPLApplication.tsx +26 -2
- package/src/stores/LegendREPLDataCubeApplicationEngine.ts +40 -12
- package/src/stores/LegendREPLDataCubeEngine.ts +71 -18
- package/src/stores/LegendREPLServerClient.ts +12 -6
- 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;
|
|
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"}
|
|
@@ -16,22 +16,33 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
16
16
|
*/
|
|
17
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({
|
|
@@ -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,GACP,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendREPLApplication.js","sourceRoot":"","sources":["../../src/components/LegendREPLApplication.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -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
|
|
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
|
-
|
|
29
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
44
|
-
this.
|
|
43
|
+
blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock) {
|
|
44
|
+
this.application.navigationService.navigator.blockNavigation(blockCheckers, onBlock, onNativePlatformNavigationBlock);
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
this.application.
|
|
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}
|
|
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,
|
|
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;
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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.
|
|
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;
|
|
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<
|
|
53
|
+
getQueryTypeahead(input: DataCubeQueryTypeaheadInput): Promise<CompletionItem[]>;
|
|
54
54
|
parseQuery(input: DataCubeParseQueryInput): Promise<PlainObject<V1_ValueSpecification>>;
|
|
55
|
-
getQueryCode(input: DataCubeGetQueryCodeInput): Promise<
|
|
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,
|
|
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,
|
|
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.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Legend REPL Grid client application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"test:watch": "jest --watch"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@finos/legend-application": "16.0.
|
|
47
|
-
"@finos/legend-art": "7.1.
|
|
48
|
-
"@finos/legend-data-cube": "0.0.
|
|
49
|
-
"@finos/legend-graph": "31.10.
|
|
46
|
+
"@finos/legend-application": "16.0.3",
|
|
47
|
+
"@finos/legend-art": "7.1.62",
|
|
48
|
+
"@finos/legend-data-cube": "0.0.9",
|
|
49
|
+
"@finos/legend-graph": "31.10.38",
|
|
50
50
|
"@finos/legend-shared": "10.0.57",
|
|
51
51
|
"@types/react": "18.3.11",
|
|
52
52
|
"@types/react-dom": "18.3.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"react-dom": "18.3.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
|
-
"@finos/legend-dev-utils": "2.1.
|
|
59
|
+
"@finos/legend-dev-utils": "2.1.25",
|
|
60
60
|
"@jest/globals": "29.7.0",
|
|
61
61
|
"cross-env": "7.0.3",
|
|
62
62
|
"eslint": "9.12.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
|
+
}
|
|
@@ -20,13 +20,18 @@ import {
|
|
|
20
20
|
Routes,
|
|
21
21
|
} from '@finos/legend-application/browser';
|
|
22
22
|
import { observer } from 'mobx-react-lite';
|
|
23
|
-
import { useMemo } from 'react';
|
|
24
|
-
import {
|
|
23
|
+
import { useEffect, useMemo } from 'react';
|
|
24
|
+
import {
|
|
25
|
+
guaranteeNonNullable,
|
|
26
|
+
LogEvent,
|
|
27
|
+
NetworkClient,
|
|
28
|
+
} from '@finos/legend-shared';
|
|
25
29
|
import { LegendREPLServerClient } from '../stores/LegendREPLServerClient.js';
|
|
26
30
|
import { LegendREPLDataCubeApplicationEngine } from '../stores/LegendREPLDataCubeApplicationEngine.js';
|
|
27
31
|
import { LegendREPLDataCubeEngine } from '../stores/LegendREPLDataCubeEngine.js';
|
|
28
32
|
import { DataCube, DataCubeProvider } from '@finos/legend-data-cube';
|
|
29
33
|
import {
|
|
34
|
+
APPLICATION_EVENT,
|
|
30
35
|
ApplicationFrameworkProvider,
|
|
31
36
|
useApplicationStore,
|
|
32
37
|
type LegendApplicationPlugin,
|
|
@@ -44,6 +49,7 @@ const LegendREPLDataCube = observer(() => {
|
|
|
44
49
|
[applicationStore],
|
|
45
50
|
);
|
|
46
51
|
const engine = new LegendREPLDataCubeEngine(
|
|
52
|
+
application,
|
|
47
53
|
new LegendREPLServerClient(
|
|
48
54
|
new NetworkClient({
|
|
49
55
|
baseUrl: applicationStore.config.useDynamicREPLServer
|
|
@@ -57,6 +63,24 @@ const LegendREPLDataCube = observer(() => {
|
|
|
57
63
|
),
|
|
58
64
|
);
|
|
59
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
|
+
|
|
60
84
|
return (
|
|
61
85
|
<DataCubeProvider application={application} engine={engine}>
|
|
62
86
|
<DataCube />
|
|
@@ -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
|
-
|
|
62
|
-
|
|
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
|
-
|
|
66
|
-
this.application.
|
|
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}
|
|
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(
|
|
46
|
+
constructor(
|
|
47
|
+
application: LegendREPLDataCubeApplicationEngine,
|
|
48
|
+
client: LegendREPLServerClient,
|
|
49
|
+
) {
|
|
41
50
|
super();
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
setEnableDebugMode: action,
|
|
52
|
+
this.application = application;
|
|
53
|
+
this.client = client;
|
|
46
54
|
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
51
|
-
|
|
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
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
|
113
|
+
return this.client.getQueryTypeahead({
|
|
71
114
|
code,
|
|
72
115
|
baseQuery: V1_serializeValueSpecification(query, []),
|
|
73
|
-
})
|
|
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.
|
|
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<
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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