synapse-react-client 4.0.20 → 4.0.22
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/dist/SWC.index.d.ts +1 -0
- package/dist/SWC.index.d.ts.map +1 -1
- package/dist/SWC.index.js +2 -1
- package/dist/SWC.index.js.map +1 -1
- package/dist/components/CardContainer/CardConfiguration.d.ts +2 -0
- package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +44 -50
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts +14 -0
- package/dist/components/CardContainerLogic/CardContainerLogic.d.ts.map +1 -1
- package/dist/components/CardContainerLogic/CardContainerLogic.js +64 -40
- package/dist/components/CardContainerLogic/CardContainerLogic.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmissionStepper.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.css +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.js +16 -16
- package/dist/components/DataExplorer/DataExplorer.module.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.module.scss +26 -7
- package/dist/components/DataGrid/DataGrid.d.ts +1 -0
- package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/DataGrid.js +72 -72
- package/dist/components/DataGrid/DataGrid.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +209 -206
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts +6 -3
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +54 -46
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js +1 -1
- package/dist/components/DataGrid/hooks/useColumnResizeHandles.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.d.ts.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +68 -67
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts +1 -0
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +5 -3
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.d.ts +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/modelColsToGrid.js +15 -14
- package/dist/components/DataGrid/utils/modelColsToGrid.js.map +1 -1
- package/dist/components/DataGrid/utils/normalizeWebsocketError.d.ts +7 -0
- package/dist/components/DataGrid/utils/normalizeWebsocketError.d.ts.map +1 -0
- package/dist/components/DataGrid/utils/normalizeWebsocketError.js +8 -0
- package/dist/components/DataGrid/utils/normalizeWebsocketError.js.map +1 -0
- package/dist/components/GenericCard/GenericCard.d.ts +2 -0
- package/dist/components/GenericCard/GenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCard.js +76 -64
- package/dist/components/GenericCard/GenericCard.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +33 -25
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/Goals/Goals.d.ts +8 -0
- package/dist/components/Goals/Goals.d.ts.map +1 -1
- package/dist/components/Goals/Goals.js +54 -40
- package/dist/components/Goals/Goals.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.css +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.d.ts +44 -2
- package/dist/components/Plot/SynapseSankeyPlot.d.ts.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.js +343 -38
- package/dist/components/Plot/SynapseSankeyPlot.js.map +1 -1
- package/dist/components/Plot/SynapseSankeyPlot.module.js +15 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.js.map +1 -0
- package/dist/components/Plot/SynapseSankeyPlot.module.scss +63 -0
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.d.ts +9 -0
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.d.ts.map +1 -0
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +69 -0
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js.map +1 -0
- package/dist/components/ProjectVisibilityChip/getProjectVisibilityFromACL.d.ts +13 -0
- package/dist/components/ProjectVisibilityChip/getProjectVisibilityFromACL.d.ts.map +1 -0
- package/dist/components/ProjectVisibilityChip/getProjectVisibilityFromACL.js +11 -0
- package/dist/components/ProjectVisibilityChip/getProjectVisibilityFromACL.js.map +1 -0
- package/dist/components/ProjectVisibilityChip/index.d.ts +5 -0
- package/dist/components/ProjectVisibilityChip/index.d.ts.map +1 -0
- package/dist/components/ProjectVisibilityChip/index.js +7 -0
- package/dist/components/ProjectVisibilityChip/index.js.map +1 -0
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.d.ts.map +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +1 -1
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/RowSetView.js +9 -12
- package/dist/components/QueryWrapperPlotNav/RowSetView.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.d.ts +7 -15
- package/dist/components/RssFeedCards/RssFeedCards.d.ts.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js +114 -123
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +13 -12
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +88 -77
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +63 -74
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +72 -68
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts +27 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +47 -36
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.d.ts +12 -12
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts +4 -1
- package/dist/components/TableColumnSchemaEditor/Validators/BooleanSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts +167 -517
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js +65 -65
- package/dist/components/TableColumnSchemaEditor/Validators/ColumnModelValidator.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js +6 -13
- package/dist/components/TableColumnSchemaEditor/Validators/DoubleSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/EntityIdSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/IntegerSchema.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/OptionalStringSchema.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts +2 -2
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js +15 -16
- package/dist/components/TableColumnSchemaEditor/Validators/getZodSchemaForColumnType.js.map +1 -1
- package/dist/components/UserCardList/UserCardList.d.ts +2 -20
- package/dist/components/UserCardList/UserCardList.d.ts.map +1 -1
- package/dist/components/UserCardList/UserCardList.js +49 -72
- package/dist/components/UserCardList/UserCardList.js.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.d.ts +13 -0
- package/dist/components/UserCardList/UserCardListRotate.d.ts.map +1 -1
- package/dist/components/UserCardList/UserCardListRotate.js +82 -57
- package/dist/components/UserCardList/UserCardListRotate.js.map +1 -1
- package/dist/mocks/mockSearchQueryData.js +2 -2
- package/dist/mocks/mockSearchQueryData.js.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/searchQueryHandlers.js +6 -3
- package/dist/mocks/msw/handlers/searchQueryHandlers.js.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts +13 -0
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.d.ts.map +1 -1
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js +27 -0
- package/dist/mocks/query/mockUserCardTableQueryResultBundle.js.map +1 -1
- package/dist/style/abstracts/_cssVariables.scss +1 -0
- package/dist/style/components/_cards.scss +10 -0
- package/dist/style/components/_data-grid-extra.css +1 -1
- package/dist/style/components/_data-grid-extra.scss +7 -1
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +497 -495
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +1 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +3 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/index.js +46 -44
- package/dist/synapse-queries/user/index.js +3 -3
- package/dist/synapse-queries/user/useUserBundle.d.ts +12 -0
- package/dist/synapse-queries/user/useUserBundle.d.ts.map +1 -1
- package/dist/synapse-queries/user/useUserBundle.js +50 -36
- package/dist/synapse-queries/user/useUserBundle.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.d.ts +10 -5
- package/dist/utils/AppUtils/session/SessionInitializedGuard.d.ts.map +1 -1
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js +13 -9
- package/dist/utils/AppUtils/session/SessionInitializedGuard.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +1 -1
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/package.json +7 -5
|
@@ -4,11 +4,16 @@ export type SessionInitializedGuardProps = PropsWithChildren<{
|
|
|
4
4
|
hintText?: string;
|
|
5
5
|
}>;
|
|
6
6
|
/**
|
|
7
|
-
* SessionInitializedGuard
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
7
|
+
* SessionInitializedGuard displays a loading screen while the session is being
|
|
8
|
+
* initialized. This is useful for components that need to ensure the session state
|
|
9
|
+
* is ready before making any queries or performing operations that depend on
|
|
10
|
+
* authentication status.
|
|
11
|
+
*
|
|
12
|
+
* For SSG compatibility, the children are rendered within an error boundary that
|
|
13
|
+
* is keyed on the session initialization state. This allows any SSG-prefetched data
|
|
14
|
+
* to be rendered in the static HTML and be hydration-stable on the client, while
|
|
15
|
+
* still showing a loading overlay in client-mode until the session manager finishes
|
|
16
|
+
* its initial check.
|
|
12
17
|
*
|
|
13
18
|
* @example
|
|
14
19
|
* ```tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionInitializedGuard.d.ts","sourceRoot":"","sources":["../../../../src/utils/AppUtils/session/SessionInitializedGuard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SessionInitializedGuard.d.ts","sourceRoot":"","sources":["../../../../src/utils/AppUtils/session/SessionInitializedGuard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAIzC,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,2CAkB1E"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { SynapseErrorBoundary as e } from "../../../components/error/ErrorBanner.js";
|
|
2
|
+
import { useApplicationSessionContext as t } from "./ApplicationSessionContext.js";
|
|
3
|
+
import { BlockingLoader as n } from "../../../components/LoadingScreen/LoadingScreen.js";
|
|
4
|
+
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
5
|
//#region src/utils/AppUtils/session/SessionInitializedGuard.tsx
|
|
5
|
-
function
|
|
6
|
-
let { children:
|
|
7
|
-
return
|
|
6
|
+
function o(o) {
|
|
7
|
+
let { children: s, hintText: c } = o, { hasInitializedSession: l } = t();
|
|
8
|
+
return /* @__PURE__ */ a(r, { children: [!l && /* @__PURE__ */ i(n, {
|
|
8
9
|
show: !0,
|
|
9
|
-
hintText:
|
|
10
|
-
})
|
|
10
|
+
hintText: c
|
|
11
|
+
}), /* @__PURE__ */ i(e, {
|
|
12
|
+
resetKeys: [l],
|
|
13
|
+
children: s
|
|
14
|
+
})] });
|
|
11
15
|
}
|
|
12
16
|
//#endregion
|
|
13
|
-
export {
|
|
17
|
+
export { o as SessionInitializedGuard };
|
|
14
18
|
|
|
15
19
|
//# sourceMappingURL=SessionInitializedGuard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionInitializedGuard.js","names":[],"sources":["../../../../src/utils/AppUtils/session/SessionInitializedGuard.tsx"],"sourcesContent":["import { BlockingLoader } from '@/components/LoadingScreen/LoadingScreen'\nimport { PropsWithChildren } from 'react'\nimport { useApplicationSessionContext } from './ApplicationSessionContext'\n\nexport type SessionInitializedGuardProps = PropsWithChildren<{\n /** Optional hint text to display while waiting for session initialization */\n hintText?: string\n}>\n\n/**\n * SessionInitializedGuard
|
|
1
|
+
{"version":3,"file":"SessionInitializedGuard.js","names":[],"sources":["../../../../src/utils/AppUtils/session/SessionInitializedGuard.tsx"],"sourcesContent":["import { BlockingLoader } from '@/components/LoadingScreen/LoadingScreen'\nimport { PropsWithChildren } from 'react'\nimport { useApplicationSessionContext } from './ApplicationSessionContext'\nimport { SynapseErrorBoundary } from '@/components/error/ErrorBanner'\n\nexport type SessionInitializedGuardProps = PropsWithChildren<{\n /** Optional hint text to display while waiting for session initialization */\n hintText?: string\n}>\n\n/**\n * SessionInitializedGuard displays a loading screen while the session is being\n * initialized. This is useful for components that need to ensure the session state\n * is ready before making any queries or performing operations that depend on\n * authentication status.\n *\n * For SSG compatibility, the children are rendered within an error boundary that\n * is keyed on the session initialization state. This allows any SSG-prefetched data\n * to be rendered in the static HTML and be hydration-stable on the client, while\n * still showing a loading overlay in client-mode until the session manager finishes\n * its initial check.\n *\n * @example\n * ```tsx\n * <SessionInitializedGuard>\n * <ComponentThatNeedsSession />\n * </SessionInitializedGuard>\n * ```\n */\nexport function SessionInitializedGuard(props: SessionInitializedGuardProps) {\n const { children, hintText } = props\n const { hasInitializedSession } = useApplicationSessionContext()\n\n // Render children even while the session is initializing so that SSG-prefetched\n // (anonymous) data appears in the static HTML and is hydration-stable on the\n // client. A non-blocking BlockingLoader (a fixed-position overlay) sits next\n // to the children until the session manager finishes its initial check.\n return (\n <>\n {!hasInitializedSession && (\n <BlockingLoader show={true} hintText={hintText} />\n )}\n <SynapseErrorBoundary resetKeys={[hasInitializedSession]}>\n {children}\n </SynapseErrorBoundary>\n </>\n )\n}\n"],"mappings":";;;;;AA6BA,SAAgB,EAAwB,GAAqC;CAC3E,IAAM,EAAE,aAAU,gBAAa,GACzB,EAAE,6BAA0B,EAA6B;CAM/D,OACE,kBAAA,GAAA,EAAA,UAAA,CACG,CAAC,KACA,kBAAC,GAAD;EAAgB,MAAM;EAAgB;CAAW,CAAA,GAEnD,kBAAC,GAAD;EAAsB,WAAW,CAAC,CAAqB;EACpD;CACmB,CAAA,CACtB,EAAA,CAAA;AAEN"}
|
|
@@ -10,7 +10,7 @@ export declare const FTS_SEARCH_TERM = "FTS_SEARCH_TERM";
|
|
|
10
10
|
/** @deprecated Use SEARCH_ROLE instead */
|
|
11
11
|
export declare const FTS_SEARCH_ROLE = "FTS_SEARCH_ROLE";
|
|
12
12
|
/**
|
|
13
|
-
* Look in
|
|
13
|
+
* Look in sessionStorage for a set of QueryFilters to apply. In addition, given the search params,
|
|
14
14
|
* generate a set of QueryFilters to narrow the query to view just related data.
|
|
15
15
|
* May return null if a QueryFilter should not be added.
|
|
16
16
|
* @param sql
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/SqlFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,wBAAwB,EAExB,+BAA+B,EAE/B,WAAW,EACX,GAAG,EACH,YAAY,EAEb,MAAM,iCAAiC,CAAA;AAIxC,MAAM,MAAM,WAAW,GACnB,+BAA+B,GAC/B,wBAAwB,CAAA;AAG5B,eAAO,MAAM,iCAAiC,GAAI,KAAK,MAAM,WAC5B,CAAA;AAEjC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,UAKhD;AACD,eAAO,MAAM,mCAAmC,GAC9C,KAAK,MAAM,EACX,YAAY,MAAM,WAGnB,CAAA;AAGD,eAAO,MAAM,WAAW,gBAAgB,CAAA;AACxC,eAAO,MAAM,WAAW,gBAAgB,CAAA;AAExC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAChD,0CAA0C;AAC1C,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC/B,eAAe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,WAAU,WAAkD,EAC5D,oBAAoB,MAAM,KACzB,WAAW,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"SqlFunctions.d.ts","sourceRoot":"","sources":["../../../src/utils/functions/SqlFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,wBAAwB,EAExB,+BAA+B,EAE/B,WAAW,EACX,GAAG,EACH,YAAY,EAEb,MAAM,iCAAiC,CAAA;AAIxC,MAAM,MAAM,WAAW,GACnB,+BAA+B,GAC/B,wBAAwB,CAAA;AAG5B,eAAO,MAAM,iCAAiC,GAAI,KAAK,MAAM,WAC5B,CAAA;AAEjC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,UAKhD;AACD,eAAO,MAAM,mCAAmC,GAC9C,KAAK,MAAM,EACX,YAAY,MAAM,WAGnB,CAAA;AAGD,eAAO,MAAM,WAAW,gBAAgB,CAAA;AACxC,eAAO,MAAM,WAAW,gBAAgB,CAAA;AAExC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAChD,0CAA0C;AAC1C,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAEhD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC/B,eAAe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,WAAU,WAAkD,EAC5D,oBAAoB,MAAM,KACzB,WAAW,EAAE,GAAG,SAqGlB,CAAA;AAID,eAAO,MAAM,6BAA6B,GAAI,KAAK,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,uCAAuC,GAClD,KAAK,MAAM,KACV;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAU7C,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,eAAe,YAAY,EAAE,EAC7B,YAAY,GAAG,EAAE,oCAWlB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,MAAM,EACnB,gBAAgB,YAAY,EAAE,EAC9B,eAAe,WAAW,EAAE,KAC3B,MAAM,GAAG,SA0BX,CAAA"}
|
|
@@ -7,7 +7,7 @@ function o(t) {
|
|
|
7
7
|
return t.match(e) ? t.substring(i) : t;
|
|
8
8
|
}
|
|
9
9
|
var s = (e, t) => `__${t ?? ""}_${e}`, c = "SEARCH_TERM", l = "SEARCH_ROLE", u = "FTS_SEARCH_TERM", d = "FTS_SEARCH_ROLE", f = (e, i = r.LIKE, s) => {
|
|
10
|
-
let c = s ? sessionStorage.getItem(a(s)) : void 0, l = [];
|
|
10
|
+
let c = typeof sessionStorage < "u" && s ? sessionStorage.getItem(a(s)) : void 0, l = [];
|
|
11
11
|
if (c && (l = JSON.parse(c)), e) {
|
|
12
12
|
let a = (e) => e.startsWith("qw") || e.startsWith("__");
|
|
13
13
|
l = l.concat(Object.keys(e || {}).filter((t) => !a(t) && e[t] != null && e[t].trim() != "").map((a) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlFunctions.js","names":[],"sources":["../../../src/utils/functions/SqlFunctions.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnMultiValueFunction,\n ColumnMultiValueFunctionQueryFilter,\n ColumnSingleValueFilterOperator,\n ColumnSingleValueQueryFilter,\n QueryFilter,\n Row,\n SelectColumn,\n TextMatchesQueryFilter,\n} from '@sage-bionetworks/synapse-types'\nimport { SYNAPSE_ENTITY_ID_REGEX } from './RegularExpressions'\nimport { splitAndTrim } from './StringUtils'\n\nexport type SQLOperator =\n | ColumnSingleValueFilterOperator\n | ColumnMultiValueFunction\n\nconst WITHOUT_SYN_PREFIX = 3\nexport const QUERY_FILTERS_SESSION_STORAGE_KEY = (key: string) =>\n `${key}-temp-QueryFilter-array`\n\nexport function removePrefixIfSynId(value: string) {\n if (value.match(SYNAPSE_ENTITY_ID_REGEX)) {\n return value.substring(WITHOUT_SYN_PREFIX)\n }\n return value\n}\nexport const getIgnoredQueryFilterSearchParamKey = (\n key: string,\n namespace?: string,\n) => {\n return `__${namespace ?? ''}_${key}`\n}\n\n// Special search parameter key that will automatically apply a FTS search term to a Query Wrapper if present\nexport const SEARCH_TERM = 'SEARCH_TERM'\nexport const SEARCH_ROLE = 'SEARCH_ROLE'\n\n/** @deprecated Use SEARCH_TERM instead */\nexport const FTS_SEARCH_TERM = 'FTS_SEARCH_TERM'\n/** @deprecated Use SEARCH_ROLE instead */\nexport const FTS_SEARCH_ROLE = 'FTS_SEARCH_ROLE'\n\n/**\n * Look in local storage for a set of QueryFilters to apply. In addition, given the search params,\n * generate a set of QueryFilters to narrow the query to view just related data.\n * May return null if a QueryFilter should not be added.\n * @param sql\n * @param searchParams\n * @param operator\n * @returns\n */\nexport const getAdditionalFilters = (\n searchParams?: Record<string, string>,\n operator: SQLOperator = ColumnSingleValueFilterOperator.LIKE,\n sessionStorageKey?: string,\n): QueryFilter[] | undefined => {\n const sessionStorageQueryFiltersString = sessionStorageKey\n ? sessionStorage.getItem(\n QUERY_FILTERS_SESSION_STORAGE_KEY(sessionStorageKey),\n )\n : undefined\n let additionalFilters: QueryFilter[] = []\n if (sessionStorageQueryFiltersString) {\n additionalFilters = JSON.parse(\n sessionStorageQueryFiltersString,\n ) as QueryFilter[]\n }\n if (searchParams) {\n const isQueryWrapperKey = (key: string) =>\n key.startsWith('qw') || key.startsWith('__')\n additionalFilters = additionalFilters.concat(\n Object.keys(searchParams || {})\n .filter(\n key =>\n !isQueryWrapperKey(key) &&\n searchParams[key] != undefined &&\n searchParams[key].trim() != '',\n )\n .map(key => {\n if (key == SEARCH_TERM || key == FTS_SEARCH_TERM) {\n const filter: TextMatchesQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.TextMatchesQueryFilter',\n searchExpression: searchParams[key],\n }\n return filter\n }\n switch (operator) {\n case ColumnSingleValueFilterOperator.EQUAL: {\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n values: [searchParams[key]],\n }\n return filter\n }\n case ColumnSingleValueFilterOperator.IN: {\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n values: splitAndTrim(searchParams[key]),\n }\n return filter\n }\n case ColumnMultiValueFunction.HAS: {\n const filter: ColumnMultiValueFunctionQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter',\n columnName: key,\n function: operator,\n _function: operator,\n values: splitAndTrim(searchParams[key]),\n }\n return filter\n }\n case ColumnSingleValueFilterOperator.LIKE: {\n // If we use a LIKE statement with a synId the backend will look for a string with the first three\n // characters being 'syn', however, it stores synIds without 'syn', so the query will fail\n // The backend usually parses 'syn' out, but not with the LIKE clause since its expecting a regex, so we\n // parse this out. This will cause a bug if something matches the synId regex but is in free text.\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n // Add wildcards around the value\n values: [`%${removePrefixIfSynId(searchParams[key])}%`],\n }\n return filter\n }\n case ColumnMultiValueFunction.HAS_LIKE: {\n const filter: ColumnMultiValueFunctionQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter',\n columnName: key,\n function: operator,\n _function: operator,\n values: searchParams[key].split(',').map(param => {\n // Remove synId prefix for the same reasons as in the LIKE case\n return `%${removePrefixIfSynId(param)}%`\n }),\n }\n return filter\n }\n }\n }),\n )\n }\n\n return additionalFilters.length === 0 ? undefined : additionalFilters\n}\n\n//parses synapse entity id from a sql query string\n//look for a pattern of 'from[some number of spaces]syn[somenumbers]` case insensitive\nexport const parseEntityIdFromSqlStatement = (sql: string): string => {\n const matches = sql.match(/(from)\\s+(syn)\\d+/gi)\n return matches && matches[0] ? matches[0].substr(5).trim() : ''\n}\n\nexport const parseEntityIdAndVersionFromSqlStatement = (\n sql: string,\n): { entityId?: string; versionNumber?: number } => {\n const regex = /from\\s+(syn\\d+)(?:\\.(\\d+))?/i\n const matches = regex.exec(sql)\n if (!matches) {\n return { entityId: undefined, versionNumber: undefined }\n }\n return {\n entityId: matches[1],\n versionNumber: matches[2] ? parseInt(matches[2]) : undefined,\n }\n}\n\nexport const resultToJson = (\n headerColumns: SelectColumn[],\n rowColumns: Row[],\n) => {\n const rows = rowColumns.map(row => row.values)\n const headers = headerColumns.map(column => column.name)\n return rows.map(row => {\n const obj: Record<string, string | null> = {}\n row.forEach((text, cellIndex) => {\n obj[headers[cellIndex]] = text\n })\n return obj\n })\n}\n\n/**\n * Finds the index of the given column name in the selectColumns or columnModels.\n *\n * @returns a non-negative integer if the column is found, or undefined if the column is not found\n * @param columnName\n * @param selectColumns\n * @param columnModels\n */\nexport const getColumnIndex = (\n columnName?: string,\n selectColumns?: SelectColumn[],\n columnModels?: ColumnModel[],\n): number | undefined => {\n if (!columnName) {\n return undefined\n }\n\n const lowerCaseColumnName = columnName.toLowerCase()\n\n if (selectColumns) {\n const findIndexResult = selectColumns.findIndex(\n el => el.name?.toLowerCase() === lowerCaseColumnName,\n )\n if (findIndexResult != -1) {\n return findIndexResult\n }\n }\n\n if (columnModels) {\n const findIndexResult = columnModels.findIndex(\n el => el.name?.toLowerCase() === lowerCaseColumnName,\n )\n if (findIndexResult !== -1) {\n return findIndexResult\n }\n }\n\n return undefined\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlFunctions.js","names":[],"sources":["../../../src/utils/functions/SqlFunctions.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnMultiValueFunction,\n ColumnMultiValueFunctionQueryFilter,\n ColumnSingleValueFilterOperator,\n ColumnSingleValueQueryFilter,\n QueryFilter,\n Row,\n SelectColumn,\n TextMatchesQueryFilter,\n} from '@sage-bionetworks/synapse-types'\nimport { SYNAPSE_ENTITY_ID_REGEX } from './RegularExpressions'\nimport { splitAndTrim } from './StringUtils'\n\nexport type SQLOperator =\n | ColumnSingleValueFilterOperator\n | ColumnMultiValueFunction\n\nconst WITHOUT_SYN_PREFIX = 3\nexport const QUERY_FILTERS_SESSION_STORAGE_KEY = (key: string) =>\n `${key}-temp-QueryFilter-array`\n\nexport function removePrefixIfSynId(value: string) {\n if (value.match(SYNAPSE_ENTITY_ID_REGEX)) {\n return value.substring(WITHOUT_SYN_PREFIX)\n }\n return value\n}\nexport const getIgnoredQueryFilterSearchParamKey = (\n key: string,\n namespace?: string,\n) => {\n return `__${namespace ?? ''}_${key}`\n}\n\n// Special search parameter key that will automatically apply a FTS search term to a Query Wrapper if present\nexport const SEARCH_TERM = 'SEARCH_TERM'\nexport const SEARCH_ROLE = 'SEARCH_ROLE'\n\n/** @deprecated Use SEARCH_TERM instead */\nexport const FTS_SEARCH_TERM = 'FTS_SEARCH_TERM'\n/** @deprecated Use SEARCH_ROLE instead */\nexport const FTS_SEARCH_ROLE = 'FTS_SEARCH_ROLE'\n\n/**\n * Look in sessionStorage for a set of QueryFilters to apply. In addition, given the search params,\n * generate a set of QueryFilters to narrow the query to view just related data.\n * May return null if a QueryFilter should not be added.\n * @param sql\n * @param searchParams\n * @param operator\n * @returns\n */\nexport const getAdditionalFilters = (\n searchParams?: Record<string, string>,\n operator: SQLOperator = ColumnSingleValueFilterOperator.LIKE,\n sessionStorageKey?: string,\n): QueryFilter[] | undefined => {\n const hasSessionStorage = typeof sessionStorage !== 'undefined'\n const sessionStorageQueryFiltersString =\n hasSessionStorage && sessionStorageKey\n ? sessionStorage.getItem(\n QUERY_FILTERS_SESSION_STORAGE_KEY(sessionStorageKey),\n )\n : undefined\n let additionalFilters: QueryFilter[] = []\n if (sessionStorageQueryFiltersString) {\n additionalFilters = JSON.parse(\n sessionStorageQueryFiltersString,\n ) as QueryFilter[]\n }\n if (searchParams) {\n const isQueryWrapperKey = (key: string) =>\n key.startsWith('qw') || key.startsWith('__')\n additionalFilters = additionalFilters.concat(\n Object.keys(searchParams || {})\n .filter(\n key =>\n !isQueryWrapperKey(key) &&\n searchParams[key] != undefined &&\n searchParams[key].trim() != '',\n )\n .map(key => {\n if (key == SEARCH_TERM || key == FTS_SEARCH_TERM) {\n const filter: TextMatchesQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.TextMatchesQueryFilter',\n searchExpression: searchParams[key],\n }\n return filter\n }\n switch (operator) {\n case ColumnSingleValueFilterOperator.EQUAL: {\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n values: [searchParams[key]],\n }\n return filter\n }\n case ColumnSingleValueFilterOperator.IN: {\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n values: splitAndTrim(searchParams[key]),\n }\n return filter\n }\n case ColumnMultiValueFunction.HAS: {\n const filter: ColumnMultiValueFunctionQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter',\n columnName: key,\n function: operator,\n _function: operator,\n values: splitAndTrim(searchParams[key]),\n }\n return filter\n }\n case ColumnSingleValueFilterOperator.LIKE: {\n // If we use a LIKE statement with a synId the backend will look for a string with the first three\n // characters being 'syn', however, it stores synIds without 'syn', so the query will fail\n // The backend usually parses 'syn' out, but not with the LIKE clause since its expecting a regex, so we\n // parse this out. This will cause a bug if something matches the synId regex but is in free text.\n const filter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: key,\n operator: operator,\n // Add wildcards around the value\n values: [`%${removePrefixIfSynId(searchParams[key])}%`],\n }\n return filter\n }\n case ColumnMultiValueFunction.HAS_LIKE: {\n const filter: ColumnMultiValueFunctionQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter',\n columnName: key,\n function: operator,\n _function: operator,\n values: searchParams[key].split(',').map(param => {\n // Remove synId prefix for the same reasons as in the LIKE case\n return `%${removePrefixIfSynId(param)}%`\n }),\n }\n return filter\n }\n }\n }),\n )\n }\n\n return additionalFilters.length === 0 ? undefined : additionalFilters\n}\n\n//parses synapse entity id from a sql query string\n//look for a pattern of 'from[some number of spaces]syn[somenumbers]` case insensitive\nexport const parseEntityIdFromSqlStatement = (sql: string): string => {\n const matches = sql.match(/(from)\\s+(syn)\\d+/gi)\n return matches && matches[0] ? matches[0].substr(5).trim() : ''\n}\n\nexport const parseEntityIdAndVersionFromSqlStatement = (\n sql: string,\n): { entityId?: string; versionNumber?: number } => {\n const regex = /from\\s+(syn\\d+)(?:\\.(\\d+))?/i\n const matches = regex.exec(sql)\n if (!matches) {\n return { entityId: undefined, versionNumber: undefined }\n }\n return {\n entityId: matches[1],\n versionNumber: matches[2] ? parseInt(matches[2]) : undefined,\n }\n}\n\nexport const resultToJson = (\n headerColumns: SelectColumn[],\n rowColumns: Row[],\n) => {\n const rows = rowColumns.map(row => row.values)\n const headers = headerColumns.map(column => column.name)\n return rows.map(row => {\n const obj: Record<string, string | null> = {}\n row.forEach((text, cellIndex) => {\n obj[headers[cellIndex]] = text\n })\n return obj\n })\n}\n\n/**\n * Finds the index of the given column name in the selectColumns or columnModels.\n *\n * @returns a non-negative integer if the column is found, or undefined if the column is not found\n * @param columnName\n * @param selectColumns\n * @param columnModels\n */\nexport const getColumnIndex = (\n columnName?: string,\n selectColumns?: SelectColumn[],\n columnModels?: ColumnModel[],\n): number | undefined => {\n if (!columnName) {\n return undefined\n }\n\n const lowerCaseColumnName = columnName.toLowerCase()\n\n if (selectColumns) {\n const findIndexResult = selectColumns.findIndex(\n el => el.name?.toLowerCase() === lowerCaseColumnName,\n )\n if (findIndexResult != -1) {\n return findIndexResult\n }\n }\n\n if (columnModels) {\n const findIndexResult = columnModels.findIndex(\n el => el.name?.toLowerCase() === lowerCaseColumnName,\n )\n if (findIndexResult !== -1) {\n return findIndexResult\n }\n }\n\n return undefined\n}\n"],"mappings":";;;;AAkBA,IAAM,IAAqB,GACd,KAAqC,MAChD,GAAG,EAAI;AAET,SAAgB,EAAoB,GAAe;CAIjD,OAHI,EAAM,MAAM,CAAuB,IAC9B,EAAM,UAAU,CAAkB,IAEpC;AACT;AACA,IAAa,KACX,GACA,MAEO,KAAK,KAAa,GAAG,GAAG,KAIpB,IAAc,eACd,IAAc,eAGd,IAAkB,mBAElB,IAAkB,mBAWlB,KACX,GACA,IAAwB,EAAgC,MACxD,MAC8B;CAE9B,IAAM,IADoB,OAAO,iBAAmB,OAE7B,IACjB,eAAe,QACb,EAAkC,CAAiB,CACrD,IACA,KAAA,GACF,IAAmC,CAAC;CAMxC,IALI,MACF,IAAoB,KAAK,MACvB,CACF,IAEE,GAAc;EAChB,IAAM,KAAqB,MACzB,EAAI,WAAW,IAAI,KAAK,EAAI,WAAW,IAAI;EAC7C,IAAoB,EAAkB,OACpC,OAAO,KAAK,KAAgB,CAAC,CAAC,EAC3B,QACC,MACE,CAAC,EAAkB,CAAG,KACtB,EAAa,MAAQ,QACrB,EAAa,GAAK,KAAK,KAAK,EAChC,EACC,KAAI,MAAO;GACV,IAAI,KAAA,iBAAsB,KAAA,mBAMxB,OAAO;IAJL,cACE;IACF,kBAAkB,EAAa;GAE1B;GAET,QAAQ,GAAR;IACE,KAAK,EAAgC,OAQnC,OAAO;KANL,cACE;KACF,YAAY;KACF;KACV,QAAQ,CAAC,EAAa,EAAI;IAErB;IAET,KAAK,EAAgC,IAQnC,OAAO;KANL,cACE;KACF,YAAY;KACF;KACV,QAAQ,EAAa,EAAa,EAAI;IAEjC;IAET,KAAK,EAAyB,KAS5B,OAAO;KAPL,cACE;KACF,YAAY;KACZ,UAAU;KACV,WAAW;KACX,QAAQ,EAAa,EAAa,EAAI;IAEjC;IAET,KAAK,EAAgC,MAanC,OAAO;KAPL,cACE;KACF,YAAY;KACF;KAEV,QAAQ,CAAC,IAAI,EAAoB,EAAa,EAAI,EAAE,EAAE;IAEjD;IAET,KAAK,EAAyB,UAY5B,OAAO;KAVL,cACE;KACF,YAAY;KACZ,UAAU;KACV,WAAW;KACX,QAAQ,EAAa,GAAK,MAAM,GAAG,EAAE,KAAI,MAEhC,IAAI,EAAoB,CAAK,EAAE,EACvC;IAEI;GAEX;EACF,CAAC,CACL;CACF;CAEA,OAAO,EAAkB,WAAW,IAAI,KAAA,IAAY;AACtD,GAIa,KAAiC,MAAwB;CACpE,IAAM,IAAU,EAAI,MAAM,qBAAqB;CAC/C,OAAO,KAAW,EAAQ,KAAK,EAAQ,GAAG,OAAO,CAAC,EAAE,KAAK,IAAI;AAC/D,GAEa,KACX,MACkD;CAElD,IAAM,IAAU,+BAAM,KAAK,CAAG;CAI9B,OAHK,IAGE;EACL,UAAU,EAAQ;EAClB,eAAe,EAAQ,KAAK,SAAS,EAAQ,EAAE,IAAI,KAAA;CACrD,IALS;EAAE,UAAU,KAAA;EAAW,eAAe,KAAA;CAAU;AAM3D,GAEa,KACX,GACA,MACG;CACH,IAAM,IAAO,EAAW,KAAI,MAAO,EAAI,MAAM,GACvC,IAAU,EAAc,KAAI,MAAU,EAAO,IAAI;CACvD,OAAO,EAAK,KAAI,MAAO;EACrB,IAAM,IAAqC,CAAC;EAI5C,OAHA,EAAI,SAAS,GAAM,MAAc;GAC/B,EAAI,EAAQ,MAAc;EAC5B,CAAC,GACM;CACT,CAAC;AACH,GAUa,KACX,GACA,GACA,MACuB;CACvB,IAAI,CAAC,GACH;CAGF,IAAM,IAAsB,EAAW,YAAY;CAEnD,IAAI,GAAe;EACjB,IAAM,IAAkB,EAAc,WACpC,MAAM,EAAG,MAAM,YAAY,MAAM,CACnC;EACA,IAAI,KAAmB,IACrB,OAAO;CAEX;CAEA,IAAI,GAAc;EAChB,IAAM,IAAkB,EAAa,WACnC,MAAM,EAAG,MAAM,YAAY,MAAM,CACnC;EACA,IAAI,MAAoB,IACtB,OAAO;CAEX;AAGF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synapse-react-client",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"cbor2": "^2.3.0",
|
|
61
61
|
"classnames": "^2.5.1",
|
|
62
62
|
"clickable-json": "^1.15.1",
|
|
63
|
+
"d3-sankey": "^0.12.3",
|
|
63
64
|
"dagre": "^0.8.5",
|
|
64
65
|
"dayjs": "^1.11.21",
|
|
65
66
|
"html-react-parser": "^6.1.3",
|
|
@@ -117,12 +118,12 @@
|
|
|
117
118
|
"ua-parser-js": "^1.0.41",
|
|
118
119
|
"use-deep-compare-effect": "^1.8.1",
|
|
119
120
|
"xss": "^1.0.15",
|
|
120
|
-
"zod": "^
|
|
121
|
+
"zod": "^4.4.3",
|
|
122
|
+
"@sage-bionetworks/markdown-it-container": "4.0.1",
|
|
123
|
+
"@sage-bionetworks/synapse-types": "0.0.7",
|
|
121
124
|
"@sage-bionetworks/synapse-client": "0.0.18",
|
|
122
125
|
"markdown-it-synapse": "2.0.0",
|
|
123
|
-
"markdown-it-synapse-table": "1.0.8"
|
|
124
|
-
"@sage-bionetworks/markdown-it-container": "4.0.1",
|
|
125
|
-
"@sage-bionetworks/synapse-types": "0.0.7"
|
|
126
|
+
"markdown-it-synapse-table": "1.0.8"
|
|
126
127
|
},
|
|
127
128
|
"peerDependencies": {
|
|
128
129
|
"@sage-bionetworks/aridhia-client": "*",
|
|
@@ -149,6 +150,7 @@
|
|
|
149
150
|
"@testing-library/jest-dom": "^6.9.1",
|
|
150
151
|
"@testing-library/react": "^16.3.2",
|
|
151
152
|
"@testing-library/user-event": "^14.6.1",
|
|
153
|
+
"@types/d3-sankey": "^0.12.5",
|
|
152
154
|
"@types/dagre": "^0.7.54",
|
|
153
155
|
"@types/google.maps": "^3.65.1",
|
|
154
156
|
"@types/history": "^4.7.11",
|