@finos/legend-application-data-cube 0.1.21 → 0.2.1
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__/LegendDataCubeNavigation.d.ts +1 -1
- package/lib/__lib__/LegendDataCubeNavigation.d.ts.map +1 -1
- package/lib/components/LegendDataCubeWebApplication.d.ts.map +1 -1
- package/lib/components/LegendDataCubeWebApplication.js +1 -14
- package/lib/components/LegendDataCubeWebApplication.js.map +1 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.d.ts.map +1 -1
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js +24 -23
- package/lib/components/query-builder/LegendDataCubeQueryBuilder.js.map +1 -1
- package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.js +8 -1
- package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +3 -2
- package/lib/stores/LegendDataCubeCacheManager.d.ts +34 -0
- package/lib/stores/LegendDataCubeCacheManager.d.ts.map +1 -0
- package/lib/stores/LegendDataCubeCacheManager.js +134 -0
- package/lib/stores/LegendDataCubeCacheManager.js.map +1 -0
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts +11 -3
- package/lib/stores/LegendDataCubeDataCubeEngine.d.ts.map +1 -1
- package/lib/stores/LegendDataCubeDataCubeEngine.js +152 -19
- package/lib/stores/LegendDataCubeDataCubeEngine.js.map +1 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.d.ts.map +1 -1
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.js +10 -10
- package/lib/stores/query-builder/LegendDataCubeNewQueryState.js.map +1 -1
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts +0 -1
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.d.ts.map +1 -1
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js +18 -9
- package/lib/stores/query-builder/LegendDataCubeQueryBuilderStore.js.map +1 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.d.ts +1 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.js +1 -1
- package/lib/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.d.ts +4 -3
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.js +5 -2
- package/lib/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.js.map +1 -1
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.d.ts +3 -2
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.js +6 -1
- package/lib/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.js.map +1 -1
- package/package.json +13 -12
- package/src/__lib__/LegendDataCubeNavigation.ts +1 -1
- package/src/components/LegendDataCubeWebApplication.tsx +1 -25
- package/src/components/query-builder/LegendDataCubeQueryBuilder.tsx +27 -27
- package/src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx +17 -1
- package/src/stores/DuckDBWASM.d.ts +22 -0
- package/src/stores/LegendDataCubeCacheManager.ts +170 -0
- package/src/stores/LegendDataCubeDataCubeEngine.ts +247 -26
- package/src/stores/query-builder/LegendDataCubeNewQueryState.tsx +12 -18
- package/src/stores/query-builder/LegendDataCubeQueryBuilderStore.tsx +26 -10
- package/src/stores/query-builder/source-builder/AdhocQueryDataCubeSourceBuilderState.ts +1 -1
- package/src/stores/query-builder/source-builder/LegendDataCubeSourceBuilderState.ts +8 -4
- package/src/stores/query-builder/source-builder/LegendQueryDataCubeSourceBuilderState.ts +11 -2
- package/tsconfig.json +2 -0
|
@@ -20,7 +20,7 @@ export declare enum LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN {
|
|
|
20
20
|
export declare const LEGEND_DATA_CUBE_ROUTE_PATTERN: Readonly<{
|
|
21
21
|
QUERY_BUILDER: "/:queryId?";
|
|
22
22
|
}>;
|
|
23
|
-
export type
|
|
23
|
+
export type LegendDataCubeQueryBuilderPathParams = {
|
|
24
24
|
[LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID]: string;
|
|
25
25
|
};
|
|
26
26
|
export declare const generateQueryBuilderRoute: (queryId: string | null) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeNavigation.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendDataCubeNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,oBAAY,oCAAoC;IAC9C,QAAQ,YAAY;IACpB,WAAW,eAAe;CAC3B;AAED,eAAO,MAAM,8BAA8B;;EAEzC,CAAC;AAEH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeNavigation.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendDataCubeNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,oBAAY,oCAAoC;IAC9C,QAAQ,YAAY;IACpB,WAAW,eAAe;CAC3B;AAED,eAAO,MAAM,8BAA8B;;EAEzC,CAAC;AAEH,MAAM,MAAM,oCAAoC,GAAG;IACjD,CAAC,oCAAoC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAa,MAAM,GAAG,IAAI,KAAG,MAIlE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoCH,eAAO,MAAM,4BAA4B,WAC/B;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;CAW5B,CAAC"}
|
|
@@ -14,33 +14,20 @@ 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 {
|
|
17
|
+
import { BrowserEnvironmentProvider } from '@finos/legend-application';
|
|
18
18
|
import { Route, Routes } from '@finos/legend-application/browser';
|
|
19
19
|
import { LegendDataCubeFrameworkProvider, useLegendDataCubeBaseStore, } from './LegendDataCubeFrameworkProvider.js';
|
|
20
20
|
import { observer } from 'mobx-react-lite';
|
|
21
21
|
import { LegendDataCubeQueryBuilder } from './query-builder/LegendDataCubeQueryBuilder.js';
|
|
22
22
|
import { LEGEND_DATA_CUBE_ROUTE_PATTERN } from '../__lib__/LegendDataCubeNavigation.js';
|
|
23
|
-
import { LogEvent } from '@finos/legend-shared';
|
|
24
23
|
import { useEffect } from 'react';
|
|
25
24
|
const LegendDataCubeWebApplicationRouter = observer(() => {
|
|
26
|
-
const application = useApplicationStore();
|
|
27
25
|
const store = useLegendDataCubeBaseStore();
|
|
28
26
|
useEffect(() => {
|
|
29
27
|
store
|
|
30
28
|
.initialize()
|
|
31
29
|
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
32
30
|
}, [store]);
|
|
33
|
-
useEffect(() => {
|
|
34
|
-
application.navigationService.navigator.blockNavigation(
|
|
35
|
-
// Only block navigation in production
|
|
36
|
-
// eslint-disable-next-line no-process-env
|
|
37
|
-
[() => process.env.NODE_ENV === 'production'], undefined, () => {
|
|
38
|
-
application.logService.warn(LogEvent.create(APPLICATION_EVENT.NAVIGATION_BLOCKED), `Navigation from the application is blocked`);
|
|
39
|
-
});
|
|
40
|
-
return () => {
|
|
41
|
-
application.navigationService.navigator.unblockNavigation();
|
|
42
|
-
};
|
|
43
|
-
}, [application]);
|
|
44
31
|
return (_jsx("div", { className: "h-full", children: store.initializeState.hasSucceeded && (_jsx(Routes, { children: _jsx(Route, { path: LEGEND_DATA_CUBE_ROUTE_PATTERN.QUERY_BUILDER, element: _jsx(LegendDataCubeQueryBuilder, {}) }) })) }));
|
|
45
32
|
});
|
|
46
33
|
export const LegendDataCubeWebApplication = observer((props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendDataCubeWebApplication.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,kCAAkC,GAAG,QAAQ,CAAC,GAAG,EAAE;IACvD,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,KAAK;aACF,UAAU,EAAE;aACZ,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACpB,KAAK,CAAC,eAAe,CAAC,YAAY,IAAI,CACrC,KAAC,MAAM,cACL,KAAC,KAAK,IACJ,IAAI,EAAE,8BAA8B,CAAC,aAAa,EAClD,OAAO,EAAE,KAAC,0BAA0B,KAAG,GACvC,GACK,CACV,GACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAQ,CAClD,CAAC,KAA0B,EAAE,EAAE;IAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,OAAO,CACL,KAAC,0BAA0B,IAAC,OAAO,EAAE,OAAO,YAC1C,KAAC,+BAA+B,cAC9B,KAAC,kCAAkC,KAAG,GACN,GACP,CAC9B,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQueryBuilder.d.ts","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiDH,eAAO,MAAM,0BAA0B,+CAoGtC,CAAC"}
|
|
@@ -22,7 +22,6 @@ import { useParams } from '@finos/legend-application/browser';
|
|
|
22
22
|
import { LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN, } from '../../__lib__/LegendDataCubeNavigation.js';
|
|
23
23
|
import { useEffect } from 'react';
|
|
24
24
|
import { LegendDataCubeSettingStorageKey } from '../../__lib__/LegendDataCubeSetting.js';
|
|
25
|
-
import { assertErrorThrown } from '@finos/legend-shared';
|
|
26
25
|
const LegendDataCubeQueryBuilderHeader = observer(() => {
|
|
27
26
|
const store = useLegendDataCubeQueryBuilderStore();
|
|
28
27
|
return (_jsxs("div", { className: "flex h-full items-center", children: [_jsx(FormButton, { compact: true, onClick: () => store.loader.display.open(), children: "Load Query" }), _jsx(FormButton, { compact: true, className: "ml-1.5", onClick: () => store.newQueryState.display.open(), children: "New Query" }), _jsx(FormButton, { compact: true, className: "ml-1.5", disabled: !store.builder?.dataCube, onClick: () => store.saverDisplay.open(), children: "Save Query" })] }));
|
|
@@ -33,30 +32,31 @@ export const LegendDataCubeQueryBuilder = withLegendDataCubeQueryBuilderStore(ob
|
|
|
33
32
|
const application = store.application;
|
|
34
33
|
const params = useParams();
|
|
35
34
|
const queryId = params[LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.QUERY_ID];
|
|
36
|
-
const sourceData = application.navigationService.navigator.getCurrentLocationParameterValue(LEGEND_DATA_CUBE_ROUTE_PATTERN_TOKEN.SOURCE_DATA);
|
|
37
35
|
useEffect(() => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
store
|
|
51
|
-
|
|
52
|
-
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
53
|
-
}
|
|
54
|
-
}, [store, queryId, sourceData]);
|
|
36
|
+
application.navigationService.navigator.blockNavigation(
|
|
37
|
+
// Only block navigation in production, in development, we should have
|
|
38
|
+
// the flexibility to reload the page quickly
|
|
39
|
+
// eslint-disable-next-line no-process-env
|
|
40
|
+
[() => process.env.NODE_ENV === 'production']);
|
|
41
|
+
return () => {
|
|
42
|
+
application.navigationService.navigator.unblockNavigation();
|
|
43
|
+
};
|
|
44
|
+
}, [application]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
store
|
|
47
|
+
.loadQuery(queryId)
|
|
48
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
49
|
+
}, [store, queryId]);
|
|
55
50
|
useEffect(() => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
store.engine
|
|
52
|
+
.initializeCacheManager()
|
|
53
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
54
|
+
return () => {
|
|
55
|
+
store.engine
|
|
56
|
+
.disposeCacheManager()
|
|
57
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
58
|
+
};
|
|
59
|
+
}, [store]);
|
|
60
60
|
if (!builder) {
|
|
61
61
|
return (_jsx(DataCubePlaceholder, { title: "[ Legend DataCube ]", layoutManager: store.layoutService.manager, taskManager: store.taskService.manager, headerContent: _jsx(LegendDataCubeQueryBuilderHeader, {}), menuItems: [
|
|
62
62
|
{
|
|
@@ -87,6 +87,7 @@ export const LegendDataCubeQueryBuilder = withLegendDataCubeQueryBuilderStore(ob
|
|
|
87
87
|
application.settingService.persistValue(LegendDataCubeSettingStorageKey.DATA_CUBE, event.values);
|
|
88
88
|
},
|
|
89
89
|
documentationUrl: application.documentationService.url,
|
|
90
|
+
enableCache: true,
|
|
90
91
|
} }, builder.uuid));
|
|
91
92
|
}));
|
|
92
93
|
//# sourceMappingURL=LegendDataCubeQueryBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,UAAU,EAEV,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnC,OAAO,EACL,kCAAkC,EAClC,mCAAmC,GACpC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,oCAAoC,GAErC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendDataCubeQueryBuilder.js","sourceRoot":"","sources":["../../../src/components/query-builder/LegendDataCubeQueryBuilder.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,uFAAuF,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,uFAAuF,CAAC;AAsOnJ,eAAO,MAAM,gCAAgC,WACnC;IAAE,aAAa,EAAE,qCAAqC,CAAA;CAAE;;CA6EjE,CAAC"}
|
|
@@ -24,6 +24,7 @@ import { useRef, useState, useMemo, useEffect } from 'react';
|
|
|
24
24
|
import { FormButton, FormCheckbox, FormCodeEditor, FormDropdownMenu, FormDropdownMenuItem, FormDropdownMenuTrigger, FormTextInput, } from '@finos/legend-data-cube';
|
|
25
25
|
import { CODE_EDITOR_LANGUAGE } from '@finos/legend-code-editor';
|
|
26
26
|
import { useLegendDataCubeQueryBuilderStore } from '../LegendDataCubeQueryBuilderStoreProvider.js';
|
|
27
|
+
import { useApplicationStore } from '@finos/legend-application';
|
|
27
28
|
const LegendQuerySearcher = observer((props) => {
|
|
28
29
|
const { state } = props;
|
|
29
30
|
const store = useLegendDataCubeQueryBuilderStore();
|
|
@@ -83,11 +84,17 @@ const LegendQuerySearcher = observer((props) => {
|
|
|
83
84
|
});
|
|
84
85
|
export const LegendQueryDataCubeSourceBuilder = observer((props) => {
|
|
85
86
|
const { sourceBuilder } = props;
|
|
87
|
+
const application = useApplicationStore();
|
|
88
|
+
const store = useLegendDataCubeQueryBuilderStore();
|
|
86
89
|
const query = sourceBuilder.query;
|
|
87
90
|
if (!query) {
|
|
88
91
|
return _jsx(LegendQuerySearcher, { state: sourceBuilder.queryLoader });
|
|
89
92
|
}
|
|
90
|
-
return (_jsxs("div", { className: "h-full", children: [_jsx("div", { className: "mb-0.5 flex h-[60px] w-full border border-neutral-200 bg-neutral-100", children: _jsxs("div", { className: "w-full", children: [_jsx("div", { className: "h-6 w-4/5 overflow-hidden text-ellipsis whitespace-nowrap px-1.5 leading-6", children: query.name }), _jsx("
|
|
93
|
+
return (_jsxs("div", { className: "h-full", children: [_jsx("div", { className: "relative mb-0.5 flex h-[60px] w-full border border-neutral-200 bg-neutral-100", children: _jsxs("div", { className: "w-full", children: [_jsx("div", { className: "h-6 w-4/5 overflow-hidden text-ellipsis whitespace-nowrap px-1.5 leading-6", children: query.name }), _jsx("button", { className: "absolute right-1 top-1 flex aspect-square w-5 items-center justify-center text-neutral-500", title: "Copy ID to clipboard", onClick: () => {
|
|
94
|
+
application.clipboardService
|
|
95
|
+
.copyTextToClipboard(query.id)
|
|
96
|
+
.catch((error) => store.alertService.alertUnhandledError(error));
|
|
97
|
+
}, children: _jsx(DataCubeIcon.Clipboard, {}) }), _jsx("div", { className: "flex h-[18px] items-start justify-between px-1.5 text-sm text-neutral-500", children: `[ ${generateGAVCoordinates(query.groupId, query.artifactId, query.versionId)} ]` }), _jsxs("div", { className: "flex h-[18px] items-start justify-between px-1.5", children: [_jsxs("div", { className: "flex", children: [_jsx(DataCubeIcon.ClockEdit, { className: "text-sm text-neutral-500" }), _jsx("div", { className: "ml-1 text-sm text-neutral-500", children: query.lastUpdatedAt
|
|
91
98
|
? formatDistanceToNow(new Date(query.lastUpdatedAt), {
|
|
92
99
|
includeSeconds: true,
|
|
93
100
|
addSuffix: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,mCAAmC,EACnC,eAAe,GAEhB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendQueryDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/query-builder/source-builder/LegendQueryDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,mCAAmC,EACnC,eAAe,GAEhB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,CAAC,KAAkC,EAAE,EAAE;IAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,kCAAkC,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,cAAc;IACd,MAAM,oBAAoB,GAAG,OAAO,CAClC,GAAG,EAAE,CACH,QAAQ,CAAC,CAAC,KAAa,EAAE,EAAE;QACzB,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;IACJ,CAAC,EAAE,GAAG,CAAC,EACT,CAAC,KAAK,EAAE,KAAK,CAAC,CACf,CAAC;IACF,MAAM,kBAAkB,GAA+C,CACrE,KAAK,EACL,EAAE;QACF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YAC5C,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,oBAAoB,CAAC,MAAM,EAAE,CAAC;YAC9B,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxB,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC9B,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,gCAAgC,GAAG,GAAG,EAAE;QAC5C,KAAK,CAAC,6BAA6B,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvE,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;QAC3B,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC9B,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,CACJ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACtB,GAAG,eAAe,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAE,EAAE;QAC3C,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC9B,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAClD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,eAAK,SAAS,EAAC,QAAQ,aACrB,eAAK,SAAS,EAAC,OAAO,aACpB,eAAK,SAAS,EAAC,uDAAuD,aACpE,KAAC,aAAa,IACZ,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE;oCACpC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;iCAClC,CAAC,EACF,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,WAAW,EAAC,kCAAkC,GAC9C,EACF,cAAK,SAAS,EAAC,gEAAgE,YAC7E,KAAC,YAAY,CAAC,MAAM,IAAC,SAAS,EAAC,0BAA0B,GAAG,GACxD,EACL,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC5B,4BACE,iBACE,SAAS,EAAC,wEAAwE,EAClF,QAAQ,EAAE,CAAC,CAAC,EACZ,OAAO,EAAE,aAAa,EACtB,KAAK,EAAC,OAAO,YAEb,KAAC,YAAY,CAAC,CAAC,KAAG,GACX,GACR,CACJ,IACG,EACN,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,0CAA0C,aACvD,cAAK,SAAS,EAAC,cAAc,yBAAe,EAC5C,cAAK,SAAS,EAAC,gDAAgD,YAC7D,KAAC,YAAY,IACX,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,gCAAgC,GAC1C,GACE,IAEF,EAEN,0BACE,MAAC,uBAAuB,IACtB,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,0BAEjD,KAAK,CAAC,MAAM,IACE,EAC1B,KAAC,gBAAgB,IAAC,SAAS,EAAC,MAAM,KAAK,iBAAiB,YACrD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9C,KAAC,oBAAoB,IAEnB,OAAO,EAAE,GAAG,EAAE;gDACZ,SAAS,CAAC,MAAM,CAAC,CAAC;gDAClB,iBAAiB,EAAE,CAAC;4CACtB,CAAC,EACD,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC,MAAM,YAEjC,MAAM,IAPF,MAAM,CAQU,CACxB,CAAC,GACe,IACf,IACF,IACF,EACN,cAAK,SAAS,EAAC,oCAAoC,GAAG,EACtD,cAAK,SAAS,EAAC,uBAAuB,YACpC,eAAK,SAAS,EAAC,wBAAwB,aACpC,KAAK,CAAC,kBAAkB,CAAC,YAAY,IAAI,CACxC,8BACE,cAAK,SAAS,EAAC,mEAAmE,YAC/E,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAC7B,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,aAAa,CAAC;wCACzD,0CAA0C,CAAC,CAC5C,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM;wCACtB,mCAAmC,CAAC,CAAC,CAAC,CACtC,8BACG,SAAS,mCAAmC,WAAW,EAAE,GAAG,EAC7D,KAAC,YAAY,CAAC,SAAS,IACrB,SAAS,EAAC,cAAc,EACxB,KAAK,EAAC,uEAAuE,GAC7E,IACD,CACJ,CAAC,CAAC,CAAC,CACF,SAAS,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAC3D,GACG,EACL,aAAa;qCACX,KAAK,CAAC,CAAC,EAAE,mCAAmC,CAAC;qCAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CACnB,eACE,SAAS,EAAC,gIAAgI,EAE1I,KAAK,EAAC,uBAAuB,EAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,aAErC,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,4EAA4E,YACxF,KAAK,CAAC,IAAI,GACP,EACN,eAAK,SAAS,EAAC,kDAAkD,aAC/D,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,CAAC,SAAS,IAAC,SAAS,EAAC,0BAA0B,GAAG,EAC/D,cAAK,SAAS,EAAC,+BAA+B,YAC3C,KAAK,CAAC,aAAa;wEAClB,CAAC,CAAC,mBAAmB,CACjB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAC7B;4EACE,cAAc,EAAE,IAAI;4EACpB,SAAS,EAAE,IAAI;yEAChB,CACF;wEACH,CAAC,CAAC,WAAW,GACX,IACF,EACN,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,CAAC,IAAI,IAAC,SAAS,EAAC,0BAA0B,GAAG,EAC1D,cAAK,SAAS,EAAC,+BAA+B,YAC3C,KAAK,CAAC,KAAK,GACR,IACF,IACF,IACF,EACN,cAAK,SAAS,EAAC,6CAA6C,YAC1D,KAAC,YAAY,CAAC,YAAY,IAAC,SAAS,EAAC,kBAAkB,GAAG,GACtD,KAjCD,KAAK,CAAC,EAAE,CAkCT,CACP,CAAC,IACH,CACJ,EACA,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,IAAI,CACzC,eAAK,SAAS,EAAC,mEAAmE,aAChF,KAAC,YAAY,CAAC,MAAM,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACjE,eAAM,SAAS,EAAC,MAAM,6BAAoB,IACtC,CACP,IACG,GACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,QAAQ,CACtD,CAAC,KAA+D,EAAE,EAAE;IAClE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,kCAAkC,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IAElC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAC,mBAAmB,IAAC,KAAK,EAAE,aAAa,CAAC,WAAW,GAAI,CAAC;IACnE,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,QAAQ,aACrB,cAAK,SAAS,EAAC,+EAA+E,YAC5F,eAAK,SAAS,EAAC,QAAQ,aACrB,cAAK,SAAS,EAAC,4EAA4E,YACxF,KAAK,CAAC,IAAI,GACP,EACN,iBACE,SAAS,EAAC,4FAA4F,EACtG,KAAK,EAAC,sBAAsB,EAC5B,OAAO,EAAE,GAAG,EAAE;gCACZ,WAAW,CAAC,gBAAgB;qCACzB,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;qCAC7B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAC9C,CAAC;4BACN,CAAC,YAED,KAAC,YAAY,CAAC,SAAS,KAAG,GACnB,EACT,cAAK,SAAS,EAAC,2EAA2E,YACvF,KAAK,sBAAsB,CAC1B,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,CAChB,IAAI,GACD,EACN,eAAK,SAAS,EAAC,kDAAkD,aAC/D,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,CAAC,SAAS,IAAC,SAAS,EAAC,0BAA0B,GAAG,EAC/D,cAAK,SAAS,EAAC,+BAA+B,YAC3C,KAAK,CAAC,aAAa;gDAClB,CAAC,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;oDACjD,cAAc,EAAE,IAAI;oDACpB,SAAS,EAAE,IAAI;iDAChB,CAAC;gDACJ,CAAC,CAAC,WAAW,GACX,IACF,EACN,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,YAAY,CAAC,IAAI,IAAC,SAAS,EAAC,0BAA0B,GAAG,EAC1D,cAAK,SAAS,EAAC,+BAA+B,YAC3C,KAAK,CAAC,KAAK,GACR,IACF,IACF,IACF,GACF,EACL,aAAa,CAAC,SAAS,KAAK,SAAS,IAAI,CACxC,cAAK,SAAS,EAAC,oBAAoB,YACjC,KAAC,cAAc,IACb,KAAK,EAAE,aAAa,CAAC,SAAS,EAC9B,KAAK,EAAC,YAAY,EAClB,UAAU,EAAE,IAAI,EAChB,QAAQ,EAAE,oBAAoB,CAAC,IAAI,EACnC,WAAW,EAAE,IAAI,GACjB,GACE,CACP,EACD,KAAC,UAAU,IACT,SAAS,EAAC,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,qCAG9B,IACT,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-data-cube",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Legend DataCube application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"test:watch": "jest --watch"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@duckdb/duckdb-wasm": "1.29.0",
|
|
45
46
|
"@finos/legend-application": "workspace:*",
|
|
46
47
|
"@finos/legend-art": "workspace:*",
|
|
47
48
|
"@finos/legend-code-editor": "workspace:*",
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
"@finos/legend-storage": "workspace:*",
|
|
54
55
|
"@types/react": "19.0.8",
|
|
55
56
|
"@types/react-dom": "19.0.3",
|
|
56
|
-
"mobx": "6.13.
|
|
57
|
+
"mobx": "6.13.6",
|
|
57
58
|
"mobx-react-lite": "4.1.0",
|
|
58
59
|
"react": "19.0.0",
|
|
59
60
|
"react-dom": "19.0.0",
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
import { TDSExecutionResult } from '@finos/legend-graph';
|
|
17
|
+
import type { CachedDataCubeSource } from '@finos/legend-data-cube';
|
|
18
|
+
export declare class LegendDataCubeDataCubeCacheManager {
|
|
19
|
+
private static readonly DUCKDB_DEFAULT_SCHEMA_NAME;
|
|
20
|
+
private static readonly TABLE_NAME_PREFIX;
|
|
21
|
+
private static tableCounter;
|
|
22
|
+
private _database?;
|
|
23
|
+
private get database();
|
|
24
|
+
initialize(): Promise<void>;
|
|
25
|
+
cache(result: TDSExecutionResult): Promise<{
|
|
26
|
+
table: string;
|
|
27
|
+
schema: string;
|
|
28
|
+
rowCount: number;
|
|
29
|
+
}>;
|
|
30
|
+
runSQLQuery(sql: string): Promise<TDSExecutionResult>;
|
|
31
|
+
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
32
|
+
dispose(): Promise<void>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=LegendDataCubeCacheManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCacheManager.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAEL,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,qBAAa,kCAAkC;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAU;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IACpD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAK;IAEhC,OAAO,CAAC,SAAS,CAAC,CAAiC;IAEnD,OAAO,KAAK,QAAQ,GAKnB;IAEK,UAAU;IAmCV,KAAK,CAAC,MAAM,EAAE,kBAAkB;;;;;IA8DhC,WAAW,CAAC,GAAG,EAAE,MAAM;IAmBvB,YAAY,CAAC,MAAM,EAAE,oBAAoB;IAOzC,OAAO;CAId"}
|
|
@@ -0,0 +1,134 @@
|
|
|
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
|
+
import * as duckdb from '@duckdb/duckdb-wasm';
|
|
17
|
+
import duckdb_wasm from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm';
|
|
18
|
+
import duckdb_wasm_next from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm';
|
|
19
|
+
import { PRIMITIVE_TYPE, TDSExecutionResult, TDSRow, TabularDataSet, } from '@finos/legend-graph';
|
|
20
|
+
import { assertNonNullable, guaranteeNonNullable } from '@finos/legend-shared';
|
|
21
|
+
export class LegendDataCubeDataCubeCacheManager {
|
|
22
|
+
static DUCKDB_DEFAULT_SCHEMA_NAME = 'main'; // See https://duckdb.org/docs/sql/statements/use.html
|
|
23
|
+
static TABLE_NAME_PREFIX = 'cache';
|
|
24
|
+
static tableCounter = 0;
|
|
25
|
+
_database;
|
|
26
|
+
get database() {
|
|
27
|
+
return guaranteeNonNullable(this._database, `Cache manager database not initialized`);
|
|
28
|
+
}
|
|
29
|
+
async initialize() {
|
|
30
|
+
// Initialize DuckDB with WASM
|
|
31
|
+
// See: https://duckdb.org/docs/api/wasm/instantiation.html
|
|
32
|
+
const MANUAL_BUNDLES = {
|
|
33
|
+
mvp: {
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
35
|
+
mainModule: duckdb_wasm,
|
|
36
|
+
mainWorker: new URL('@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js', import.meta.url).toString(),
|
|
37
|
+
},
|
|
38
|
+
eh: {
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
40
|
+
mainModule: duckdb_wasm_next,
|
|
41
|
+
mainWorker: new URL('@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js', import.meta.url).toString(),
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
// Select a bundle based on browser checks
|
|
45
|
+
const bundle = await duckdb.selectBundle(MANUAL_BUNDLES);
|
|
46
|
+
// Instantiate the asynchronus version of DuckDB-wasm
|
|
47
|
+
assertNonNullable(bundle.mainWorker, `Can't initialize cache manager: DuckDB main worker not initialized`);
|
|
48
|
+
const worker = new Worker(bundle.mainWorker);
|
|
49
|
+
const logger = new duckdb.ConsoleLogger();
|
|
50
|
+
const database = new duckdb.AsyncDuckDB(logger, worker);
|
|
51
|
+
await database.instantiate(bundle.mainModule, bundle.pthreadWorker);
|
|
52
|
+
this._database = database;
|
|
53
|
+
}
|
|
54
|
+
async cache(result) {
|
|
55
|
+
const schema = LegendDataCubeDataCubeCacheManager.DUCKDB_DEFAULT_SCHEMA_NAME;
|
|
56
|
+
LegendDataCubeDataCubeCacheManager.tableCounter += 1;
|
|
57
|
+
const table = `${LegendDataCubeDataCubeCacheManager.TABLE_NAME_PREFIX}${LegendDataCubeDataCubeCacheManager.tableCounter}`;
|
|
58
|
+
const connection = await this.database.connect();
|
|
59
|
+
// TODO: review if we can improve performance here using CSV/Arrow for ingestion
|
|
60
|
+
const columns = [];
|
|
61
|
+
result.builder.columns.forEach((col) => {
|
|
62
|
+
let colType;
|
|
63
|
+
switch (col.type) {
|
|
64
|
+
case PRIMITIVE_TYPE.BOOLEAN: {
|
|
65
|
+
colType = 'BOOLEAN';
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case PRIMITIVE_TYPE.NUMBER: {
|
|
69
|
+
colType = 'DOUBLE';
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case PRIMITIVE_TYPE.INTEGER: {
|
|
73
|
+
colType = 'INTEGER';
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case PRIMITIVE_TYPE.DATE: {
|
|
77
|
+
colType = 'TIMESTAMP';
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case PRIMITIVE_TYPE.STRING:
|
|
81
|
+
default: {
|
|
82
|
+
colType = 'VARCHAR';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
columns.push(`"${col.name}" ${colType}`);
|
|
86
|
+
});
|
|
87
|
+
const CREATE_TABLE_SQL = `CREATE TABLE ${schema}.${table} (${columns.join(',')})`;
|
|
88
|
+
await connection.query(CREATE_TABLE_SQL);
|
|
89
|
+
const rowString = [];
|
|
90
|
+
result.result.rows.forEach((row) => {
|
|
91
|
+
const updatedRows = row.values.map((val) => {
|
|
92
|
+
if (val !== null && typeof val === 'string') {
|
|
93
|
+
return `'${val.replaceAll(`'`, `''`)}'`;
|
|
94
|
+
}
|
|
95
|
+
else if (val === null) {
|
|
96
|
+
return `NULL`;
|
|
97
|
+
}
|
|
98
|
+
return val;
|
|
99
|
+
});
|
|
100
|
+
rowString.push(`(${updatedRows.join(',')})`);
|
|
101
|
+
});
|
|
102
|
+
const INSERT_TABLE_SQL = `INSERT INTO ${schema}.${table} VALUES ${rowString.join(',')}`;
|
|
103
|
+
await connection.query(INSERT_TABLE_SQL);
|
|
104
|
+
await connection.close();
|
|
105
|
+
return { table, schema, rowCount: result.result.rows.length };
|
|
106
|
+
}
|
|
107
|
+
async runSQLQuery(sql) {
|
|
108
|
+
const connection = await this.database.connect();
|
|
109
|
+
const result = (await connection.query(sql)).toArray();
|
|
110
|
+
const columnNames = Object.keys(result.at(0));
|
|
111
|
+
const rows = result.map((row) => {
|
|
112
|
+
const values = new TDSRow();
|
|
113
|
+
values.values = columnNames.map((column) => row[column]);
|
|
114
|
+
return values;
|
|
115
|
+
});
|
|
116
|
+
const tdsExecutionResult = new TDSExecutionResult();
|
|
117
|
+
const tds = new TabularDataSet();
|
|
118
|
+
tds.columns = columnNames;
|
|
119
|
+
tds.rows = rows;
|
|
120
|
+
tdsExecutionResult.result = tds;
|
|
121
|
+
return tdsExecutionResult;
|
|
122
|
+
}
|
|
123
|
+
async disposeCache(source) {
|
|
124
|
+
const connection = await this.database.connect();
|
|
125
|
+
const DROP_TABLE_SQL = `DROP TABLE IF EXISTS "${source.schema}.${source.table}"`;
|
|
126
|
+
await connection.query(DROP_TABLE_SQL);
|
|
127
|
+
await connection.close();
|
|
128
|
+
}
|
|
129
|
+
async dispose() {
|
|
130
|
+
await this._database?.flushFiles();
|
|
131
|
+
await this._database?.terminate();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=LegendDataCubeCacheManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegendDataCubeCacheManager.js","sourceRoot":"","sources":["../../src/stores/LegendDataCubeCacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@
|
|
|
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, type DataCubeSource, type CompletionItem, type DataCubeExecutionOptions } from '@finos/legend-data-cube';
|
|
16
|
+
import { V1_Lambda, type V1_ValueSpecification, type V1_EngineServerClient, V1_PureGraphManager, TDSExecutionResult } from '@finos/legend-graph';
|
|
17
|
+
import { DataCubeEngine, type DataCubeSource, type CompletionItem, type DataCubeExecutionOptions, CachedDataCubeSource } from '@finos/legend-data-cube';
|
|
18
18
|
import { LogEvent, type PlainObject } from '@finos/legend-shared';
|
|
19
19
|
import type { LegendDataCubeApplicationStore } from './LegendDataCubeBaseStore.js';
|
|
20
20
|
import { type DepotServerClient } from '@finos/legend-server-depot';
|
|
@@ -23,7 +23,10 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
23
23
|
private readonly _depotServerClient;
|
|
24
24
|
private readonly _engineServerClient;
|
|
25
25
|
private readonly _graphManager;
|
|
26
|
+
private readonly _cacheManager;
|
|
26
27
|
constructor(application: LegendDataCubeApplicationStore, depotServerClient: DepotServerClient, engineServerClient: V1_EngineServerClient, graphManager: V1_PureGraphManager);
|
|
28
|
+
initializeCacheManager(): Promise<void>;
|
|
29
|
+
disposeCacheManager(): Promise<void>;
|
|
27
30
|
processQuerySource(value: PlainObject): Promise<DataCubeSource>;
|
|
28
31
|
parseValueSpecification(code: string, returnSourceInformation?: boolean | undefined): Promise<V1_ValueSpecification>;
|
|
29
32
|
getValueSpecificationCode(value: V1_ValueSpecification, pretty?: boolean | undefined): Promise<string>;
|
|
@@ -41,14 +44,19 @@ export declare class LegendDataCubeDataCubeEngine extends DataCubeEngine {
|
|
|
41
44
|
}[];
|
|
42
45
|
}>;
|
|
43
46
|
executeQuery(query: V1_Lambda, source: DataCubeSource, options?: DataCubeExecutionOptions | undefined): Promise<{
|
|
44
|
-
result: TDSExecutionResult;
|
|
45
47
|
executedQuery: string;
|
|
46
48
|
executedSQL: string;
|
|
49
|
+
result: TDSExecutionResult;
|
|
50
|
+
executionTime: number;
|
|
47
51
|
}>;
|
|
48
52
|
buildExecutionContext(source: DataCubeSource): import("@finos/legend-graph").V1_AppliedFunction | undefined;
|
|
49
53
|
private _getQueryRelationType;
|
|
50
54
|
private _getLambdaRelationType;
|
|
51
55
|
private _runQuery;
|
|
56
|
+
private generateExecutionPlan;
|
|
57
|
+
initializeCache(source: DataCubeSource): Promise<CachedDataCubeSource | undefined>;
|
|
58
|
+
disposeCache(source: CachedDataCubeSource): Promise<void>;
|
|
59
|
+
private _getColumnType;
|
|
52
60
|
logDebug(message: string, ...data: unknown[]): void;
|
|
53
61
|
debugProcess(processName: string, ...data: [string, unknown][]): void;
|
|
54
62
|
logInfo(event: LogEvent, ...data: unknown[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"LegendDataCubeDataCubeEngine.d.ts","sourceRoot":"","sources":["../../src/stores/LegendDataCubeDataCubeEngine.ts"],"names":[],"mappings":"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"}
|