You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2025/02/12 22:41:31 UTC
(camel-karavan) 05/05: Designer updates
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit a00110fee73bc6087d00a2732259899433b59c60
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Feb 12 17:40:52 2025 -0500
Designer updates
---
karavan-app/src/main/webui/package-lock.json | 13 +-
karavan-app/src/main/webui/package.json | 1 +
.../src/main/webui/src/designer/DesignerStore.ts | 87 +-
.../main/webui/src/designer/KaravanDesigner.tsx | 83 +-
.../webui/src/designer/beans/BeansDesigner.tsx | 81 +-
.../webui/src/designer/icons/ComponentIcons.tsx | 3 +-
.../webui/src/designer/kamelet/KameletDesigner.tsx | 101 +-
.../src/main/webui/src/designer/karavan.css | 23 +-
.../webui/src/designer/property/DslProperties.css | 82 +-
.../webui/src/designer/property/DslProperties.tsx | 1 +
.../src/designer/property/MainPropertiesPanel.tsx | 88 +
.../src/designer/property/PropertiesHeader.tsx | 20 +-
.../property/property/ComponentPropertyField.tsx | 13 +-
.../designer/property/property/DataFormatField.tsx | 1 +
.../property/property/DslPropertyField.tsx | 25 +-
.../designer/property/property/ExpressionField.tsx | 4 +-
.../property/property/KameletPropertyField.tsx | 7 +-
.../main/webui/src/designer/rest/RestDesigner.tsx | 84 +-
.../webui/src/designer/route/RouteDesigner.tsx | 59 +-
.../src/designer/route/element/DslElement.css | 24 +
.../src/designer/route/element/DslElement.tsx | 68 +-
.../designer/route/element/DslElementHeader.tsx | 71 +-
.../webui/src/knowledgebase/KnowledgebasePage.tsx | 30 +-
karavan-space/package-lock.json | 7860 ++++++++++++++++++++
karavan-space/package.json | 1 +
karavan-space/public/metadata/components.json | 700 +-
karavan-space/public/metadata/kamelets.yaml | 601 +-
karavan-space/public/metadata/spiBeans.json | 277 +-
karavan-space/src/designer/DesignerStore.ts | 87 +-
karavan-space/src/designer/KaravanDesigner.tsx | 83 +-
karavan-space/src/designer/beans/BeansDesigner.tsx | 81 +-
.../src/designer/icons/ComponentIcons.tsx | 3 +-
.../src/designer/kamelet/KameletDesigner.tsx | 101 +-
karavan-space/src/designer/karavan.css | 23 +-
.../src/designer/property/DslProperties.css | 82 +-
.../src/designer/property/DslProperties.tsx | 1 +
.../src/designer/property/MainPropertiesPanel.tsx | 88 +
.../src/designer/property/PropertiesHeader.tsx | 20 +-
.../property/property/ComponentPropertyField.tsx | 13 +-
.../designer/property/property/DataFormatField.tsx | 1 +
.../property/property/DslPropertyField.tsx | 25 +-
.../designer/property/property/ExpressionField.tsx | 4 +-
.../property/property/KameletPropertyField.tsx | 7 +-
karavan-space/src/designer/rest/RestDesigner.tsx | 84 +-
karavan-space/src/designer/route/RouteDesigner.tsx | 59 +-
.../src/designer/route/element/DslElement.css | 24 +
.../src/designer/route/element/DslElement.tsx | 68 +-
.../designer/route/element/DslElementHeader.tsx | 71 +-
karavan-space/src/designer/utils/CamelUi.tsx | 2 +-
.../src/knowledgebase/KnowledgebasePage.tsx | 30 +-
50 files changed, 9893 insertions(+), 1472 deletions(-)
diff --git a/karavan-app/src/main/webui/package-lock.json b/karavan-app/src/main/webui/package-lock.json
index 255aecbb..3db73f11 100644
--- a/karavan-app/src/main/webui/package-lock.json
+++ b/karavan-app/src/main/webui/package-lock.json
@@ -28,6 +28,7 @@
"react": "18.3.1",
"react-dom": "18.3.1",
"react-hook-form": "^7.54.2",
+ "react-resizable-panels": "^2.1.7",
"react-router-dom": "^6.28.2",
"rxjs": "7.8.1",
"usehooks-ts": "^3.1.0",
@@ -55,7 +56,7 @@
}
},
"../../../../karavan-core": {
- "version": "4.8.3",
+ "version": "4.10.0",
"license": "Apache-2.0",
"dependencies": {
"@types/js-yaml": "^4.0.9",
@@ -6331,6 +6332,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-resizable-panels": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.7.tgz",
+ "integrity": "sha512-JtT6gI+nURzhMYQYsx8DKkx6bSoOGFp7A3CwMrOb8y5jFHFyqwo9m68UhmXRw57fRVJksFn1TSlm3ywEQ9vMgA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
"node_modules/react-router": {
"version": "6.28.2",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.2.tgz",
diff --git a/karavan-app/src/main/webui/package.json b/karavan-app/src/main/webui/package.json
index af5edb52..dc58c360 100644
--- a/karavan-app/src/main/webui/package.json
+++ b/karavan-app/src/main/webui/package.json
@@ -52,6 +52,7 @@
"react": "18.3.1",
"react-dom": "18.3.1",
"react-hook-form": "^7.54.2",
+ "react-resizable-panels": "^2.1.7",
"react-router-dom": "^6.28.2",
"rxjs": "7.8.1",
"usehooks-ts": "^3.1.0",
diff --git a/karavan-app/src/main/webui/src/designer/DesignerStore.ts b/karavan-app/src/main/webui/src/designer/DesignerStore.ts
index 7535b93b..420de52a 100644
--- a/karavan-app/src/main/webui/src/designer/DesignerStore.ts
+++ b/karavan-app/src/main/webui/src/designer/DesignerStore.ts
@@ -36,12 +36,15 @@ interface IntegrationState {
setVariables: (variables: string[]) => void;
addVariable: (variable: string) => void;
getVariables: () => string[];
+ key: string;
+ setKey: (key: string) => void;
}
export const useIntegrationStore = createWithEqualityFn<IntegrationState>((set, get) => ({
integration: Integration.createNew("demo", "plain"),
propertyOnly: false,
json: '{}',
+ key: '',
setIntegration: (integration: Integration, propertyOnly: boolean) => {
set((state: IntegrationState) => {
const json = JSON.stringify(integration);
@@ -89,6 +92,9 @@ export const useIntegrationStore = createWithEqualityFn<IntegrationState>((set,
currentVariables.concat(otherVariables);
return currentVariables;
},
+ setKey: (key: string) => {
+ set({key: key});
+ },
}), shallow)
@@ -197,27 +203,35 @@ export const useConnectionsStore = createWithEqualityFn<ConnectionsState>((set)
}), shallow)
type DesignerState = {
- dark: boolean;
- notificationBadge: boolean;
- notificationMessage: [string, string];
- shiftKeyPressed: boolean;
- showDeleteConfirmation: boolean;
- showMoveConfirmation: boolean;
- deleteMessage: string;
- selectedStep?: CamelElement;
- selectedUuids: string[];
- clipboardSteps: CamelElement[];
- width: number,
- height: number,
- top: number,
- left: number,
- moveElements: [string | undefined, string | undefined],
- propertyPlaceholders: string[],
+ isDebugging: boolean
+ dark: boolean
+ notificationBadge: boolean
+ notificationMessage: [string, string]
+ shiftKeyPressed: boolean
+ showDeleteConfirmation: boolean
+ showMoveConfirmation: boolean
+ deleteMessage: string
+ selectedStep?: CamelElement
+ selectedUuids: string[]
+ passedNodeIds: string[]
+ passedRouteId?: string
+ failedRouteId?: string
+ suspendedNodeId?: string
+ failed: boolean
+ clipboardSteps: CamelElement[]
+ width: number
+ height: number
+ top: number
+ left: number
+ moveElements: [string | undefined, string | undefined]
+ propertyPlaceholders: string[]
parameterPlaceholders: [string, string][], // route template parameters
- beans: BeanFactoryDefinition[]
+ beans: BeanFactoryDefinition[],
+ tab?: "routes" | "rest" | "beans" | "kamelet" | "code"
}
const designerState: DesignerState = {
+ isDebugging: false,
notificationBadge: false,
notificationMessage: ['', ''],
dark: false,
@@ -226,6 +240,11 @@ const designerState: DesignerState = {
showMoveConfirmation: false,
deleteMessage: '',
selectedUuids: [],
+ passedNodeIds: [],
+ passedRouteId: undefined,
+ failedRouteId: undefined,
+ suspendedNodeId: undefined,
+ failed: false,
clipboardSteps: [],
width: 0,
height: 0,
@@ -234,17 +253,23 @@ const designerState: DesignerState = {
moveElements: [undefined, undefined],
propertyPlaceholders: [],
parameterPlaceholders: [],
- beans: []
+ beans: [],
};
type DesignerAction = {
setDark: (dark: boolean) => void;
+ setDebugging: (isDebugging: boolean) => void;
setShiftKeyPressed: (shiftKeyPressed: boolean) => void;
setShowDeleteConfirmation: (showDeleteConfirmation: boolean) => void;
setShowMoveConfirmation: (showMoveConfirmation: boolean) => void;
setDeleteMessage: (deleteMessage: string) => void;
setSelectedStep: (selectedStep?: CamelElement) => void;
setSelectedUuids: (selectedUuids: string[]) => void;
+ setPassedNodeIds: (passedNodeIds: string[]) => void;
+ setPassedRouteId: (passedRouteId?: string) => void;
+ setFailedRouteId: (failedRouteId?: string) => void;
+ setSuspendedNodeId: (suspendedNodeId?: string) => void;
+ setFailed: (failed: boolean) => void;
setClipboardSteps: (clipboardSteps: CamelElement[]) => void;
setPosition: (width: number, height: number, top: number, left: number) => void;
reset: () => void;
@@ -253,6 +278,7 @@ type DesignerAction = {
setPropertyPlaceholders: (propertyPlaceholders: string[]) => void;
setParameterPlaceholders: (parameterPlaceholders: [string, string][]) => void;
setBeans: (beans: BeanFactoryDefinition[]) => void;
+ setTab: (tab?: "routes" | "rest" | "beans" | "kamelet" | "code") => void;
}
export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAction>((set) => ({
@@ -260,6 +286,12 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
setDark: (dark: boolean) => {
set({dark: dark})
},
+ setDebugging: (isDebugging: boolean) => {
+ set({isDebugging: isDebugging})
+ },
+ setFailed: (failed: boolean) => {
+ set({failed: failed})
+ },
setShiftKeyPressed: (shiftKeyPressed: boolean) => {
set({shiftKeyPressed: shiftKeyPressed})
},
@@ -282,6 +314,22 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
return state;
})
},
+ setPassedNodeIds: (passedNodeIds: string[]) => {
+ set((state: DesignerState) => {
+ state.passedNodeIds.length = 0;
+ state.passedNodeIds.push(...passedNodeIds);
+ return state;
+ })
+ },
+ setPassedRouteId: (passedRouteId?: string) => {
+ set({passedRouteId: passedRouteId})
+ },
+ setFailedRouteId: (failedRouteId?: string) => {
+ set({failedRouteId: failedRouteId})
+ },
+ setSuspendedNodeId: (suspendedNodeId?: string) => {
+ set({suspendedNodeId: suspendedNodeId})
+ },
setClipboardSteps: (clipboardSteps: CamelElement[]) => {
set((state: DesignerState) => {
state.clipboardSteps.length = 0;
@@ -324,4 +372,7 @@ export const useDesignerStore = createWithEqualityFn<DesignerState & DesignerAct
return {beans: [...beans]};
})
},
+ setTab: (tab?: "routes" | "rest" | "beans" | "kamelet" | "code") => {
+ set({tab: tab})
+ },
}), shallow)
\ No newline at end of file
diff --git a/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx b/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
index c4fa3c32..7b29c57a 100644
--- a/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/KaravanDesigner.tsx
@@ -44,6 +44,8 @@ import {KameletDesigner} from "./kamelet/KameletDesigner";
import {BeanFactoryDefinition} from "karavan-core/lib/model/CamelDefinition";
import {VariableUtil} from "karavan-core/lib/api/VariableUtil";
import {ErrorBoundaryState, ErrorBoundaryWrapper} from "./ErrorBoundaryWrapper";
+import {Panel, PanelGroup, PanelResizeHandle} from 'react-resizable-panels';
+import {MainPropertiesPanel} from "./property/MainPropertiesPanel";
interface Props {
onSave: (filename: string, yaml: string, propertyOnly: boolean) => void
@@ -59,14 +61,14 @@ interface Props {
propertyPlaceholders: string[]
beans: BeanFactoryDefinition[]
files: IntegrationFile[]
+ mainRightPanel?: React.ReactNode
}
export function KaravanDesigner(props: Props) {
- const [tab, setTab] = useState<string>('routes');
- const [setDark, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans] =
+ const [setDark, setSelectedStep, reset, badge, message, setPropertyPlaceholders, setBeans, tab, setTab] =
useDesignerStore((s) =>
- [s.setDark, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans], shallow)
+ [s.setDark, s.setSelectedStep, s.reset, s.notificationBadge, s.notificationMessage, s.setPropertyPlaceholders, s.setBeans, s.tab, s.setTab], shallow)
const [integration, setIntegration, resetFiles, setVariables] = useIntegrationStore((s) =>
[s.integration, s.setIntegration, s.resetFiles, s.setVariables], shallow)
@@ -121,6 +123,7 @@ export function KaravanDesigner(props: Props) {
return Integration.createNew(filename, 'plain');
}
} catch (e) {
+ console.error(e)
EventBus.sendAlert("Error parsing YAML", (e as Error).message, 'danger')
return Integration.createNew(filename, 'plain');
}
@@ -136,6 +139,7 @@ export function KaravanDesigner(props: Props) {
const clone = CamelUtil.cloneIntegration(integration);
return CamelDefinitionYaml.integrationToYaml(clone);
} catch (e) {
+ console.error(e)
EventBus.sendAlert('Error parsing Yaml', (e as Error).message, 'danger');
return '';
}
@@ -182,32 +186,53 @@ export function KaravanDesigner(props: Props) {
}
}, [state]);
+ function getMainPart() {
+ return (
+ <PageSection variant={props.dark ? PageSectionVariants.darker : PageSectionVariants.light} className="page" isFilled padding={{default: 'noPadding'}}>
+ <div className={"main-tabs-wrapper"}>
+ <Tabs className="main-tabs"
+ activeKey={tab}
+ onSelect={(event, tabIndex: string | number) => {
+ const tab = tabIndex.toString() as "routes" | "rest" | "beans" | "kamelet" | "code";
+ if (["routes", "rest", "beans", "kamelet", "code"].includes(tab)) {
+ setTab(tab);
+ } else {
+ setTab(undefined); // Handle unexpected values
+ }
+ setSelectedStep(undefined);
+ }}
+ style={{width: "100%"}}>
+ {isKamelet && <Tab eventKey='kamelet' title={getTab("Definitions", "Kamelet Definitions", "kamelet")}></Tab>}
+ <Tab eventKey='routes' title={getTab("Routes", "Integration flows", "routes")}></Tab>
+ {!isKamelet && <Tab eventKey='rest' title={getTab("REST", "REST services", "rest")}></Tab>}
+ <Tab eventKey='beans' title={getTab("Beans", "Beans Configuration", "beans")}></Tab>
+ {props.showCodeTab && <Tab eventKey='code' title={getTab("YAML", "YAML Code", "code", true)}></Tab>}
+ </Tabs>
+ </div>
+ <ErrorBoundaryWrapper onError={handleError}>
+ {tab === 'kamelet' && <KameletDesigner/>}
+ {tab === 'routes' && <RouteDesigner/>}
+ {tab === 'rest' && <RestDesigner/>}
+ {tab === 'beans' && <BeansDesigner/>}
+ {tab === 'code' && <CodeEditor/>}
+ </ErrorBoundaryWrapper>
+ </PageSection>
+ )
+ }
+
return (
- <PageSection variant={props.dark ? PageSectionVariants.darker : PageSectionVariants.light}
- className="page"
- isFilled padding={{default: 'noPadding'}}>
- <div className={"main-tabs-wrapper"}>
- <Tabs className="main-tabs"
- activeKey={tab}
- onSelect={(event, tabIndex) => {
- setTab(tabIndex.toString());
- setSelectedStep(undefined);
- }}
- style={{width: "100%"}}>
- {isKamelet && <Tab eventKey='kamelet' title={getTab("Definitions", "Kamelet Definitions", "kamelet")}></Tab>}
- <Tab eventKey='routes' title={getTab("Routes", "Integration flows", "routes")}></Tab>
- {!isKamelet && <Tab eventKey='rest' title={getTab("REST", "REST services", "rest")}></Tab>}
- <Tab eventKey='beans' title={getTab("Beans", "Beans Configuration", "beans")}></Tab>
- {props.showCodeTab && <Tab eventKey='code' title={getTab("YAML", "YAML Code", "code", true)}></Tab>}
- </Tabs>
- </div>
- <ErrorBoundaryWrapper onError={handleError}>
- {tab === 'kamelet' && <KameletDesigner/>}
- {tab === 'routes' && <RouteDesigner/>}
- {tab === 'rest' && <RestDesigner/>}
- {tab === 'beans' && <BeansDesigner/>}
- {tab === 'code' && <CodeEditor/>}
- </ErrorBoundaryWrapper>
- </PageSection>
+ (tab !== 'code' && tab !== 'kamelet')
+ ? <PanelGroup direction="horizontal" style={{backgroundColor: 'white'}}>
+ <Panel minSize={10} defaultSize={70}>
+ {getMainPart()}
+ </Panel>
+ <PanelResizeHandle className='resize-handler'/>
+ <Panel minSize={10} defaultSize={30}>
+ {props.mainRightPanel || <MainPropertiesPanel/>}
+ </Panel>
+ </PanelGroup>
+ : <PanelGroup direction="horizontal" style={{backgroundColor: 'white'}}>
+ {getMainPart()}
+ </PanelGroup>
)
}
\ No newline at end of file
diff --git a/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx b/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
index 4fb029e5..c2b193ea 100644
--- a/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/beans/BeansDesigner.tsx
@@ -16,11 +16,7 @@
*/
import React, {useEffect} from 'react';
import {
- Button,
- Drawer,
- DrawerContent,
- DrawerContentBody,
- DrawerPanelContent, Flex, FlexItem, Gallery, GalleryItem,
+ Button, Flex, FlexItem, Gallery, GalleryItem,
Modal,
PageSection,
} from '@patternfly/react-core';
@@ -34,7 +30,6 @@ import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
import {BeanCard} from "./BeanCard";
import {useDesignerStore, useIntegrationStore} from "../DesignerStore";
import {shallow} from "zustand/shallow";
-import {DslProperties} from "../property/DslProperties";
export function BeansDesigner() {
@@ -100,55 +95,37 @@ export function BeansDesigner() {
setSelectedStep(bean);
}
- function getPropertiesPanel() {
- return (
- <DrawerPanelContent isResizable
- hasNoBorder
- defaultSize={'800px'}
- maxSize={'800px'}
- minSize={'400px'}>
- <DslProperties designerType={'beans'}/>
- </DrawerPanelContent>
- )
- }
-
const beans = CamelUi.getBeans(integration);
return (
<PageSection className="bean-designer" isFilled padding={{default: 'noPadding'}}>
- <Drawer isExpanded isInline>
- <DrawerContent panelContent={getPropertiesPanel()}>
- <DrawerContentBody>
- <Gallery className="gallery"
- hasGutter
- maxWidths={{
- default: '100%',
- }}
- >
- {beans?.map((bean, index) => (
- <GalleryItem key={bean.uuid + index}>
- <BeanCard bean={bean}
- selectedStep={selectedStep}
- selectElement={selectBean}
- deleteElement={onShowDeleteConfirmation}
- />
- </GalleryItem>
- ))}
- <GalleryItem>
- <Flex direction={{default: "row"}} justifyContent={{default: "justifyContentCenter"}}>
- <FlexItem>
- <Button
- variant={beans?.length === 0 ? "primary" : "secondary"}
- data-click="ADD_REST"
- icon={<PlusIcon/>}
- onClick={e => createBean()}>Create bean
- </Button>
- </FlexItem>
- </Flex>
- </GalleryItem>
- </Gallery>
- </DrawerContentBody>
- </DrawerContent>
- </Drawer>
+ <Gallery className="gallery"
+ hasGutter
+ maxWidths={{
+ default: '100%',
+ }}
+ >
+ {beans?.map((bean, index) => (
+ <GalleryItem key={bean.uuid + index}>
+ <BeanCard bean={bean}
+ selectedStep={selectedStep}
+ selectElement={selectBean}
+ deleteElement={onShowDeleteConfirmation}
+ />
+ </GalleryItem>
+ ))}
+ <GalleryItem>
+ <Flex direction={{default: "row"}} justifyContent={{default: "justifyContentCenter"}}>
+ <FlexItem>
+ <Button
+ variant={beans?.length === 0 ? "primary" : "secondary"}
+ data-click="ADD_REST"
+ icon={<PlusIcon/>}
+ onClick={e => createBean()}>Create bean
+ </Button>
+ </FlexItem>
+ </Flex>
+ </GalleryItem>
+ </Gallery>
{getDeleteConfirmation()}
</PageSection>
)
diff --git a/karavan-app/src/main/webui/src/designer/icons/ComponentIcons.tsx b/karavan-app/src/main/webui/src/designer/icons/ComponentIcons.tsx
index c7f9c3ea..a4bd3898 100644
--- a/karavan-app/src/main/webui/src/designer/icons/ComponentIcons.tsx
+++ b/karavan-app/src/main/webui/src/designer/icons/ComponentIcons.tsx
@@ -22,6 +22,7 @@ export function SalesforceIcon() {
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
viewBox="0 0 273 191"
+ width="32px" height="32px"
className="icon"
>
<defs>
@@ -47,7 +48,7 @@ export function SalesforceIcon() {
}
export function SlackIcon() {
return (
- <svg xmlns="http://www.w3.org/2000/svg" width={127} height={127} className="icon">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127 127" width={32} height={32} className="icon">
<g fill="none">
<path
fill="#E01E5A"
diff --git a/karavan-app/src/main/webui/src/designer/kamelet/KameletDesigner.tsx b/karavan-app/src/main/webui/src/designer/kamelet/KameletDesigner.tsx
index 5bf69f60..0e76f808 100644
--- a/karavan-app/src/main/webui/src/designer/kamelet/KameletDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/kamelet/KameletDesigner.tsx
@@ -16,113 +16,22 @@
*/
import React from 'react';
import {
- Button,
- Drawer,
- DrawerContent,
- DrawerContentBody,
- DrawerPanelContent,
- Modal,
PageSection,
} from '@patternfly/react-core';
import '../karavan.css';
import './kamelet.css';
-import {BeanFactoryDefinition} from "karavan-core/lib/model/CamelDefinition";
-import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt";
-import {CamelUtil} from "karavan-core/lib/api/CamelUtil";
-import {useDesignerStore, useIntegrationStore} from "../DesignerStore";
-import {shallow} from "zustand/shallow";
import {KameletAnnotationsPanel} from "./KameletAnnotationsPanel";
import {KameletDefinitionsPanel} from "./KameletDefinitionsPanel";
-import {KameletProperties} from "./KameletProperties";
export function KameletDesigner() {
- const [integration, setIntegration] = useIntegrationStore((s) => [s.integration, s.setIntegration], shallow)
- const [dark, selectedStep, showDeleteConfirmation, setShowDeleteConfirmation, setSelectedStep] = useDesignerStore((s) =>
- [s.dark, s.selectedStep, s.showDeleteConfirmation, s.setShowDeleteConfirmation, s.setSelectedStep], shallow)
-
-
- function onShowDeleteConfirmation(bean: BeanFactoryDefinition) {
- setSelectedStep(bean);
- setShowDeleteConfirmation(true);
- }
-
- function deleteBean() {
- const i = CamelDefinitionApiExt.deleteBeanFromIntegration(integration, selectedStep as BeanFactoryDefinition);
- setIntegration(i, false);
- setShowDeleteConfirmation(false);
- setSelectedStep(undefined);
- }
-
- function changeBean(bean: BeanFactoryDefinition) {
- const clone = CamelUtil.cloneIntegration(integration);
- const i = CamelDefinitionApiExt.addBeanToIntegration(clone, bean);
- setIntegration(i, false);
- setSelectedStep(bean);
- }
-
- function getDeleteConfirmation() {
- return (<Modal
- className="modal-delete"
- title="Confirmation"
- isOpen={showDeleteConfirmation}
- onClose={() => setShowDeleteConfirmation(false)}
- actions={[
- <Button key="confirm" variant="primary" onClick={e => deleteBean()}>Delete</Button>,
- <Button key="cancel" variant="link"
- onClick={e => setShowDeleteConfirmation(false)}>Cancel</Button>
- ]}
- onEscapePress={e => setShowDeleteConfirmation(false)}>
- <div>
- Delete bean from integration?
- </div>
- </Modal>)
- }
-
- function selectBean(bean?: BeanFactoryDefinition) {
- setSelectedStep(bean);
- }
-
- function unselectBean(evt: React.MouseEvent<HTMLDivElement, MouseEvent>) {
- if ((evt.target as any).dataset.click === 'BEANS') {
- evt.stopPropagation()
- setSelectedStep(undefined);
- }
- };
-
- function createBean() {
- changeBean(new BeanFactoryDefinition());
- }
-
- function getPropertiesPanel() {
- return (
- <DrawerPanelContent isResizable
- hasNoBorder
- defaultSize={'400px'}
- maxSize={'800px'}
- minSize={'400px'}>
- <KameletProperties integration={integration}
- dark={dark}
- onChange={changeBean}
- onClone={changeBean}/>
- </DrawerPanelContent>
- )
- }
-
return (
<PageSection className="kamelet-designer" isFilled padding={{default: 'noPadding'}}>
- <Drawer isExpanded isInline>
- <DrawerContent panelContent={getPropertiesPanel()}>
- <DrawerContentBody>
- <PageSection className="main">
- <KameletAnnotationsPanel/>
- <div style={{height:"20px"}}/>
- <KameletDefinitionsPanel/>
- </PageSection>
- </DrawerContentBody>
- </DrawerContent>
- </Drawer>
- {getDeleteConfirmation()}
+ <PageSection className="main">
+ <KameletAnnotationsPanel/>
+ <div style={{height:"20px"}}/>
+ <KameletDefinitionsPanel/>
+ </PageSection>
</PageSection>
)
}
diff --git a/karavan-app/src/main/webui/src/designer/karavan.css b/karavan-app/src/main/webui/src/designer/karavan.css
index 870cb9a4..31a26584 100644
--- a/karavan-app/src/main/webui/src/designer/karavan.css
+++ b/karavan-app/src/main/webui/src/designer/karavan.css
@@ -269,7 +269,7 @@
.karavan .dsl-page .dsl-page-columns {
display: block;
height: 100%;
- background: #fafafa;
+ background: white;
padding-bottom: 66px;
}
@@ -320,12 +320,7 @@
min-width: 0px;
}
-.karavan
-.page
-.main-tabs-wrapper
-.main-tabs
-.pf-v5-c-tabs__link
-.pf-v5-c-tabs__item-icon {
+.karavan .page .main-tabs-wrapper .main-tabs .pf-v5-c-tabs__link .pf-v5-c-tabs__item-icon {
height: 24px;
margin-right: 0;
}
@@ -342,20 +337,6 @@
margin-right: 16px;
}
-/*Properties*/
-.karavan .dsl-page .properties {
- padding: 10px 10px 10px 10px;
- background: transparent;
- width: 100%;
- height: 100%;
- overflow: auto;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- margin-bottom: 20px;
- padding-bottom: 30px;
-}
-
.karavan .pf-v5-c-drawer__splitter {
width: 2px;
background-color: #fcfcfc;
diff --git a/karavan-app/src/main/webui/src/designer/property/DslProperties.css b/karavan-app/src/main/webui/src/designer/property/DslProperties.css
index 6e867105..af8212a2 100644
--- a/karavan-app/src/main/webui/src/designer/property/DslProperties.css
+++ b/karavan-app/src/main/webui/src/designer/property/DslProperties.css
@@ -14,6 +14,78 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+/*Properties*/
+
+.karavan .main-properties {
+ width: 100%;
+ height: 100%;
+ padding-bottom: 40px;
+}
+
+.karavan .main-properties .main-tabs-wrapper {
+ /*display: flex;*/
+ /*flex-direction: row;*/
+ /*justify-content: space-between;*/
+ /*align-items: center;*/
+ /*position: relative;*/
+}
+
+.karavan .main-properties .main-tabs-wrapper::before {
+ content: "";
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ border: solid;
+ border-width: 0 0 var(--pf-v5-global--BorderWidth--sm) 0;
+ border-bottom-color: var(--pf-v5-global--BorderColor--100);
+}
+
+.karavan .main-properties .main-tabs-wrapper .main-tabs .top-menu-item {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ width: 100%;
+}
+
+.karavan .main-properties .main-tabs-wrapper .main-tabs .top-menu-item .count {
+ background: var(--pf-v5-global--active-color--100);
+ color: white;
+ height: fit-content;
+ margin-top: auto;
+ margin-bottom: auto;
+ min-width: 0;
+}
+
+.karavan .main-properties .main-tabs-wrapper .main-tabs .pf-v5-c-tabs__link .pf-v5-c-tabs__item-icon {
+ height: 24px;
+ margin-right: 0;
+}
+
+.karavan .main-properties .main-tabs-wrapper .main-tabs .pf-v5-c-tabs__item-text {
+ font-weight: bold;
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-right: 6px;
+}
+
+.karavan .main-properties .main-tabs-wrapper .hide-log {
+ white-space: nowrap;
+ margin-right: 16px;
+}
+
+.karavan .properties {
+ padding: 10px 10px 10px 10px;
+ background-color: white;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ /*display: flex;*/
+ /*flex-direction: column;*/
+ /*justify-content: space-between;*/
+}
+
.karavan .properties .headers {
grid-row-gap: 10px;
row-gap: 10px;
@@ -25,6 +97,7 @@
display: flex;
flex-direction: row;
/*justify-content: space-between;*/
+ align-items: center;
gap: 10px;
}
@@ -273,7 +346,13 @@
}
.karavan .properties .value-changed {
- background-color: yellow;
+ /*box-shadow: gold 0px 0px 0px 2px;*/
+ /*border-radius: 3px;*/
+}
+
+.karavan .properties .value-changed-label {
+ background-color: #FFFF00BF;
+ transition: background-color 0.5s ease;
}
.karavan .properties .value-sensitive-invalid {
@@ -285,3 +364,4 @@
padding-right: 6px;
}
+
diff --git a/karavan-app/src/main/webui/src/designer/property/DslProperties.tsx b/karavan-app/src/main/webui/src/designer/property/DslProperties.tsx
index 52b36ef7..57ca064e 100644
--- a/karavan-app/src/main/webui/src/designer/property/DslProperties.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/DslProperties.tsx
@@ -119,6 +119,7 @@ export function DslProperties(props: Props) {
const dslName = selectedStep?.dslName;
return CamelDefinitionApiExt.getElementProperties(dslName)
.filter((p: PropertyMeta) => p.name !== 'uri') // do not show uri
+ .filter((p: PropertyMeta) => p.name !== 'id') // do not show id
// .filer((p: PropertyMeta) => (showAdvanced && p.label.includes('advanced')) || (!showAdvanced && !p.label.includes('advanced')))
.filter((p: PropertyMeta) => !p.isObject || (p.isObject && !CamelUi.dslHasSteps(p.type)) || (p.name === 'onWhen'))
.filter((p: PropertyMeta) => !(dslName === 'RestDefinition' && ['get', 'post', 'put', 'patch', 'delete', 'head'].includes(p.name)))
diff --git a/karavan-app/src/main/webui/src/designer/property/MainPropertiesPanel.tsx b/karavan-app/src/main/webui/src/designer/property/MainPropertiesPanel.tsx
new file mode 100644
index 00000000..e373d92a
--- /dev/null
+++ b/karavan-app/src/main/webui/src/designer/property/MainPropertiesPanel.tsx
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import React, {useEffect, useState} from 'react';
+import {Tab, Tabs, TabTitleIcon, TabTitleText,} from '@patternfly/react-core';
+import "@patternfly/patternfly/patternfly.css";
+import './DslProperties.css';
+import {DslProperties} from "./DslProperties";
+import {getDesignerIcon} from "../icons/KaravanIcons";
+import {useDesignerStore} from "../DesignerStore";
+import {shallow} from "zustand/shallow";
+
+export function MainPropertiesPanel() {
+
+ const [tab] = useDesignerStore((s) => [s.tab], shallow)
+
+ const [lastStatus, setLastStatus] = useState<boolean>(false);
+ const [activeTabKey, setActiveTabKey] = React.useState<string | number>();
+ const handleTabClick = (event: React.MouseEvent<any> | React.KeyboardEvent | MouseEvent, tabIndex: string | number) => {
+ setActiveTabKey(tabIndex);
+ };
+
+ useEffect(() => {
+ if (!lastStatus) {
+ setActiveTabKey('properties');
+ setLastStatus(true);
+ }
+ }, [])
+
+ function getTab(title: string, icon: string, error: boolean = false) {
+ const color = error ? "red" : "initial";
+ return (
+ <div className="top-menu-item" style={{color: color}}>
+ <TabTitleIcon>{getDesignerIcon(icon)}</TabTitleIcon>
+ <TabTitleText>{title}</TabTitleText>
+ </div>
+ )
+ }
+
+ function getPropertiesPanelTabs() {
+ return (
+ <div className={"main-tabs-wrapper"}>
+ <Tabs className="main-tabs"
+ activeKey={activeTabKey}
+ onSelect={handleTabClick}
+ isFilled
+ aria-label="PropertyTypes"
+ role="proeprty-type"
+ >
+ <Tab eventKey={'properties'} title={getTab('Properties', 'properties')} aria-label="Properties"/>
+ </Tabs>
+ </div>
+ )
+ }
+
+ function getPropertiesPanel() {
+ if (tab === "routes") {
+ return <DslProperties designerType={"routes"}/>
+ } else if (tab === "rest") {
+ return <DslProperties designerType={"rest"}/>
+ } else if (tab === "beans") {
+ return <DslProperties designerType={"beans"}/>
+ } else {
+ return <></>
+ }
+ }
+
+ return (
+ <div className='main-properties'>
+ {getPropertiesPanelTabs()}
+ {activeTabKey === 'properties' && getPropertiesPanel() }
+ </div>
+ )
+}
diff --git a/karavan-app/src/main/webui/src/designer/property/PropertiesHeader.tsx b/karavan-app/src/main/webui/src/designer/property/PropertiesHeader.tsx
index ac7a3b3d..4e99422c 100644
--- a/karavan-app/src/main/webui/src/designer/property/PropertiesHeader.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/PropertiesHeader.tsx
@@ -25,12 +25,11 @@ import {
MenuToggle,
DropdownList,
DropdownItem, Flex, Popover, FlexItem, Badge, ClipboardCopy,
- Switch, Tooltip,
+ Switch, Tooltip, Label, Button,
} from '@patternfly/react-core';
-import '../karavan.css';
import './DslProperties.css';
import "@patternfly/patternfly/patternfly.css";
-import {CamelUi} from "../utils/CamelUi";
+import {CamelUi, RouteToCreate} from "../utils/CamelUi";
import {useDesignerStore} from "../DesignerStore";
import {shallow} from "zustand/shallow";
import {usePropertiesHook} from "./usePropertiesHook";
@@ -47,7 +46,7 @@ interface Props {
export function PropertiesHeader(props: Props) {
- const {saveAsRoute, convertStep} = usePropertiesHook(props.designerType);
+ const {saveAsRoute, convertStep, onPropertyChange} = usePropertiesHook(props.designerType);
const {openSelectorToReplaceFrom} = useRouteDesignerHook();
const [selectedStep, dark] = useDesignerStore((s) => [s.selectedStep, s.dark], shallow)
@@ -299,10 +298,23 @@ export function PropertiesHeader(props: Props) {
)
}
+ function getIdInput() {
+ return (
+ (selectedStep as any)?.id !== undefined
+ ? <Label isEditable color='blue' isCompact onEditComplete={(event, newText) => onPropertyChange("id", newText)}>
+ {(selectedStep as any)?.id || ''}
+ </Label>
+ : <Button variant="link" onClick={event => onPropertyChange("id", "rc-" + Math.floor(1000 + Math.random() * 9000).toString())}>
+ Add Id
+ </Button>
+ )
+ }
+
return (
<div className="headers">
<div className="top">
<Title headingLevel="h1" size="md">{title}</Title>
+ {getIdInput()}
{getHeaderMenu()}
{isStepComponent && getComponentStepTypeSwitch()}
</div>
diff --git a/karavan-app/src/main/webui/src/designer/property/property/ComponentPropertyField.tsx b/karavan-app/src/main/webui/src/designer/property/property/ComponentPropertyField.tsx
index f6227cc1..48f2308e 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/ComponentPropertyField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/ComponentPropertyField.tsx
@@ -123,6 +123,7 @@ export function ComponentPropertyField(props: Props) {
}
return (
<Select
+ className={valueChangedClassName}
id={id} name={id}
variant={SelectVariant.typeahead}
aria-label={property.name}
@@ -175,7 +176,7 @@ export function ComponentPropertyField(props: Props) {
selectOptions.push(...uris.map((value: string) =>
<SelectOption key={value} value={value ? value.trim() : value}/>));
}
- return <InputGroup id={id} name={id}>
+ return <InputGroup id={id} name={id} className={valueChangedClassName}>
<InputGroupItem isFill>
<Select
id={id} name={id}
@@ -254,7 +255,7 @@ export function ComponentPropertyField(props: Props) {
const inInfrastructure = InfrastructureAPI.infrastructure !== 'local';
const noInfraSelectorButton = ["uri", "id", "description", "group"].includes(property.name);
const icon = InfrastructureAPI.infrastructure === 'kubernetes' ? KubernetesIcon("infra-button") : <DockerIcon/>
- return <InputGroup>
+ return <InputGroup className={valueChangedClassName}>
{inInfrastructure && !showEditor && !noInfraSelectorButton &&
<Tooltip position="bottom-end"
content={"Select from " + capitalize((InfrastructureAPI.infrastructure))}>
@@ -310,7 +311,7 @@ export function ComponentPropertyField(props: Props) {
function getSpecialStringInput(property: ComponentProperty) {
return (
- <InputGroup>
+ <InputGroup className={valueChangedClassName}>
<InputGroupItem isFill>
<TextInput
className="text-field" isRequired
@@ -346,6 +347,7 @@ export function ComponentPropertyField(props: Props) {
}
return (
<Select
+ className={valueChangedClassName}
id={id} name={id}
variant={SelectVariant.single}
aria-label={property.name}
@@ -368,7 +370,7 @@ export function ComponentPropertyField(props: Props) {
const isDisabled = textValue?.toString().includes("{") || textValue?.toString().includes("}")
const isChecked = textValue !== undefined ? Boolean(textValue) : (property.defaultValue !== undefined && ['true', true].includes(property.defaultValue))
return (
- <TextInputGroup className="input-group">
+ <TextInputGroup className={"input-group " + valueChangedClassName}>
<InputGroupItem>
<Switch
id={id} name={id}
@@ -411,7 +413,7 @@ export function ComponentPropertyField(props: Props) {
function getLabel(property: ComponentProperty, value: any) {
- const labelClassName = PropertyUtil.hasComponentPropertyValueChanged(property, value) ? 'value-changed' : 'transparent';
+ const labelClassName = PropertyUtil.hasComponentPropertyValueChanged(property, value) ? 'value-changed-label' : '';
return (
<div style={{display: "flex", flexDirection: 'row', alignItems: 'center', gap: '3px'}}>
<Text className={labelClassName}>{property.displayName}</Text>
@@ -436,6 +438,7 @@ export function ComponentPropertyField(props: Props) {
const property: ComponentProperty = props.property;
const value = props.value;
const validated = (property.secret && !isSensitiveFieldValid(value)) ? ValidatedOptions.error : ValidatedOptions.default;
+ const valueChangedClassName = PropertyUtil.hasComponentPropertyValueChanged(property, value) ? 'value-changed' : '';
return (
<FormGroup
key={id}
diff --git a/karavan-app/src/main/webui/src/designer/property/property/DataFormatField.tsx b/karavan-app/src/main/webui/src/designer/property/property/DataFormatField.tsx
index 8e0801f0..47fb3a69 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/DataFormatField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/DataFormatField.tsx
@@ -151,6 +151,7 @@ export function DataFormatField(props: Props) {
<span className="pf-v5-c-form__label-required" aria-hidden="true"> *</span>
</label>
<Select
+ // className='value-changed'
variant={SelectVariant.typeahead}
aria-label={"dataFormat"}
onToggle={() => {
diff --git a/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx b/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
index 18090154..3aa4dfa0 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
@@ -41,7 +41,7 @@ import {
ValidatedOptions,
FormHelperText,
HelperText,
- HelperTextItem
+ HelperTextItem, Label
} from '@patternfly/react-core';
import {
Select,
@@ -220,7 +220,7 @@ export function DslPropertyField(props: Props) {
}
function getLabel(property: PropertyMeta, value: any, isKamelet: boolean) {
- const labelClassName = PropertyUtil.hasDslPropertyValueChanged(property, value) ? 'value-changed' : '';
+ const labelClassName = PropertyUtil.hasDslPropertyValueChanged(property, value) ? 'value-changed-label' : '';
if (!isMultiValueField(property) && property.isObject && !property.isArray && !["ExpressionDefinition"].includes(property.type)) {
const tooltip = value ? "Delete " + property.name : "Add " + property.name;
const className = value ? "change-button delete-button" : "change-button add-button";
@@ -298,7 +298,7 @@ export function DslPropertyField(props: Props) {
}
function getVariableInput(property: PropertyMeta) {
- return <InputGroup>
+ return <InputGroup className={valueChangedClassName}>
<InputGroupItem>
<ToggleGroup aria-label="Variable type">
<ToggleGroupItem text="global:" key='global' buttonId={"global-variable-" + property.name}
@@ -363,7 +363,7 @@ export function DslPropertyField(props: Props) {
function getSpecialStringInput(property: PropertyMeta) {
return (
- <InputGroup>
+ <InputGroup className={valueChangedClassName}>
<InputGroupItem isFill>
<TextInput
ref={ref}
@@ -408,7 +408,7 @@ export function DslPropertyField(props: Props) {
const isNumber = ['integer', 'number', 'duration'].includes(property.type);
const uriReadOnly = isUriReadOnly(property);
const showEditorButton = !uriReadOnly && !isNumber && !property.secret && !['id', 'description'].includes(property.name);
- return <InputGroup>
+ return <InputGroup className={valueChangedClassName}>
{inInfrastructure && !showEditor && !noInfraSelectorButton &&
<InputGroupItem>
<Tooltip position="bottom-end"
@@ -516,7 +516,7 @@ export function DslPropertyField(props: Props) {
})
}
return (
- <InputGroup>
+ <InputGroup className={valueChangedClassName}>
<InputGroupItem isFill>
<SelectField
id={property.name}
@@ -556,7 +556,7 @@ export function DslPropertyField(props: Props) {
function getTextArea(property: PropertyMeta, value: any) {
const {dslLanguage} = props;
return (
- <InputGroup>
+ <InputGroup className={valueChangedClassName}>
<InputGroupItem isFill>
<TextArea
className="text-field" isRequired
@@ -628,7 +628,7 @@ export function DslPropertyField(props: Props) {
isChecked = property.defaultValue === 'true';
}
return (
- <TextInputGroup className="input-group">
+ <TextInputGroup className={"input-group " + valueChangedClassName}>
<InputGroupItem>
<Switch
isDisabled={isDisabled}
@@ -681,6 +681,7 @@ export function DslPropertyField(props: Props) {
}
return (
<Select
+ className={valueChangedClassName}
variant={SelectVariant.single}
aria-label={property.name}
onToggle={(_event, isExpanded) => {
@@ -706,6 +707,7 @@ export function DslPropertyField(props: Props) {
}
return (
<Select
+ className={valueChangedClassName}
variant={SelectVariant.single}
aria-label={property.name}
onToggle={(_event, isExpanded) => {
@@ -739,6 +741,7 @@ export function DslPropertyField(props: Props) {
function getMediaTypeSelect(property: PropertyMeta, value: any) {
return (
<Select
+ className={valueChangedClassName}
placeholderText="Select Media Type"
variant={SelectVariant.typeahead}
aria-label={property.name}
@@ -793,7 +796,7 @@ export function DslPropertyField(props: Props) {
<SelectOption key={value} value={value.trim()}/>));
}
return (
- <InputGroup id={property.name} name={property.name}>
+ <InputGroup className={valueChangedClassName} id={property.name} name={property.name}>
<InputGroupItem isFill>
<Select
placeholderText="Select or type an URI"
@@ -807,6 +810,7 @@ export function DslPropertyField(props: Props) {
propertyChanged(property.name, (!isPlaceholder ? value : undefined), undefined)
}}
selections={value}
+ createText=""
isOpen={isSelectOpen(property.name)}
isCreatable={true}
isInputFilterPersisted={true}
@@ -890,7 +894,7 @@ export function DslPropertyField(props: Props) {
function getMultiValueField(property: PropertyMeta, value: any) {
return (
<div>
- <TextInputGroup className="input-group">
+ <TextInputGroup className={"input-group " + valueChangedClassName}>
<TextInputGroupMain value={arrayValues.get(property.name) || ''}
onChange={(e, v) => arrayChanged(property.name, v)}
onKeyUp={e => {
@@ -1124,6 +1128,7 @@ export function DslPropertyField(props: Props) {
const beanConstructors = element?.dslName === 'BeanFactoryDefinition' && property.name === 'constructors'
const beanProperties = element?.dslName === 'BeanFactoryDefinition' && property.name === 'properties'
const isSpi = property.javaType.startsWith("org.apache.camel.spi") || property.javaType.startsWith("org.apache.camel.AggregationStrategy");
+ const valueChangedClassName = PropertyUtil.hasDslPropertyValueChanged(property, value) ? 'value-changed' : '';
return (
<>
<FormGroup
diff --git a/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx b/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
index 25793d4b..97631695 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/ExpressionField.tsx
@@ -138,13 +138,15 @@ export function ExpressionField(props: Props) {
selectOptions.push(s);
})
const exp = getExpressionProps();
+ const valueChangedClassName = PropertyUtil.hasDslPropertyValueChanged(property, value) ? 'value-changed' : '';
return (
<div>
<label className="pf-v5-c-form__label" htmlFor="expression">
- <span className="pf-v5-c-form__label-text">Language</span>
+ <span className="pf-v5-c-form__label-text value-changed-label">Language</span>
<span className="pf-v5-c-form__label-required" aria-hidden="true"> *</span>
</label>
<Select
+ className={valueChangedClassName}
variant={SelectVariant.typeahead}
aria-label={property.name}
onToggle={(_event, isExpanded) => {
diff --git a/karavan-app/src/main/webui/src/designer/property/property/KameletPropertyField.tsx b/karavan-app/src/main/webui/src/designer/property/property/KameletPropertyField.tsx
index b91289c1..08e6dd65 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/KameletPropertyField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/KameletPropertyField.tsx
@@ -141,7 +141,7 @@ export function KameletPropertyField(props: Props) {
selectOptions.push(...property.enum.map((value: string) =>
<SelectOption key={value} value={value ? value.trim() : value}/>));
}
- return <InputGroup>
+ return <InputGroup className={valueChangedClassName}>
{showInfraSelectorButton &&
<Tooltip position="bottom-end" content={"Select from " + capitalize(InfrastructureAPI.infrastructure)}>
<Button variant="control" onClick={e => openInfrastructureSelector(property.id)}>
@@ -239,13 +239,14 @@ export function KameletPropertyField(props: Props) {
}
function getLabel(property: Property, value: any) {
- const labelClassName = hasValueChanged(property, value) ? 'value-changed' : 'transparent';
+ const labelClassName = hasValueChanged(property, value) ? 'value-changed-label' : '';
return (
<div style={{display: "flex", flexDirection: 'row', alignItems: 'center', gap: '3px'}}>
<Text className={labelClassName}>{property.title}</Text>
</div>
)
}
+
function getValidationHelper() {
return (
validated !== ValidatedOptions.default
@@ -265,6 +266,7 @@ export function KameletPropertyField(props: Props) {
const validated = (property.format === 'password' && !isSensitiveFieldValid(value)) ? ValidatedOptions.error : ValidatedOptions.default;
const prefix = "parameters";
const id = prefix + "-" + property.id;
+ const valueChangedClassName = hasValueChanged(property, value) ? 'value-changed' : '';
return (
<div>
<FormGroup
@@ -293,6 +295,7 @@ export function KameletPropertyField(props: Props) {
{/*{property.type === 'string' && getStringInput()}*/}
{['string','integer', 'int', 'number'].includes(property.type) && getSpecialStringInput()}
{property.type === 'boolean' && <Switch
+ className={valueChangedClassName}
id={id} name={id}
value={value?.toString()}
aria-label={id}
diff --git a/karavan-app/src/main/webui/src/designer/rest/RestDesigner.tsx b/karavan-app/src/main/webui/src/designer/rest/RestDesigner.tsx
index d9b71d4f..3e89cf9e 100644
--- a/karavan-app/src/main/webui/src/designer/rest/RestDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/rest/RestDesigner.tsx
@@ -16,13 +16,12 @@
*/
import React, {useEffect} from 'react';
import {
- Button, Drawer, DrawerContent, DrawerContentBody, DrawerPanelContent, Flex, FlexItem, Gallery, GalleryItem, Modal,
+ Button, Flex, FlexItem, Gallery, GalleryItem, Modal,
PageSection
} from '@patternfly/react-core';
import './rest.css';
import '../karavan.css';
import {CamelElement} from "karavan-core/lib/model/IntegrationDefinition";
-import {DslProperties} from "../property/DslProperties";
import {RestCard} from "./RestCard";
import PlusIcon from "@patternfly/react-icons/dist/esm/icons/plus-icon";
import {
@@ -197,59 +196,44 @@ export function RestDesigner() {
</>)
}
-
- function getPropertiesPanel() {
- return (
- <DrawerPanelContent isResizable hasNoBorder defaultSize={'400px'} maxSize={'800px'} minSize={'100px'}>
- <DslProperties designerType={'rest'}/>
- </DrawerPanelContent>
- )
- }
-
const data = integration.spec.flows?.filter(f => f.dslName === 'RestDefinition');
const configData = integration.spec.flows?.filter(f => f.dslName === 'RestConfigurationDefinition');
const config = configData && Array.isArray(configData) ? configData[0] : undefined;
return (
<PageSection className="rest-designer" isFilled padding={{default: 'noPadding'}}>
- <Drawer isExpanded isInline>
- <DrawerContent panelContent={getPropertiesPanel()}>
- <DrawerContentBody>
- <Gallery className="gallery"
- hasGutter
- maxWidths={{
- default: '100%',
- }}
- >
- {config && getRestConfigurationCard(config)}
- {data && getRestCards(data)}
- <GalleryItem>
- <Flex direction={{default: "row"}} justifyContent={{default: "justifyContentCenter"}}>
- <FlexItem>
- <Button
- variant={data?.length === 0 ? "primary" : "secondary"}
- data-click="ADD_REST"
- icon={<PlusIcon/>}
- onClick={e => createRest()}>Create service
- </Button>
- </FlexItem>
- <FlexItem>
- {config === undefined &&
- <GalleryItem>
- <Button
- variant="secondary"
- data-click="ADD_REST_REST_CONFIG"
- icon={<PlusIcon/>}
- onClick={e => createRestConfiguration()}>Create configuration
- </Button>
- </GalleryItem>
- }
- </FlexItem>
- </Flex>
- </GalleryItem>
- </Gallery>
- </DrawerContentBody>
- </DrawerContent>
- </Drawer>
+ <Gallery className="gallery"
+ hasGutter
+ maxWidths={{
+ default: '100%',
+ }}
+ >
+ {config && getRestConfigurationCard(config)}
+ {data && getRestCards(data)}
+ <GalleryItem>
+ <Flex direction={{default: "row"}} justifyContent={{default: "justifyContentCenter"}}>
+ <FlexItem>
+ <Button
+ variant={data?.length === 0 ? "primary" : "secondary"}
+ data-click="ADD_REST"
+ icon={<PlusIcon/>}
+ onClick={e => createRest()}>Create service
+ </Button>
+ </FlexItem>
+ <FlexItem>
+ {config === undefined &&
+ <GalleryItem>
+ <Button
+ variant="secondary"
+ data-click="ADD_REST_REST_CONFIG"
+ icon={<PlusIcon/>}
+ onClick={e => createRestConfiguration()}>Create configuration
+ </Button>
+ </GalleryItem>
+ }
+ </FlexItem>
+ </Flex>
+ </GalleryItem>
+ </Gallery>
{getSelectorModal()}
{getDeleteConfirmation()}
</PageSection>
diff --git a/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx b/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
index 6898bd85..8ec4f91c 100644
--- a/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/RouteDesigner.tsx
@@ -16,15 +16,10 @@
*/
import React, {useCallback, useEffect, useRef} from 'react';
import {
- Drawer,
- DrawerPanelContent,
- DrawerContent,
- DrawerContentBody,
- Button
+ Button,
} from '@patternfly/react-core';
import '../karavan.css';
import {DslSelector} from "../selector/DslSelector";
-import {DslProperties} from "../property/DslProperties";
import {DslConnections} from "./DslConnections";
import PlusIcon from "@patternfly/react-icons/dist/esm/icons/plus-icon";
import {DslElement} from "./element/DslElement";
@@ -34,7 +29,6 @@ import {useConnectionsStore, useDesignerStore, useIntegrationStore, useSelectorS
import {shallow} from "zustand/shallow";
import useResizeObserver from "./useResizeObserver";
import {Command, EventBus} from "../utils/EventBus";
-import useMutationsObserver from "./useDrawerMutationsObserver";
import {DeleteConfirmation} from "./DeleteConfirmation";
import {DslElementMoveModal} from "./element/DslElementMoveModal";
import {RouteTemplateElement} from "./element/RouteTemplateElement";
@@ -45,14 +39,16 @@ export function RouteDesigner() {
isSourceKamelet, isActionKamelet, isKamelet, isSinkKamelet, createRouteTemplate} = useRouteDesignerHook();
const [integration] = useIntegrationStore((state) => [state.integration], shallow)
- const [showDeleteConfirmation, setPosition, width, height, top, left, showMoveConfirmation, setShowMoveConfirmation] =
+ const [showDeleteConfirmation, setPosition, width, height, top, left, showMoveConfirmation, setShowMoveConfirmation, passedIds, selectedStep, isDebugging] =
useDesignerStore((s) =>
- [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.showMoveConfirmation, s.setShowMoveConfirmation], shallow)
+ [s.showDeleteConfirmation, s.setPosition, s.width, s.height, s.top, s.left, s.showMoveConfirmation, s.setShowMoveConfirmation, s.passedNodeIds, s.selectedStep, s.isDebugging], shallow)
const [showSelector] = useSelectorStore((s) => [s.showSelector], shallow)
const [clearSteps] = useConnectionsStore((s) => [s.clearSteps], shallow)
+ const [key, setKey] = React.useState<string | number>();
+
const onChangeGraphSize = useCallback((target: HTMLDivElement) => {
changeGraphSize();
}, [])
@@ -68,19 +64,28 @@ export function RouteDesigner() {
}
const firstRef = useResizeObserver(onChangeGraphSize);
- const secondRef = useMutationsObserver(onChangeGraphSize);
const printerRef = useRef<HTMLDivElement | null>(null);
const flowRef = useRef<HTMLDivElement | null>(null);
+ useEffect(() => {
+ if (selectedStep === undefined) {
+ setKey(Math.random.toString())
+ }
+ }, []);
+
useEffect(()=> {
const interval = setInterval(() => {
changeGraphSize();
}, 300);
const commandSub = EventBus.onCommand()?.subscribe((command: Command) => onCommand(command, printerRef));
- if (flowRef.current === null) {
- clearSteps();
- } else {
- changeGraphSize();
+ try {
+ if (flowRef.current === null) {
+ clearSteps();
+ } else {
+ changeGraphSize();
+ }
+ } catch (error) {
+ console.error(error);
}
return ()=> {
clearInterval(interval)
@@ -88,20 +93,6 @@ export function RouteDesigner() {
}
}, [showSelector, integration])
- function getPropertiesPanel() {
- return (
- <DrawerPanelContent style={{transform: "initial"}}
- isResizable
- hasNoBorder
- defaultSize={'400px'}
- maxSize={'800px'}
- minSize={'400px'}
- >
- <DslProperties designerType={'routes'}/>
- </DrawerPanelContent>
- )
- }
-
function getGraphButtons() {
const routes = CamelUi.getRoutes(integration);
const showNewRoute = (isKamelet() && routes.length === 0) || !isKamelet();
@@ -188,20 +179,16 @@ export function RouteDesigner() {
parent={undefined}/>
)
})}
- {getGraphButtons()}
+ {!isDebugging && getGraphButtons()}
</div>
</div>)
}
const hasFlows = integration?.spec?.flows !== undefined;
return (
- <div className="dsl-page" ref={firstRef}>
- <div className="dsl-page-columns" ref={secondRef}>
- <Drawer isExpanded isInline>
- <DrawerContent panelContent={getPropertiesPanel()}>
- <DrawerContentBody>{hasFlows && getGraph()}</DrawerContentBody>
- </DrawerContent>
- </Drawer>
+ <div className="dsl-page" ref={firstRef} key={key}>
+ <div className="dsl-page-columns">
+ {hasFlows && getGraph()}
</div>
{showSelector && <DslSelector/>}
{showDeleteConfirmation && <DeleteConfirmation/>}
diff --git a/karavan-app/src/main/webui/src/designer/route/element/DslElement.css b/karavan-app/src/main/webui/src/designer/route/element/DslElement.css
index 4705b76a..791acdb3 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElement.css
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElement.css
@@ -161,10 +161,34 @@
width: 30px;
height: 30px;
}
+
.karavan .step-element .header-icon-diamond .icon {
transform: rotate(-45deg);
}
+.karavan .step-element .element-border-passed {
+ border-width: 2px;
+ background-color: var(--pf-v5-global--palette--green-100);
+ border-color: var(--pf-v5-global--palette--green-400);
+}
+
+.karavan .step-element .header-icon-border-passed {
+ border-width: 2px;
+ background-color: var(--pf-v5-global--palette--green-100);
+ border-color: var(--pf-v5-global--palette--green-400);
+}
+
+.karavan .step-element .header-icon-border-current {
+ border-width: 2px;
+ background-color: var(--pf-v5-global--palette--gold-100);
+ border-color: var(--pf-v5-global--palette--gold-400);
+}
+
+.karavan .step-element .header-icon-border-failed {
+ border-width: 2px;
+ background-color: var(--pf-v5-global--palette--red-100);
+ border-color: var(--pf-v5-global--palette--red-200);
+}
.karavan .step-element .route-icons {
position: absolute;
diff --git a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
index cf5e4200..9a351d1d 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElement.tsx
@@ -15,7 +15,6 @@
* limitations under the License.
*/
import React, {CSSProperties, useState} from 'react';
-import {Tooltip,} from '@patternfly/react-core';
import '../../karavan.css';
import './DslElement.css';
import {CamelElement} from "karavan-core/lib/model/IntegrationDefinition";
@@ -53,9 +52,9 @@ export function DslElement(props: Props) {
const [integration] = useIntegrationStore((s) => [s.integration], shallow)
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements, passedRouteId, failedRouteId, isDebugging] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements, s.passedRouteId, s.failedRouteId, s.isDebugging], shallow)
const [isDragging, setIsDragging] = useState<boolean>(false);
const [isDraggedOver, setIsDraggedOver] = useState<boolean>(false);
@@ -65,13 +64,13 @@ export function DslElement(props: Props) {
if (isInsert && props.parent) {
openSelector(props.parent.uuid, props.parent.dslName, showSteps, props.position);
} else {
- openSelector(props.step.uuid, props.step.dslName, showSteps);
+ openSelector(step.uuid, step.dslName, showSteps);
}
}
function onSelectElement(evt: React.MouseEvent) {
evt.stopPropagation();
- selectElement(props.step);
+ selectElement(step);
}
function dragElement(event: React.DragEvent<HTMLDivElement>, element: CamelElement) {
@@ -91,11 +90,10 @@ export function DslElement(props: Props) {
}
function isElementSelected(): boolean {
- return selectedUuids.includes(props.step.uuid);
+ return selectedUuids.includes(step.uuid);
}
function hasBorder(): boolean {
- const step = props.step;
if (['FilterDefinition', 'RouteDefinition', 'RouteConfigurationDefinition'].includes(step.dslName)) {
return true;
}
@@ -108,25 +106,24 @@ export function DslElement(props: Props) {
].includes(step.dslName)) {
return false;
}
- return props.step?.hasSteps();
+ return step?.hasSteps();
}
function isNotDraggable(): boolean {
- return ['FromDefinition', 'RouteConfigurationDefinition', 'RouteDefinition', 'WhenDefinition', 'OtherwiseDefinition'].includes(props.step.dslName);
+ return ['FromDefinition', 'RouteConfigurationDefinition', 'RouteDefinition', 'WhenDefinition', 'OtherwiseDefinition'].includes(step.dslName);
}
function isAddStepButtonLeft(): boolean {
return ['MulticastDefinition', 'LoadBalanceDefinition']
- .includes(props.step.dslName);
+ .includes(step.dslName);
}
function isHorizontal(): boolean {
- return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName);
+ return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(step.dslName);
}
function isInStepWithChildren() {
- const step: CamelElement = props.step;
const children = CamelDefinitionApiExt.getElementChildrenDefinition(step.dslName);
return children.filter((c: ChildElement) => c.name === 'steps' || c.multiple).length > 0 && props.inSteps;
}
@@ -170,7 +167,6 @@ export function DslElement(props: Props) {
}
function getChildElements() {
- const step: CamelElement = props.step;
let children: ChildElement[] = CamelDefinitionApiExt.getElementChildrenDefinition(step.dslName);
const notOnlySteps = children.filter(c => c.name === 'steps').length === 1
&& children.filter(c => c.multiple && c.name !== 'steps').length > 0;
@@ -194,7 +190,6 @@ export function DslElement(props: Props) {
}
function getChildDslElements(child: ChildElement, index: number, notOnlySteps: boolean) {
- const step = props.step;
const children: CamelElement[] = CamelDefinitionApiExt.getElementChildren(step, child);
if (children.length > 0) {
return (
@@ -241,7 +236,7 @@ export function DslElement(props: Props) {
function getAddStepButton() {
const {step} = props;
const hideAddButton = step.dslName === 'StepDefinition' && !CamelDisplayUtil.isStepDefinitionExpanded(integration, step.uuid, selectedUuids.at(0));
- if (hideAddButton) return (<></>)
+ if (hideAddButton || isDebugging) return (<></>)
else return (
<button type="button"
aria-label="Add"
@@ -252,26 +247,47 @@ export function DslElement(props: Props) {
)
}
- const element: CamelElement = props.step;
+ function getBorderColor() {
+ if (step.dslName === 'RouteDefinition' && (step as any).id === failedRouteId) {
+ return 'var(--pf-v5-global--danger-color--100)';
+ } else if (step.dslName === 'RouteDefinition' && (step as any).id === passedRouteId) {
+ return "var(--pf-v5-global--palette--green-400)";
+ } else {
+ return isElementSelected() ? "var(--step-border-color-selected)" : "var(--step-border-color)";
+ }
+ }
+
+ function getBorderWidth() {
+ if (step.dslName === 'RouteDefinition' && (step as any).id === passedRouteId) {
+ return "2px";
+ } else if (step.dslName === 'RouteDefinition' && (step as any).id === failedRouteId) {
+ return "2px";
+ } else {
+ return '1px';
+ }
+ }
+
+ const step: CamelElement = props.step;
const className = "step-element"
- + (!props.step.showChildren ? " hidden-step" : "")
- + ((element as any).disabled ? " disabled " : "");
+ + (!step.showChildren ? " hidden-step" : "")
+ + ((step as any).disabled ? " disabled " : "");
return (
- <div key={"root" + element.uuid}
+ <div key={"root" + step.uuid}
className={className}
ref={el => sendPosition(el)}
style={{
+ borderWidth: getBorderWidth(),
borderStyle: hasBorder() ? "dashed" : "none",
- borderColor: isElementSelected() ? "var(--step-border-color-selected)" : "var(--step-border-color)",
+ borderColor: getBorderColor(),
marginTop: isInStepWithChildren() ? "16px" : "8px",
- zIndex: element.dslName === 'ToDefinition' ? 20 : 10,
+ zIndex: step.dslName === 'ToDefinition' ? 20 : 10,
boxShadow: isDraggedOver ? "0px 0px 1px 2px var(--step-border-color-selected)" : "none",
}}
onMouseOver={event => event.stopPropagation()}
onClick={event => onSelectElement(event)}
onDragStart={event => {
event.stopPropagation();
- event.dataTransfer.setData("text/plain", element.uuid);
+ event.dataTransfer.setData("text/plain", step.uuid);
(event.target as any).style.opacity = .5;
setIsDragging(true);
}}
@@ -282,14 +298,14 @@ export function DslElement(props: Props) {
onDragOver={event => {
event.preventDefault();
event.stopPropagation();
- if (element.dslName !== 'FromDefinition' && !isDragging) {
+ if (step.dslName !== 'FromDefinition' && !isDragging) {
setIsDraggedOver(true);
}
}}
onDragEnter={event => {
event.preventDefault();
event.stopPropagation();
- if (element.dslName !== 'FromDefinition') {
+ if (step.dslName !== 'FromDefinition') {
setIsDraggedOver(true);
}
}}
@@ -298,11 +314,11 @@ export function DslElement(props: Props) {
event.stopPropagation();
setIsDraggedOver(false);
}}
- onDrop={event => dragElement(event, element)}
+ onDrop={event => dragElement(event, step)}
draggable={!isNotDraggable()}
>
<DslElementHeader headerRef={headerRef}
- step={props.step}
+ step={step}
parent={props.parent}
nextStep={props.nextStep}
prevStep={props.prevStep}
diff --git a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
index aae10161..db181cff 100644
--- a/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
+++ b/karavan-app/src/main/webui/src/designer/route/element/DslElementHeader.tsx
@@ -55,9 +55,9 @@ export function DslElementHeader(props: Props) {
const [integration] = useIntegrationStore((s) => [s.integration], shallow)
- const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements] =
+ const [selectedUuids, selectedStep, showMoveConfirmation, setShowMoveConfirmation, setMoveElements, passedIds, passedRouteId, failed, failedRouteId, suspendedNodeId, isDebugging] =
useDesignerStore((s) =>
- [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements], shallow)
+ [s.selectedUuids, s.selectedStep, s.showMoveConfirmation, s.setShowMoveConfirmation, s.setMoveElements, s.passedNodeIds, s.passedRouteId, s.failed, s.failedRouteId, s.suspendedNodeId, s.isDebugging], shallow)
const step: CamelElement = props.step;
@@ -66,27 +66,27 @@ export function DslElementHeader(props: Props) {
if (isInsert && props.parent) {
openSelector(props.parent.uuid, props.parent.dslName, showSteps, props.position);
} else {
- openSelector(props.step.uuid, props.step.dslName, showSteps);
+ openSelector(step.uuid, step.dslName, showSteps);
}
}
function onDeleteElement(evt: React.MouseEvent) {
evt.stopPropagation();
- onShowDeleteConfirmation(props.step.uuid);
+ onShowDeleteConfirmation(step.uuid);
}
function isElementSelected(): boolean {
- return selectedUuids.includes(props.step.uuid);
+ return selectedUuids.includes(step.uuid);
}
function isWide(): boolean {
return ['RouteConfigurationDefinition', 'RouteTemplateDefinition', 'RouteDefinition', 'ChoiceDefinition', 'MulticastDefinition',
'LoadBalanceDefinition', 'TryDefinition', 'CircuitBreakerDefinition']
- .includes(props.step.dslName);
+ .includes(step.dslName);
}
function isHorizontal(): boolean {
- return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(props.step.dslName);
+ return ['MulticastDefinition', 'LoadBalanceDefinition'].includes(step.dslName);
}
function getChildrenInfo(step: CamelElement): [boolean, number, boolean, number, number] {
@@ -111,7 +111,7 @@ export function DslElementHeader(props: Props) {
function getHasWideChildrenElement(childrenInfo: [boolean, number, boolean, number, number]) {
const [hasStepsField, stepsChildrenCount, hasNonStepsFields, nonStepChildrenCount, childrenCount] = childrenInfo;
- if (props.step.dslName === 'SetHeadersDefinition') return false;
+ if (step.dslName === 'SetHeadersDefinition') return false;
else if (isHorizontal() && stepsChildrenCount > 1) return true;
else if (hasStepsField && stepsChildrenCount > 0 && hasNonStepsFields && nonStepChildrenCount > 0) return true;
else if (!hasStepsField && hasNonStepsFields && childrenCount > 1) return true;
@@ -123,18 +123,19 @@ export function DslElementHeader(props: Props) {
const style: CSSProperties = {
width: isWide() ? "100%" : "",
fontWeight: isElementSelected() ? "bold" : "normal",
+ borderWidth: getBorderWidth(),
+ borderColor: getBorderColor(),
};
return style;
}
function getAvailableModels() { // TODO: make static list-of-values instead
- const step: CamelElement = props.step
return CamelUi.getSelectorModelsForParent(step.dslName, false);
}
const availableModels = useMemo(
() => getAvailableModels(),
- [props.step.dslName]
+ [step.dslName]
);
function hasElements(rc: RouteConfigurationDefinition): boolean {
@@ -154,9 +155,36 @@ export function DslElementHeader(props: Props) {
} else {
classes.push('header-icon-circle');
}
+ const passed = passedIds.includes((step as any).id);
+ if (step.dslName === 'FromDefinition') {
+ }
+ if (passed) {
+ classes.push("header-icon-border-passed");
+ }
+ if (suspendedNodeId === (step as any).id) {
+ classes.push(failed ? "header-icon-border-failed" : "header-icon-border-current")
+ }
return classes.join(" ");
}
+ function getBorderColor() {
+ if (step.dslName === 'RouteDefinition' && (step as any).id === failedRouteId) {
+ return 'var(--pf-v5-global--danger-color--100)';
+ } else if (step.dslName === 'RouteDefinition' && (step as any).id === passedRouteId) {
+ return "var(--pf-v5-global--palette--green-400)";
+ } else {
+ return isElementSelected() ? "var(--step-border-color-selected)" : "var(--step-border-color)";
+ }
+ }
+
+ function getBorderWidth() {
+ if (step.dslName === 'RouteDefinition' && (step as any).id === passedRouteId) {
+ return "2px";
+ } else {
+ return '1px';
+ }
+ }
+
function getHeaderClasses(): string {
const classes: string[] = [];
if (step.dslName === 'RouteDefinition') {
@@ -182,7 +210,6 @@ export function DslElementHeader(props: Props) {
}
function getHeader() {
- const step: CamelElement = props.step;
const parent = props.parent;
const inRouteConfiguration = parent !== undefined && parent.dslName === 'RouteConfigurationDefinition';
const showAddButton = !['CatchDefinition', 'RouteTemplateDefinition', 'RouteDefinition'].includes(step.dslName) && availableModels.length > 0;
@@ -191,11 +218,11 @@ export function DslElementHeader(props: Props) {
&& !inRouteConfiguration;
const showDeleteButton = !('RouteDefinition' === step.dslName && 'RouteTemplateDefinition' === parent?.dslName);
const headerClasses = getHeaderClasses();
- const childrenInfo = getChildrenInfo(props.step) || [];
+ const childrenInfo = getChildrenInfo(step) || [];
const hasWideChildrenElement = getHasWideChildrenElement(childrenInfo)
return (
<div className={"dsl-element " + headerClasses} style={getHeaderStyle()} ref={props.headerRef}>
- {!['RouteConfigurationDefinition', 'RouteTemplateDefinition', 'RouteDefinition'].includes(props.step.dslName) &&
+ {!['RouteConfigurationDefinition', 'RouteTemplateDefinition', 'RouteDefinition'].includes(step.dslName) &&
<div
className={getHeaderIconClasses()}
style={isWide() ? {width: ""} : {}}>
@@ -220,9 +247,9 @@ export function DslElementHeader(props: Props) {
{hasWideChildrenElement && <div className="spacer"/>}
{getHeaderTextWithTooltip(step, hasWideChildrenElement)}
</div>
- {showInsertButton && getInsertElementButton()}
- {showDeleteButton && getDeleteButton()}
- {showAddButton && getAddElementButton()}
+ {!isDebugging && showInsertButton && getInsertElementButton()}
+ {!isDebugging && showDeleteButton && getDeleteButton()}
+ {!isDebugging && showAddButton && getAddElementButton()}
</div>
)
}
@@ -235,7 +262,7 @@ export function DslElementHeader(props: Props) {
} else {
let description: string = (step as any).description;
description = description !== undefined && description?.length > 32 ? description.substring(0, 32).concat("...") : description;
- return description ? description : CamelUi.getElementTitle(props.step);
+ return description ? description : CamelUi.getElementTitle(step);
}
}
@@ -269,8 +296,8 @@ export function DslElementHeader(props: Props) {
}
function getHeaderTooltip(): string | React.JSX.Element | undefined {
- if (CamelUi.isShowExpressionTooltip(props.step)) {
- const et = CamelUi.getExpressionTooltip(props.step);
+ if (CamelUi.isShowExpressionTooltip(step)) {
+ const et = CamelUi.getExpressionTooltip(step);
const exp = et[1];
return (
<div>
@@ -279,7 +306,7 @@ export function DslElementHeader(props: Props) {
</div>
)
}
- if (CamelUi.isShowUriTooltip(props.step)) return CamelUi.getUriTooltip(props.step);
+ if (CamelUi.isShowUriTooltip(step)) return CamelUi.getUriTooltip(step);
return undefined;
}
@@ -287,7 +314,7 @@ export function DslElementHeader(props: Props) {
function getAddElementButton() {
return (
<Tooltip position={"bottom"}
- content={<div>{"Add DSL element to " + CamelDisplayUtil.getTitle(props.step)}</div>}>
+ content={<div>{"Add DSL element to " + CamelDisplayUtil.getTitle(step)}</div>}>
<button
type="button"
aria-label="Add"
@@ -321,7 +348,7 @@ export function DslElementHeader(props: Props) {
}
const tooltip = getHeaderTooltip();
- if (tooltip !== undefined && !props.isDragging) {
+ if (tooltip !== undefined && !props.isDragging && !isDebugging) {
return getHeaderWithTooltip(tooltip);
}
return getHeader();
diff --git a/karavan-app/src/main/webui/src/knowledgebase/KnowledgebasePage.tsx b/karavan-app/src/main/webui/src/knowledgebase/KnowledgebasePage.tsx
index 8734dbad..a8c3a089 100644
--- a/karavan-app/src/main/webui/src/knowledgebase/KnowledgebasePage.tsx
+++ b/karavan-app/src/main/webui/src/knowledgebase/KnowledgebasePage.tsx
@@ -69,27 +69,27 @@ export const KnowledgebasePage = (props: Props) => {
return <Toolbar id="toolbar-group-types">
<ToolbarContent>
<Flex>
- {tab === 'kamelets' && <FlexItem>
- <Switch
- label="Custom only"
- isChecked={customOnly}
- onChange={(_event, checked) => setCustomOnly(checked)}
- />
- </FlexItem>}
- <FlexItem>
- <TextInput className="text-field" type="search" id="search" name="search"
- value={filter}
- onChange={(_event, value) => setFilter(value)}
- autoComplete="off"
- placeholder="Search by name"/>
- </FlexItem>
+ {tab === 'kamelets' && <FlexItem>
+ <Switch
+ label="Custom only"
+ isChecked={customOnly}
+ onChange={(_event, checked) => setCustomOnly(checked)}
+ />
+ </FlexItem>}
+ <FlexItem>
+ <TextInput className="text-field" type="search" id="search" name="search"
+ value={filter}
+ onChange={(_event, value) => setFilter(value)}
+ autoComplete="off"
+ placeholder="Search by name"/>
+ </FlexItem>
</Flex>
</ToolbarContent>
</Toolbar>
}
let kameletList: KameletModel[] = KameletApi.getKamelets().filter(kamelet =>
- kamelet.spec.definition.title.toLowerCase().includes(filter.toLowerCase()));
+ kamelet.spec.definition.title.toLowerCase().includes(filter.toLowerCase()));
if (customOnly) kameletList = kameletList.filter(k => KameletApi.getCustomKameletNames().includes(k.metadata.name));
const components = ComponentApi.getComponents().filter(c => {
diff --git a/karavan-space/package-lock.json b/karavan-space/package-lock.json
new file mode 100644
index 00000000..5e79ab3c
--- /dev/null
+++ b/karavan-space/package-lock.json
@@ -0,0 +1,7860 @@
+{
+ "name": "karavan-space",
+ "version": "4.10.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "karavan-space",
+ "version": "4.10.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@monaco-editor/react": "^4.6.0",
+ "@patternfly/patternfly": "^5.4.0",
+ "@patternfly/react-core": "^5.4.0",
+ "@patternfly/react-table": "^5.4.0",
+ "@patternfly/react-topology": "^5.4.0",
+ "@types/js-yaml": "4.0.9",
+ "@types/uuid": "9.0.8",
+ "axios": "1.7.7",
+ "html-to-image": "1.11.11",
+ "karavan-core": "file:../karavan-core",
+ "netlify-auth-providers": "^1.0.0-alpha5",
+ "octokit": "^4.0.2",
+ "react": "18.3.1",
+ "react-dom": "18.3.1",
+ "react-resizable-panels": "^2.1.7",
+ "rxjs": "7.8.1",
+ "usehooks-ts": "^3.1.0",
+ "uuid": "10.0.0",
+ "zustand": "^4.5.5"
+ },
+ "devDependencies": {
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
+ "@svgr/webpack": "^7.0.0",
+ "@types/dagre": "^0.7.52",
+ "@types/netlify-auth-providers": "^1.0.2",
+ "@types/node": "20.14.2",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
+ "@typescript-eslint/parser": "^5.62.0",
+ "@vitejs/plugin-react": "^4.3.1",
+ "eslint": "^8.39.0",
+ "monaco-editor": "0.49.0",
+ "typescript": "4.9.5",
+ "vite": "^5.4.8",
+ "vite-plugin-svgr": "^4.2.0",
+ "vite-tsconfig-paths": "^5.0.1"
+ }
+ },
+ "../karavan-core": {
+ "version": "4.10.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/js-yaml": "^4.0.9",
+ "@types/uuid": "^10.0.0",
+ "tsconfig-paths": "^4.2.0",
+ "uuid": "10.0.0"
+ },
+ "devDependencies": {
+ "@types/chai": "^4.3.16",
+ "@types/dagre": "^0.7.52",
+ "@types/mocha": "^10.0.7",
+ "@types/node": "20.14.9",
+ "chai": "^5.1.1",
+ "cross-env": "^7.0.3",
+ "fs": "^0.0.1-security",
+ "mocha": "^10.5.2",
+ "ts-node": "^10.9.2",
+ "tsc-alias": "^1.8.10",
+ "typescript": "4.9.5"
+ }
+ },
+ "../karavan-core/node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "../karavan-core/node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "../karavan-core/node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "../karavan-core/node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/@tsconfig/node10": {
+ "version": "1.0.11",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@types/chai": {
+ "version": "4.3.16",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@types/dagre": {
+ "version": "0.7.52",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@types/js-yaml": {
+ "version": "4.0.9",
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@types/mocha": {
+ "version": "10.0.7",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/@types/node": {
+ "version": "20.14.9",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "../karavan-core/node_modules/@types/uuid": {
+ "version": "10.0.0",
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/acorn": {
+ "version": "8.11.3",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "../karavan-core/node_modules/acorn-walk": {
+ "version": "8.3.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "../karavan-core/node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "../karavan-core/node_modules/anymatch": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/arg": {
+ "version": "4.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "../karavan-core/node_modules/array-union": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/assertion-error": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "../karavan-core/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "../karavan-core/node_modules/braces": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/camelcase": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/chai": {
+ "version": "5.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "../karavan-core/node_modules/chalk": {
+ "version": "4.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "../karavan-core/node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/check-error": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "../karavan-core/node_modules/chokidar": {
+ "version": "3.5.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "../karavan-core/node_modules/cliui": {
+ "version": "7.0.4",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "../karavan-core/node_modules/color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "../karavan-core/node_modules/color-name": {
+ "version": "1.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/commander": {
+ "version": "9.5.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "../karavan-core/node_modules/create-require": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/cross-env": {
+ "version": "7.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
+ "../karavan-core/node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/debug": {
+ "version": "4.3.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "../karavan-core/node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/decamelize": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/deep-eql": {
+ "version": "5.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/diff": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "../karavan-core/node_modules/dir-glob": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/escalade": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/fast-glob": {
+ "version": "3.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "../karavan-core/node_modules/fastq": {
+ "version": "1.17.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "../karavan-core/node_modules/fill-range": {
+ "version": "7.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/flat": {
+ "version": "5.0.2",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "../karavan-core/node_modules/fs": {
+ "version": "0.0.1-security",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/fsevents": {
+ "version": "2.3.3",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "../karavan-core/node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "../karavan-core/node_modules/get-func-name": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "../karavan-core/node_modules/glob": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "../karavan-core/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "../karavan-core/node_modules/globby": {
+ "version": "11.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/he": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "../karavan-core/node_modules/ignore": {
+ "version": "5.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "../karavan-core/node_modules/inflight": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "../karavan-core/node_modules/inherits": {
+ "version": "2.0.4",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "../karavan-core/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "../karavan-core/node_modules/is-number": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "../karavan-core/node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/isexe": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "../karavan-core/node_modules/json5": {
+ "version": "2.2.3",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/log-symbols": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/loupe": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
+ "../karavan-core/node_modules/make-error": {
+ "version": "1.3.6",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/merge2": {
+ "version": "1.4.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/micromatch": {
+ "version": "4.0.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "../karavan-core/node_modules/minimatch": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "../karavan-core/node_modules/minimist": {
+ "version": "1.2.8",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "../karavan-core/node_modules/mocha": {
+ "version": "10.5.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "^3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "8.1.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "../karavan-core/node_modules/ms": {
+ "version": "2.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/mylas": {
+ "version": "2.1.13",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/raouldeheer"
+ }
+ },
+ "../karavan-core/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "../karavan-core/node_modules/once": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "../karavan-core/node_modules/p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/path-exists": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/path-key": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/path-type": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/pathval": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16"
+ }
+ },
+ "../karavan-core/node_modules/picomatch": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "../karavan-core/node_modules/plimit-lit": {
+ "version": "1.6.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "queue-lit": "^1.5.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "../karavan-core/node_modules/queue-lit": {
+ "version": "1.5.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "../karavan-core/node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/randombytes": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "../karavan-core/node_modules/readdirp": {
+ "version": "3.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "../karavan-core/node_modules/require-directory": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "../karavan-core/node_modules/reusify": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "../karavan-core/node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "../karavan-core/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "../karavan-core/node_modules/shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/slash": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/string-width": {
+ "version": "4.2.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "../karavan-core/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "../karavan-core/node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "../karavan-core/node_modules/supports-color": {
+ "version": "8.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "../karavan-core/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "../karavan-core/node_modules/ts-node": {
+ "version": "10.9.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "../karavan-core/node_modules/ts-node/node_modules/diff": {
+ "version": "4.0.2",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "../karavan-core/node_modules/tsc-alias": {
+ "version": "1.8.10",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^3.5.3",
+ "commander": "^9.0.0",
+ "globby": "^11.0.4",
+ "mylas": "^2.1.9",
+ "normalize-path": "^3.0.0",
+ "plimit-lit": "^1.2.6"
+ },
+ "bin": {
+ "tsc-alias": "dist/bin/index.js"
+ }
+ },
+ "../karavan-core/node_modules/tsconfig-paths": {
+ "version": "4.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "json5": "^2.2.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/typescript": {
+ "version": "4.9.5",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "../karavan-core/node_modules/undici-types": {
+ "version": "5.26.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/uuid": {
+ "version": "10.0.0",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "../karavan-core/node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "../karavan-core/node_modules/which": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "../karavan-core/node_modules/workerpool": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "../karavan-core/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "../karavan-core/node_modules/wrappy": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "ISC"
+ },
+ "../karavan-core/node_modules/y18n": {
+ "version": "5.0.8",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "../karavan-core/node_modules/yargs": {
+ "version": "16.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "../karavan-core/node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "../karavan-core/node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "../karavan-core/node_modules/yn": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "../karavan-core/node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/highlight": "^7.24.7",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.24.7",
+ "@babel/generator": "^7.25.0",
+ "@babel/helper-compilation-targets": "^7.25.2",
+ "@babel/helper-module-transforms": "^7.25.2",
+ "@babel/helpers": "^7.25.0",
+ "@babel/parser": "^7.25.0",
+ "@babel/template": "^7.25.0",
+ "@babel/traverse": "^7.25.2",
+ "@babel/types": "^7.25.2",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.6",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.2",
+ "@babel/helper-validator-option": "^7.24.8",
+ "browserslist": "^4.23.1",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-member-expression-to-functions": "^7.24.8",
+ "@babel/helper-optimise-call-expression": "^7.24.7",
+ "@babel/helper-replace-supers": "^7.25.0",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/traverse": "^7.25.4",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "regexpu-core": "^5.3.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.24.8",
+ "@babel/types": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.24.7",
+ "@babel/helper-simple-access": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/traverse": "^7.25.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-wrap-function": "^7.25.0",
+ "@babel/traverse": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.24.8",
+ "@babel/helper-optimise-call-expression": "^7.24.7",
+ "@babel/traverse": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.25.0",
+ "@babel/traverse": "^7.25.0",
+ "@babel/types": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.25.0",
+ "@babel/types": "^7.25.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.6"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.25.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/traverse": "^7.25.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/plugin-transform-optional-chaining": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/traverse": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-remap-async-to-generator": "^7.25.0",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/traverse": "^7.25.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-remap-async-to-generator": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.4",
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-compilation-targets": "^7.25.2",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-replace-supers": "^7.25.0",
+ "@babel/traverse": "^7.25.4",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/template": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.0",
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.25.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.24.8",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/traverse": "^7.25.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.24.8",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-simple-access": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.0",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/traverse": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-replace-supers": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.4",
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.25.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-module-imports": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/plugin-syntax-jsx": "^7.24.7",
+ "@babel/types": "^7.25.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.24.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.25.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-create-class-features-plugin": "^7.25.0",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/plugin-syntax-typescript": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.2",
+ "@babel/helper-plugin-utils": "^7.24.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.25.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.4",
+ "@babel/helper-compilation-targets": "^7.25.2",
+ "@babel/helper-plugin-utils": "^7.24.8",
+ "@babel/helper-validator-option": "^7.24.8",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.24.7",
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.24.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.4",
+ "@babel/plugin-transform-async-to-generator": "^7.24.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.0",
+ "@babel/plugin-transform-class-properties": "^7.25.4",
+ "@babel/plugin-transform-class-static-block": "^7.24.7",
+ "@babel/plugin-transform-classes": "^7.25.4",
+ "@babel/plugin-transform-computed-properties": "^7.24.7",
+ "@babel/plugin-transform-destructuring": "^7.24.8",
+ "@babel/plugin-transform-dotall-regex": "^7.24.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.24.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
+ "@babel/plugin-transform-dynamic-import": "^7.24.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.24.7",
+ "@babel/plugin-transform-for-of": "^7.24.7",
+ "@babel/plugin-transform-function-name": "^7.25.1",
+ "@babel/plugin-transform-json-strings": "^7.24.7",
+ "@babel/plugin-transform-literals": "^7.25.2",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.24.7",
+ "@babel/plugin-transform-modules-amd": "^7.24.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.24.8",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.0",
+ "@babel/plugin-transform-modules-umd": "^7.24.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
+ "@babel/plugin-transform-new-target": "^7.24.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
+ "@babel/plugin-transform-numeric-separator": "^7.24.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.24.7",
+ "@babel/plugin-transform-object-super": "^7.24.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
+ "@babel/plugin-transform-optional-chaining": "^7.24.8",
+ "@babel/plugin-transform-parameters": "^7.24.7",
+ "@babel/plugin-transform-private-methods": "^7.25.4",
+ "@babel/plugin-transform-private-property-in-object": "^7.24.7",
+ "@babel/plugin-transform-property-literals": "^7.24.7",
+ "@babel/plugin-transform-regenerator": "^7.24.7",
+ "@babel/plugin-transform-reserved-words": "^7.24.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.24.7",
+ "@babel/plugin-transform-spread": "^7.24.7",
+ "@babel/plugin-transform-sticky-regex": "^7.24.7",
+ "@babel/plugin-transform-template-literals": "^7.24.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.24.8",
+ "@babel/plugin-transform-unicode-escapes": "^7.24.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
+ "@babel/plugin-transform-unicode-regex": "^7.24.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.4",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.37.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-validator-option": "^7.24.7",
+ "@babel/plugin-transform-react-display-name": "^7.24.7",
+ "@babel/plugin-transform-react-jsx": "^7.24.7",
+ "@babel/plugin-transform-react-jsx-development": "^7.24.7",
+ "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.24.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-validator-option": "^7.24.7",
+ "@babel/plugin-syntax-jsx": "^7.24.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.24.7",
+ "@babel/plugin-transform-typescript": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/regjsgen": {
+ "version": "0.8.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.25.6",
+ "license": "MIT",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.25.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/parser": "^7.25.0",
+ "@babel/types": "^7.25.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/generator": "^7.25.6",
+ "@babel/parser": "^7.25.6",
+ "@babel/template": "^7.25.0",
+ "@babel/types": "^7.25.6",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.25.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.24.8",
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@dagrejs/dagre": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@dagrejs/graphlib": "2.2.2"
+ }
+ },
+ "node_modules/@dagrejs/graphlib": {
+ "version": "2.2.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">17.0.0"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.11.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.13.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.3",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@monaco-editor/loader": {
+ "version": "1.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "state-local": "^1.0.6"
+ },
+ "peerDependencies": {
+ "monaco-editor": ">= 0.21.0 < 1"
+ }
+ },
+ "node_modules/@monaco-editor/react": {
+ "version": "4.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "@monaco-editor/loader": "^1.4.0"
+ },
+ "peerDependencies": {
+ "monaco-editor": ">= 0.25.0 < 1",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@octokit/app": {
+ "version": "15.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-app": "^7.0.0",
+ "@octokit/auth-unauthenticated": "^6.0.0",
+ "@octokit/core": "^6.1.2",
+ "@octokit/oauth-app": "^7.0.0",
+ "@octokit/plugin-paginate-rest": "^11.0.0",
+ "@octokit/types": "^13.0.0",
+ "@octokit/webhooks": "^13.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-app": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^8.1.0",
+ "@octokit/auth-oauth-user": "^5.1.0",
+ "@octokit/request": "^9.1.1",
+ "@octokit/request-error": "^6.1.1",
+ "@octokit/types": "^13.4.1",
+ "lru-cache": "^10.0.0",
+ "universal-github-app-jwt": "^2.2.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-app/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "license": "ISC"
+ },
+ "node_modules/@octokit/auth-oauth-app": {
+ "version": "8.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^7.0.0",
+ "@octokit/auth-oauth-user": "^5.0.1",
+ "@octokit/request": "^9.0.0",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-device": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/oauth-methods": "^5.0.0",
+ "@octokit/request": "^9.0.0",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-oauth-user": {
+ "version": "5.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-device": "^7.0.1",
+ "@octokit/oauth-methods": "^5.0.0",
+ "@octokit/request": "^9.0.1",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-token": {
+ "version": "5.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/auth-unauthenticated": {
+ "version": "6.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/types": "^13.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/core": {
+ "version": "6.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-token": "^5.0.0",
+ "@octokit/graphql": "^8.0.0",
+ "@octokit/request": "^9.0.0",
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/types": "^13.0.0",
+ "before-after-hook": "^3.0.2",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/endpoint": {
+ "version": "10.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/graphql": {
+ "version": "8.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request": "^9.0.0",
+ "@octokit/types": "^13.0.0",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/oauth-app": {
+ "version": "7.1.3",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/auth-oauth-app": "^8.0.0",
+ "@octokit/auth-oauth-user": "^5.0.1",
+ "@octokit/auth-unauthenticated": "^6.0.0-beta.1",
+ "@octokit/core": "^6.0.0",
+ "@octokit/oauth-authorization-url": "^7.0.0",
+ "@octokit/oauth-methods": "^5.0.0",
+ "@types/aws-lambda": "^8.10.83",
+ "universal-user-agent": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/oauth-authorization-url": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/oauth-methods": {
+ "version": "5.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/oauth-authorization-url": "^7.0.0",
+ "@octokit/request": "^9.1.0",
+ "@octokit/request-error": "^6.1.0",
+ "@octokit/types": "^13.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/openapi-types": {
+ "version": "22.2.0",
+ "license": "MIT"
+ },
+ "node_modules/@octokit/openapi-webhooks-types": {
+ "version": "8.3.0",
+ "license": "MIT"
+ },
+ "node_modules/@octokit/plugin-paginate-graphql": {
+ "version": "5.2.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
+ }
+ },
+ "node_modules/@octokit/plugin-paginate-rest": {
+ "version": "11.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.5.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
+ }
+ },
+ "node_modules/@octokit/plugin-rest-endpoint-methods": {
+ "version": "13.2.4",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.5.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
+ }
+ },
+ "node_modules/@octokit/plugin-retry": {
+ "version": "7.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/request-error": "^6.0.0",
+ "@octokit/types": "^13.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": ">=6"
+ }
+ },
+ "node_modules/@octokit/plugin-throttling": {
+ "version": "9.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.0.0",
+ "bottleneck": "^2.15.3"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "@octokit/core": "^6.0.0"
+ }
+ },
+ "node_modules/@octokit/request": {
+ "version": "9.1.3",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/endpoint": "^10.0.0",
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/types": "^13.1.0",
+ "universal-user-agent": "^7.0.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/request-error": {
+ "version": "6.1.5",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/types": "^13.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/types": {
+ "version": "13.5.1",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-types": "^22.2.0"
+ }
+ },
+ "node_modules/@octokit/webhooks": {
+ "version": "13.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/openapi-webhooks-types": "8.3.0",
+ "@octokit/request-error": "^6.0.1",
+ "@octokit/webhooks-methods": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@octokit/webhooks-methods": {
+ "version": "5.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/@patternfly/patternfly": {
+ "version": "5.4.0",
+ "license": "MIT"
+ },
+ "node_modules/@patternfly/react-core": {
+ "version": "5.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "@patternfly/react-icons": "^5.4.0",
+ "@patternfly/react-styles": "^5.4.0",
+ "@patternfly/react-tokens": "^5.4.0",
+ "focus-trap": "7.5.4",
+ "react-dropzone": "^14.2.3",
+ "tslib": "^2.6.3"
+ },
+ "peerDependencies": {
+ "react": "^17 || ^18",
+ "react-dom": "^17 || ^18"
+ }
+ },
+ "node_modules/@patternfly/react-icons": {
+ "version": "5.4.0",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^17 || ^18",
+ "react-dom": "^17 || ^18"
+ }
+ },
+ "node_modules/@patternfly/react-styles": {
+ "version": "5.4.0",
+ "license": "MIT"
+ },
+ "node_modules/@patternfly/react-table": {
+ "version": "5.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "@patternfly/react-core": "^5.4.0",
+ "@patternfly/react-icons": "^5.4.0",
+ "@patternfly/react-styles": "^5.4.0",
+ "@patternfly/react-tokens": "^5.4.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.3"
+ },
+ "peerDependencies": {
+ "react": "^17 || ^18",
+ "react-dom": "^17 || ^18"
+ }
+ },
+ "node_modules/@patternfly/react-tokens": {
+ "version": "5.4.0",
+ "license": "MIT"
+ },
+ "node_modules/@patternfly/react-topology": {
+ "version": "5.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "@dagrejs/dagre": "1.1.2",
+ "@patternfly/react-core": "^5.1.1",
+ "@patternfly/react-icons": "^5.1.1",
+ "@patternfly/react-styles": "^5.1.1",
+ "@types/d3": "^7.4.0",
+ "@types/d3-force": "^1.2.1",
+ "@types/react-measure": "^2.0.6",
+ "d3": "^7.8.0",
+ "mobx": "^6.9.0",
+ "mobx-react": "^7.6.0",
+ "point-in-svg-path": "^1.0.1",
+ "popper.js": "^1.16.1",
+ "react-measure": "^2.3.0",
+ "tslib": "^2.0.0",
+ "webcola": "3.4.0"
+ },
+ "peerDependencies": {
+ "react": "^17 || ^18",
+ "react-dom": "^17 || ^18"
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.22.4",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-preset": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^7.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "^7.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^7.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^7.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "^7.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "^7.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "^7.0.0",
+ "@svgr/babel-plugin-transform-svg-component": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/core": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "^7.0.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^8.1.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/plugin-jsx": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "^7.0.0",
+ "@svgr/hast-util-to-babel-ast": "^7.0.0",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^8.1.3",
+ "deepmerge": "^4.3.1",
+ "svgo": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/webpack": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
+ "@svgr/core": "^7.0.0",
+ "@svgr/plugin-jsx": "^7.0.0",
+ "@svgr/plugin-svgo": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/aws-lambda": {
+ "version": "8.10.145",
+ "license": "MIT"
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/d3": {
+ "version": "7.4.3",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/d3-axis": "*",
+ "@types/d3-brush": "*",
+ "@types/d3-chord": "*",
+ "@types/d3-color": "*",
+ "@types/d3-contour": "*",
+ "@types/d3-delaunay": "*",
+ "@types/d3-dispatch": "*",
+ "@types/d3-drag": "*",
+ "@types/d3-dsv": "*",
+ "@types/d3-ease": "*",
+ "@types/d3-fetch": "*",
+ "@types/d3-force": "*",
+ "@types/d3-format": "*",
+ "@types/d3-geo": "*",
+ "@types/d3-hierarchy": "*",
+ "@types/d3-interpolate": "*",
+ "@types/d3-path": "*",
+ "@types/d3-polygon": "*",
+ "@types/d3-quadtree": "*",
+ "@types/d3-random": "*",
+ "@types/d3-scale": "*",
+ "@types/d3-scale-chromatic": "*",
+ "@types/d3-selection": "*",
+ "@types/d3-shape": "*",
+ "@types/d3-time": "*",
+ "@types/d3-time-format": "*",
+ "@types/d3-timer": "*",
+ "@types/d3-transition": "*",
+ "@types/d3-zoom": "*"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.1",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-axis": {
+ "version": "3.0.6",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-brush": {
+ "version": "3.0.6",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-chord": {
+ "version": "3.0.6",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-contour": {
+ "version": "3.0.6",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-delaunay": {
+ "version": "6.0.4",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dispatch": {
+ "version": "3.0.6",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-drag": {
+ "version": "3.0.7",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-dsv": {
+ "version": "3.0.7",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-fetch": {
+ "version": "3.0.7",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "node_modules/@types/d3-force": {
+ "version": "1.2.7",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-format": {
+ "version": "3.0.4",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-geo": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.0",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-polygon": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-quadtree": {
+ "version": "3.0.6",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-random": {
+ "version": "3.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.8",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-scale-chromatic": {
+ "version": "3.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-selection": {
+ "version": "3.0.10",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.6",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-time-format": {
+ "version": "4.0.3",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-transition": {
+ "version": "3.0.8",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-zoom": {
+ "version": "3.0.8",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-interpolate": "*",
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/dagre": {
+ "version": "0.7.52",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.14",
+ "license": "MIT"
+ },
+ "node_modules/@types/js-yaml": {
+ "version": "4.0.9",
+ "license": "MIT"
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/netlify-auth-providers": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "20.14.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.13",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.9",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-measure": {
+ "version": "2.0.12",
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/uuid": {
+ "version": "9.0.8",
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/type-utils": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.6.3",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.3",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/semver": {
+ "version": "7.6.3",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.24.5",
+ "@babel/plugin-transform-react-jsx-self": "^7.24.5",
+ "@babel/plugin-transform-react-jsx-source": "^7.24.1",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.14.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.12.1",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "license": "MIT"
+ },
+ "node_modules/attr-accept": {
+ "version": "2.2.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.7.7",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/before-after-hook": {
+ "version": "3.0.2",
+ "license": "Apache-2.0"
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/bottleneck": {
+ "version": "2.19.5",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001664",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "7.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.38.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "license": "MIT"
+ },
+ "node_modules/d3": {
+ "version": "7.9.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "3",
+ "d3-axis": "3",
+ "d3-brush": "3",
+ "d3-chord": "3",
+ "d3-color": "3",
+ "d3-contour": "4",
+ "d3-delaunay": "6",
+ "d3-dispatch": "3",
+ "d3-drag": "3",
+ "d3-dsv": "3",
+ "d3-ease": "3",
+ "d3-fetch": "3",
+ "d3-force": "3",
+ "d3-format": "3",
+ "d3-geo": "3",
+ "d3-hierarchy": "3",
+ "d3-interpolate": "3",
+ "d3-path": "3",
+ "d3-polygon": "3",
+ "d3-quadtree": "3",
+ "d3-random": "3",
+ "d3-scale": "4",
+ "d3-scale-chromatic": "3",
+ "d3-selection": "3",
+ "d3-shape": "3",
+ "d3-time": "3",
+ "d3-time-format": "4",
+ "d3-timer": "3",
+ "d3-transition": "3",
+ "d3-zoom": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-axis": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-brush": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "3",
+ "d3-transition": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-chord": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-contour": {
+ "version": "4.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-delaunay": {
+ "version": "6.0.4",
+ "license": "ISC",
+ "dependencies": {
+ "delaunator": "5"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-drag": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-selection": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json.js",
+ "csv2tsv": "bin/dsv2dsv.js",
+ "dsv2dsv": "bin/dsv2dsv.js",
+ "dsv2json": "bin/dsv2json.js",
+ "json2csv": "bin/json2dsv.js",
+ "json2dsv": "bin/json2dsv.js",
+ "json2tsv": "bin/json2dsv.js",
+ "tsv2csv": "bin/dsv2dsv.js",
+ "tsv2json": "bin/dsv2json.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-fetch": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dsv": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo": {
+ "version": "3.1.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.5.0 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "3.1.2",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-polygon": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-quadtree": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-random": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-selection": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-transition": {
+ "version": "3.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-dispatch": "1 - 3",
+ "d3-ease": "1 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "d3-selection": "2 - 3"
+ }
+ },
+ "node_modules/d3-zoom": {
+ "version": "3.0.0",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "2 - 3",
+ "d3-transition": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delaunator": {
+ "version": "5.0.1",
+ "license": "ISC",
+ "dependencies": {
+ "robust-predicates": "^3.0.2"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.29",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/file-selector": {
+ "version": "0.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/focus-trap": {
+ "version": "7.5.4",
+ "license": "MIT",
+ "dependencies": {
+ "tabbable": "^6.2.0"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.9",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-node-dimensions": {
+ "version": "1.2.1",
+ "license": "MIT"
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globrex": {
+ "version": "0.1.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/html-to-image": {
+ "version": "1.11.11",
+ "license": "MIT"
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/karavan-core": {
+ "resolved": "../karavan-core",
+ "link": true
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "license": "MIT"
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mobx": {
+ "version": "6.13.3",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ }
+ },
+ "node_modules/mobx-react": {
+ "version": "7.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "mobx-react-lite": "^3.4.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ },
+ "peerDependencies": {
+ "mobx": "^6.1.0",
+ "react": "^16.8.0 || ^17 || ^18"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mobx-react-lite": {
+ "version": "3.4.3",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mobx"
+ },
+ "peerDependencies": {
+ "mobx": "^6.1.0",
+ "react": "^16.8.0 || ^17 || ^18"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/monaco-editor": {
+ "version": "0.49.0",
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/natural-compare-lite": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/netlify-auth-providers": {
+ "version": "1.0.0-alpha5",
+ "license": "MIT"
+ },
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/octokit": {
+ "version": "4.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "@octokit/app": "^15.0.0",
+ "@octokit/core": "^6.0.0",
+ "@octokit/oauth-app": "^7.0.0",
+ "@octokit/plugin-paginate-graphql": "^5.0.0",
+ "@octokit/plugin-paginate-rest": "^11.0.0",
+ "@octokit/plugin-rest-endpoint-methods": "^13.0.0",
+ "@octokit/plugin-retry": "^7.0.0",
+ "@octokit/plugin-throttling": "^9.0.0",
+ "@octokit/request-error": "^6.0.0",
+ "@octokit/types": "^13.0.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/point-in-svg-path": {
+ "version": "1.0.2",
+ "license": "ISC",
+ "engines": {
+ "node": ">=8.x.x"
+ }
+ },
+ "node_modules/popper.js": {
+ "version": "1.16.1",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.47",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "license": "MIT"
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-dropzone": {
+ "version": "14.2.3",
+ "license": "MIT",
+ "dependencies": {
+ "attr-accept": "^2.2.2",
+ "file-selector": "^0.6.0",
+ "prop-types": "^15.8.1"
+ },
+ "engines": {
+ "node": ">= 10.13"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8 || 18.0.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "license": "MIT"
+ },
+ "node_modules/react-measure": {
+ "version": "2.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.2.0",
+ "get-node-dimensions": "^1.2.1",
+ "prop-types": "^15.6.2",
+ "resize-observer-polyfill": "^1.5.0"
+ },
+ "peerDependencies": {
+ "react": ">0.13.0",
+ "react-dom": ">0.13.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-resizable-panels": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-2.1.7.tgz",
+ "integrity": "sha512-JtT6gI+nURzhMYQYsx8DKkx6bSoOGFp7A3CwMrOb8y5jFHFyqwo9m68UhmXRw57fRVJksFn1TSlm3ywEQ9vMgA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "license": "MIT"
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/regjsgen": "^0.8.0",
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.1.0",
+ "regjsparser": "^0.9.1",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsparser": {
+ "version": "0.9.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "license": "MIT"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/robust-predicates": {
+ "version": "3.0.2",
+ "license": "Unlicense"
+ },
+ "node_modules/rollup": {
+ "version": "4.22.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.22.4",
+ "@rollup/rollup-android-arm64": "4.22.4",
+ "@rollup/rollup-darwin-arm64": "4.22.4",
+ "@rollup/rollup-darwin-x64": "4.22.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.22.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.22.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.22.4",
+ "@rollup/rollup-linux-arm64-musl": "4.22.4",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.22.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.22.4",
+ "@rollup/rollup-linux-x64-gnu": "4.22.4",
+ "@rollup/rollup-linux-x64-musl": "4.22.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.22.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.22.4",
+ "@rollup/rollup-win32-x64-msvc": "4.22.4",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/state-local": {
+ "version": "1.0.7",
+ "license": "MIT"
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svg-parser": {
+ "version": "2.0.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/svgo": {
+ "version": "3.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^2.3.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/tabbable": {
+ "version": "6.2.0",
+ "license": "MIT"
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.7.0",
+ "license": "0BSD"
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.9.5",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.2.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/universal-github-app-jwt": {
+ "version": "2.2.0",
+ "license": "MIT"
+ },
+ "node_modules/universal-user-agent": {
+ "version": "7.0.2",
+ "license": "ISC"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.2.2",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/usehooks-ts": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "lodash.debounce": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=16.15.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17 || ^18"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "10.0.0",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.14",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
+ "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-svgr": {
+ "version": "4.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.5",
+ "@svgr/core": "^8.1.0",
+ "@svgr/plugin-jsx": "^8.1.0"
+ },
+ "peerDependencies": {
+ "vite": "^2.6.0 || 3 || 4 || 5"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/babel-preset": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+ "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/core": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^8.1.3",
+ "snake-case": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "8.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/vite-plugin-svgr/node_modules/@svgr/plugin-jsx": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "@svgr/hast-util-to-babel-ast": "8.0.0",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/vite-tsconfig-paths": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "globrex": "^0.1.2",
+ "tsconfck": "^3.0.3"
+ },
+ "peerDependencies": {
+ "vite": "*"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-tsconfig-paths/node_modules/tsconfck": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "tsconfck": "bin/tsconfck.js"
+ },
+ "engines": {
+ "node": "^18 || >=20"
+ },
+ "peerDependencies": {
+ "typescript": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-tsconfig-paths/node_modules/typescript": {
+ "version": "5.6.2",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/webcola": {
+ "version": "3.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "d3-dispatch": "^1.0.3",
+ "d3-drag": "^1.0.4",
+ "d3-shape": "^1.3.5",
+ "d3-timer": "^1.0.5"
+ }
+ },
+ "node_modules/webcola/node_modules/d3-dispatch": {
+ "version": "1.0.6",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/webcola/node_modules/d3-drag": {
+ "version": "1.2.5",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-dispatch": "1",
+ "d3-selection": "1"
+ }
+ },
+ "node_modules/webcola/node_modules/d3-path": {
+ "version": "1.0.9",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/webcola/node_modules/d3-selection": {
+ "version": "1.4.2",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/webcola/node_modules/d3-shape": {
+ "version": "1.3.7",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-path": "1"
+ }
+ },
+ "node_modules/webcola/node_modules/d3-timer": {
+ "version": "1.0.10",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zustand": {
+ "version": "4.5.5",
+ "license": "MIT",
+ "dependencies": {
+ "use-sync-external-store": "1.2.2"
+ },
+ "engines": {
+ "node": ">=12.7.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16.8",
+ "immer": ">=9.0.6",
+ "react": ">=16.8"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/karavan-space/package.json b/karavan-space/package.json
index 9e812e0d..15765509 100644
--- a/karavan-space/package.json
+++ b/karavan-space/package.json
@@ -48,6 +48,7 @@
"octokit": "^4.0.2",
"react": "18.3.1",
"react-dom": "18.3.1",
+ "react-resizable-panels": "^2.1.7",
"rxjs": "7.8.1",
"usehooks-ts": "^3.1.0",
"uuid": "10.0.0",
diff --git a/karavan-space/public/metadata/components.json b/karavan-space/public/metadata/components.json
index 9b9844a9..2863b6b9 100644
--- a/karavan-space/public/metadata/components.json
+++ b/karavan-space/public/metadata/components.json
@@ -1,697 +1,701 @@
[
-{"component":{"kind":"component","name":"activemq","title":"ActiveMQ 5.x","description":"Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.","deprecated":false,"firstVersion":"1.0.0","label":"messaging","javaType":"org.apache.camel.component.activemq.ActiveMQComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-activemq","version":"4.8.2","scheme":"activemq","extendsScheme":"jms","syntax":"activemq:destina [...]
+{"component":{"kind":"component","name":"activemq","title":"ActiveMQ 5.x","description":"Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.","deprecated":false,"firstVersion":"1.0.0","label":"messaging","javaType":"org.apache.camel.component.activemq.ActiveMQComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-activemq","version":"4.10.0-SNAPSHOT","scheme":"activemq","extendsScheme":"jms","syntax":"active [...]
,
-{"component":{"kind":"component","name":"activemq6","title":"ActiveMQ 6.x","description":"Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.","deprecated":false,"firstVersion":"4.7.0","label":"messaging","javaType":"org.apache.camel.component.activemq6.ActiveMQComponent","supportLevel":"Preview","groupId":"org.apache.camel","artifactId":"camel-activemq6","version":"4.8.2","scheme":"activemq6","extendsScheme":"jms","syntax":"activemq6:d [...]
+{"component":{"kind":"component","name":"activemq6","title":"ActiveMQ 6.x","description":"Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.","deprecated":false,"firstVersion":"4.7.0","label":"messaging","javaType":"org.apache.camel.component.activemq6.ActiveMQComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-activemq6","version":"4.10.0-SNAPSHOT","scheme":"activemq6","extendsScheme":"jms","syntax":"ac [...]
,
-{"component":{"kind":"component","name":"amqp","title":"AMQP","description":"Messaging with AMQP protocol using Apache QPid Client.","deprecated":false,"firstVersion":"1.2.0","label":"messaging","javaType":"org.apache.camel.component.amqp.AMQPComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-amqp","version":"4.8.2","scheme":"amqp","extendsScheme":"jms","syntax":"amqp:destinationType:destinationName","async":true,"api":false,"consumerOnly":false,"producer [...]
+{"component":{"kind":"component","name":"amqp","title":"AMQP","description":"Messaging with AMQP protocol using Apache QPid Client.","deprecated":false,"firstVersion":"1.2.0","label":"messaging","javaType":"org.apache.camel.component.amqp.AMQPComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-amqp","version":"4.10.0-SNAPSHOT","scheme":"amqp","extendsScheme":"jms","syntax":"amqp:destinationType:destinationName","async":true,"api":false,"consumerOnly":false [...]
,
-{"component":{"kind":"component","name":"arangodb","title":"ArangoDb","description":"Perform operations on ArangoDb when used as a Document Database, or as a Graph Database","deprecated":false,"firstVersion":"3.5.0","label":"database","javaType":"org.apache.camel.component.arangodb.ArangoDbComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-arangodb","version":"4.8.2","scheme":"arangodb","extendsScheme":"","syntax":"arangodb:database","async":false,"api":f [...]
+{"component":{"kind":"component","name":"arangodb","title":"ArangoDb","description":"Perform operations on ArangoDb when used as a Document Database, or as a Graph Database","deprecated":false,"firstVersion":"3.5.0","label":"database","javaType":"org.apache.camel.component.arangodb.ArangoDbComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-arangodb","version":"4.10.0-SNAPSHOT","scheme":"arangodb","extendsScheme":"","syntax":"arangodb:database","async":fal [...]
,
-{"component":{"kind":"component","name":"as2","title":"AS2","description":"Transfer data securely and reliably using the AS2 protocol (RFC4130).","deprecated":false,"firstVersion":"2.22.0","label":"file","javaType":"org.apache.camel.component.as2.AS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-as2","version":"4.8.2","scheme":"as2","extendsScheme":"","syntax":"as2:apiName/methodName","async":false,"api":true,"apiSyntax":"apiName/methodName","consumer [...]
+{"component":{"kind":"component","name":"as2","title":"AS2","description":"Transfer data securely and reliably using the AS2 protocol (RFC4130).","deprecated":false,"firstVersion":"2.22.0","label":"file","javaType":"org.apache.camel.component.as2.AS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-as2","version":"4.10.0-SNAPSHOT","scheme":"as2","extendsScheme":"","syntax":"as2:apiName/methodName","async":false,"api":true,"apiSyntax":"apiName/methodName" [...]
,
-{"component":{"kind":"component","name":"asterisk","title":"Asterisk","description":"Interact with Asterisk PBX Server (VoIP).","deprecated":false,"firstVersion":"2.18.0","label":"mobile","javaType":"org.apache.camel.component.asterisk.AsteriskComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-asterisk","version":"4.8.2","scheme":"asterisk","extendsScheme":"","syntax":"asterisk:name","async":false,"api":false,"consumerOnly":false,"producerOnly":false,"len [...]
+{"component":{"kind":"component","name":"asterisk","title":"Asterisk","description":"Interact with Asterisk PBX Server (VoIP).","deprecated":false,"firstVersion":"2.18.0","label":"mobile","javaType":"org.apache.camel.component.asterisk.AsteriskComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-asterisk","version":"4.10.0-SNAPSHOT","scheme":"asterisk","extendsScheme":"","syntax":"asterisk:name","async":false,"api":false,"consumerOnly":false,"producerOnly": [...]
,
-{"component":{"kind":"component","name":"atmosphere-websocket","title":"Atmosphere Websocket","description":"Expose WebSocket endpoints using the Atmosphere framework.","deprecated":false,"firstVersion":"2.14.0","label":"http,networking","javaType":"org.apache.camel.component.atmosphere.websocket.WebsocketComponent","supportLevel":"Stable","metadata":{"protocol":"http"},"groupId":"org.apache.camel","artifactId":"camel-atmosphere-websocket","version":"4.8.2","scheme":"atmosphere-websocket [...]
+{"component":{"kind":"component","name":"atmosphere-websocket","title":"Atmosphere Websocket","description":"Expose WebSocket endpoints using the Atmosphere framework.","deprecated":false,"firstVersion":"2.14.0","label":"http,networking","javaType":"org.apache.camel.component.atmosphere.websocket.WebsocketComponent","supportLevel":"Stable","metadata":{"protocol":"http"},"groupId":"org.apache.camel","artifactId":"camel-atmosphere-websocket","version":"4.10.0-SNAPSHOT","scheme":"atmosphere [...]
,
-{"component":{"kind":"component","name":"atom","title":"Atom","description":"Poll Atom RSS feeds.","deprecated":false,"firstVersion":"1.2.0","label":"document","javaType":"org.apache.camel.component.atom.AtomComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-atom","version":"4.8.2","scheme":"atom","extendsScheme":"","syntax":"atom:feedUri","async":false,"api":false,"consumerOnly":true,"producerOnly":false,"lenientProperties":true,"remote":true},"headers": [...]
+{"component":{"kind":"component","name":"atom","title":"Atom","description":"Poll Atom RSS feeds.","deprecated":false,"firstVersion":"1.2.0","label":"document","javaType":"org.apache.camel.component.atom.AtomComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-atom","version":"4.10.0-SNAPSHOT","scheme":"atom","extendsScheme":"","syntax":"atom:feedUri","async":false,"api":false,"consumerOnly":true,"producerOnly":false,"lenientProperties":true,"browsable":fal [...]
,
-{"component":{"kind":"component","name":"avro","title":"Avro RPC","description":"Produce or consume Apache Avro RPC services.","deprecated":false,"firstVersion":"2.10.0","label":"rpc","javaType":"org.apache.camel.component.avro.AvroComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-avro-rpc","version":"4.8.2","scheme":"avro","extendsScheme":"","syntax":"avro:transport:host:port/messageName","async":true,"api":false,"consumerOnly":false,"producerOnly":fals [...]
+{"component":{"kind":"component","name":"avro","title":"Avro RPC","description":"Produce or consume Apache Avro RPC services.","deprecated":false,"firstVersion":"2.10.0","label":"rpc","javaType":"org.apache.camel.component.avro.AvroComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-avro-rpc","version":"4.10.0-SNAPSHOT","scheme":"avro","extendsScheme":"","syntax":"avro:transport:host:port/messageName","async":true,"api":false,"consumerOnly":false,"producer [...]
,
-{"component":{"kind":"component","name":"aws-bedrock","title":"AWS Bedrock","description":"Invoke Model of AWS Bedrock service.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.runtime.BedrockComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.8.2","scheme":"aws-bedrock","extendsScheme":"","syntax":"aws-bedrock:label","async":false,"api":false,"consumerOnly":false,"p [...]
+{"component":{"kind":"component","name":"aws-bedrock","title":"AWS Bedrock","description":"Invoke Model of AWS Bedrock service.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.runtime.BedrockComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.10.0-SNAPSHOT","scheme":"aws-bedrock","extendsScheme":"","syntax":"aws-bedrock:label","async":false,"api":false,"consumerOnly [...]
,
-{"component":{"kind":"component","name":"aws-bedrock-agent","title":"AWS Bedrock Agent","description":"Operate on AWS Bedrock through its Agent.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.8.2","scheme":"aws-bedrock-agent","extendsScheme":"","syntax":"aws-bedrock-agent:label","async":false,"ap [...]
+{"component":{"kind":"component","name":"aws-bedrock-agent","title":"AWS Bedrock Agent","description":"Operate on AWS Bedrock through its Agent.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.agent.BedrockAgentComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.10.0-SNAPSHOT","scheme":"aws-bedrock-agent","extendsScheme":"","syntax":"aws-bedrock-agent:label","async" [...]
,
-{"component":{"kind":"component","name":"aws-bedrock-agent-runtime","title":"AWS Bedrock Agent Runtime","description":"Invoke Model of AWS Bedrock Agent Runtime service.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.8.2","scheme":"aws-bedrock-agent-runtime","extendsScheme":"","synt [...]
+{"component":{"kind":"component","name":"aws-bedrock-agent-runtime","title":"AWS Bedrock Agent Runtime","description":"Invoke Model of AWS Bedrock Agent Runtime service.","deprecated":false,"firstVersion":"4.5.0","label":"ai,cloud","javaType":"org.apache.camel.component.aws2.bedrock.agentruntime.BedrockAgentRuntimeComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-bedrock","version":"4.10.0-SNAPSHOT","scheme":"aws-bedrock-agent-runtime","extendsScheme [...]
,
-{"component":{"kind":"component","name":"aws-cloudtrail","title":"AWS Cloudtrail","description":"Consume events from Amazon Cloudtrail using AWS SDK version 2.x.","deprecated":false,"firstVersion":"3.19.0","label":"cloud,management,monitoring","javaType":"org.apache.camel.component.aws.cloudtrail.CloudtrailComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-cloudtrail","version":"4.8.2","scheme":"aws-cloudtrail","extendsScheme":"","syntax":"aws-cloudtr [...]
+{"component":{"kind":"component","name":"aws-cloudtrail","title":"AWS Cloudtrail","description":"Consume events from Amazon Cloudtrail using AWS SDK version 2.x.","deprecated":false,"firstVersion":"3.19.0","label":"cloud,management,monitoring","javaType":"org.apache.camel.component.aws.cloudtrail.CloudtrailComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-cloudtrail","version":"4.10.0-SNAPSHOT","scheme":"aws-cloudtrail","extendsScheme":"","syntax":"a [...]
,
-{"component":{"kind":"component","name":"aws-config","title":"AWS Config Service","description":"Manage AWS Config service.","deprecated":false,"firstVersion":"4.3.0","label":"cloud,management","javaType":"org.apache.camel.component.aws.config.AWSConfigComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-config","version":"4.8.2","scheme":"aws-config","extendsScheme":"","syntax":"aws-config:label","async":false,"api":false,"consumerOnly":false,"producer [...]
+{"component":{"kind":"component","name":"aws-config","title":"AWS Config Service","description":"Manage AWS Config service.","deprecated":false,"firstVersion":"4.3.0","label":"cloud,management","javaType":"org.apache.camel.component.aws.config.AWSConfigComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws-config","version":"4.10.0-SNAPSHOT","scheme":"aws-config","extendsScheme":"","syntax":"aws-config:label","async":false,"api":false,"consumerOnly":false [...]
,
-{"component":{"kind":"component","name":"aws-secrets-manager","title":"AWS Secrets Manager","description":"Manage secrets using AWS Secrets Manager.","deprecated":false,"firstVersion":"3.9.0","label":"cloud,management","javaType":"org.apache.camel.component.aws.secretsmanager.SecretsManagerComponent","supportLevel":"Stable","metadata":{"vault":"aws-secrets-manager"},"groupId":"org.apache.camel","artifactId":"camel-aws-secrets-manager","version":"4.8.2","scheme":"aws-secrets-manager","ext [...]
+{"component":{"kind":"component","name":"aws-secrets-manager","title":"AWS Secrets Manager","description":"Manage secrets using AWS Secrets Manager.","deprecated":false,"firstVersion":"3.9.0","label":"cloud,management","javaType":"org.apache.camel.component.aws.secretsmanager.SecretsManagerComponent","supportLevel":"Stable","metadata":{"vault":"aws-secrets-manager"},"groupId":"org.apache.camel","artifactId":"camel-aws-secrets-manager","version":"4.10.0-SNAPSHOT","scheme":"aws-secrets-man [...]
,
-{"component":{"kind":"component","name":"aws2-athena","title":"AWS Athena","description":"Access AWS Athena.","deprecated":false,"firstVersion":"3.4.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.athena.Athena2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-athena","version":"4.8.2","scheme":"aws2-athena","extendsScheme":"","syntax":"aws2-athena:label","async":false,"api":false,"consumerOnly":false,"producerOnly":true,"len [...]
+{"component":{"kind":"component","name":"aws2-athena","title":"AWS Athena","description":"Access AWS Athena.","deprecated":false,"firstVersion":"3.4.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.athena.Athena2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-athena","version":"4.10.0-SNAPSHOT","scheme":"aws2-athena","extendsScheme":"","syntax":"aws2-athena:label","async":false,"api":false,"consumerOnly":false,"producerOnly" [...]
,
-{"component":{"kind":"component","name":"aws2-cw","title":"AWS CloudWatch","description":"Sending metrics to AWS CloudWatch.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,monitoring","javaType":"org.apache.camel.component.aws2.cw.Cw2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-cw","version":"4.8.2","scheme":"aws2-cw","extendsScheme":"","syntax":"aws2-cw:namespace","async":false,"api":false,"consumerOnly":false,"producerOnly":true,"l [...]
+{"component":{"kind":"component","name":"aws2-cw","title":"AWS CloudWatch","description":"Sending metrics to AWS CloudWatch.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,monitoring","javaType":"org.apache.camel.component.aws2.cw.Cw2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-cw","version":"4.10.0-SNAPSHOT","scheme":"aws2-cw","extendsScheme":"","syntax":"aws2-cw:namespace","async":false,"api":false,"consumerOnly":false,"producerOnl [...]
,
-{"component":{"kind":"component","name":"aws2-ddb","title":"AWS DynamoDB","description":"Store and retrieve data from AWS DynamoDB.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.ddb.Ddb2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ddb","version":"4.8.2","scheme":"aws2-ddb","extendsScheme":"","syntax":"aws2-ddb:tableName","async":false,"api":false,"consumerOnly":false,"producerOnl [...]
+{"component":{"kind":"component","name":"aws2-ddb","title":"AWS DynamoDB","description":"Store and retrieve data from AWS DynamoDB.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.ddb.Ddb2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ddb","version":"4.10.0-SNAPSHOT","scheme":"aws2-ddb","extendsScheme":"","syntax":"aws2-ddb:tableName","async":false,"api":false,"consumerOnly":false,"p [...]
,
-{"component":{"kind":"component","name":"aws2-ddbstream","title":"AWS DynamoDB Streams","description":"Receive messages from AWS DynamoDB Stream.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.ddbstream.Ddb2StreamComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ddb","version":"4.8.2","scheme":"aws2-ddbstream","extendsScheme":"","syntax":"aws2-ddbstream:tableName","async":false,"api": [...]
+{"component":{"kind":"component","name":"aws2-ddbstream","title":"AWS DynamoDB Streams","description":"Receive messages from AWS DynamoDB Stream.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.ddbstream.Ddb2StreamComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ddb","version":"4.10.0-SNAPSHOT","scheme":"aws2-ddbstream","extendsScheme":"","syntax":"aws2-ddbstream:tableName","async":fa [...]
,
-{"component":{"kind":"component","name":"aws2-ec2","title":"AWS Elastic Compute Cloud (EC2)","description":"Manage AWS EC2 instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.ec2.AWS2EC2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ec2","version":"4.8.2","scheme":"aws2-ec2","extendsScheme":"","syntax":"aws2-ec2:label","async":false,"api":false,"consumerOnly":false,"producer [...]
+{"component":{"kind":"component","name":"aws2-ec2","title":"AWS Elastic Compute Cloud (EC2)","description":"Manage AWS EC2 instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.ec2.AWS2EC2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ec2","version":"4.10.0-SNAPSHOT","scheme":"aws2-ec2","extendsScheme":"","syntax":"aws2-ec2:label","async":false,"api":false,"consumerOnly":false [...]
,
-{"component":{"kind":"component","name":"aws2-ecs","title":"AWS Elastic Container Service (ECS)","description":"Manage AWS ECS cluster instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.ecs.ECS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ecs","version":"4.8.2","scheme":"aws2-ecs","extendsScheme":"","syntax":"aws2-ecs:label","async":false,"api":false,"consumerOnly":false, [...]
+{"component":{"kind":"component","name":"aws2-ecs","title":"AWS Elastic Container Service (ECS)","description":"Manage AWS ECS cluster instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.ecs.ECS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ecs","version":"4.10.0-SNAPSHOT","scheme":"aws2-ecs","extendsScheme":"","syntax":"aws2-ecs:label","async":false,"api":false,"consumerOn [...]
,
-{"component":{"kind":"component","name":"aws2-eks","title":"AWS Elastic Kubernetes Service (EKS)","description":"Manage AWS EKS cluster instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.eks.EKS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-eks","version":"4.8.2","scheme":"aws2-eks","extendsScheme":"","syntax":"aws2-eks:label","async":false,"api":false,"consumerOnly":false [...]
+{"component":{"kind":"component","name":"aws2-eks","title":"AWS Elastic Kubernetes Service (EKS)","description":"Manage AWS EKS cluster instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.eks.EKS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-eks","version":"4.10.0-SNAPSHOT","scheme":"aws2-eks","extendsScheme":"","syntax":"aws2-eks:label","async":false,"api":false,"consumerO [...]
,
-{"component":{"kind":"component","name":"aws2-eventbridge","title":"AWS Eventbridge","description":"Send events to AWS Eventbridge cluster instances.","deprecated":false,"firstVersion":"3.6.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.eventbridge.EventbridgeComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-eventbridge","version":"4.8.2","scheme":"aws2-eventbridge","extendsScheme":"","syntax":"aws2-eventbridge://eventbusN [...]
+{"component":{"kind":"component","name":"aws2-eventbridge","title":"AWS Eventbridge","description":"Send events to AWS Eventbridge cluster instances.","deprecated":false,"firstVersion":"3.6.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.eventbridge.EventbridgeComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-eventbridge","version":"4.10.0-SNAPSHOT","scheme":"aws2-eventbridge","extendsScheme":"","syntax":"aws2-eventbridge:/ [...]
,
-{"component":{"kind":"component","name":"aws2-iam","title":"AWS Identity and Access Management (IAM)","description":"Manage AWS IAM instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.iam.IAM2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-iam","version":"4.8.2","scheme":"aws2-iam","extendsScheme":"","syntax":"aws2-iam:label","async":false,"api":false,"consumerOnly":false,"pr [...]
+{"component":{"kind":"component","name":"aws2-iam","title":"AWS Identity and Access Management (IAM)","description":"Manage AWS IAM instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.iam.IAM2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-iam","version":"4.10.0-SNAPSHOT","scheme":"aws2-iam","extendsScheme":"","syntax":"aws2-iam:label","async":false,"api":false,"consumerOnly" [...]
,
-{"component":{"kind":"component","name":"aws2-kinesis","title":"AWS Kinesis","description":"Consume and produce records from and to AWS Kinesis Streams.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.kinesis.Kinesis2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kinesis","version":"4.8.2","scheme":"aws2-kinesis","extendsScheme":"","syntax":"aws2-kinesis:streamName","async":false,"a [...]
+{"component":{"kind":"component","name":"aws2-kinesis","title":"AWS Kinesis","description":"Consume and produce records from and to AWS Kinesis Streams.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.kinesis.Kinesis2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kinesis","version":"4.10.0-SNAPSHOT","scheme":"aws2-kinesis","extendsScheme":"","syntax":"aws2-kinesis:streamName","async [...]
,
-{"component":{"kind":"component","name":"aws2-kinesis-firehose","title":"AWS Kinesis Firehose","description":"Produce data to AWS Kinesis Firehose streams.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.firehose.KinesisFirehose2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kinesis","version":"4.8.2","scheme":"aws2-kinesis-firehose","extendsScheme":"","syntax":"aws2-kinesis-firehos [...]
+{"component":{"kind":"component","name":"aws2-kinesis-firehose","title":"AWS Kinesis Firehose","description":"Produce data to AWS Kinesis Firehose streams.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.firehose.KinesisFirehose2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kinesis","version":"4.10.0-SNAPSHOT","scheme":"aws2-kinesis-firehose","extendsScheme":"","syntax":"aws2-kines [...]
,
-{"component":{"kind":"component","name":"aws2-kms","title":"AWS Key Management Service (KMS)","description":"Manage keys stored in AWS KMS instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.kms.KMS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kms","version":"4.8.2","scheme":"aws2-kms","extendsScheme":"","syntax":"aws2-kms:label","async":false,"api":false,"consumerOnly":fa [...]
+{"component":{"kind":"component","name":"aws2-kms","title":"AWS Key Management Service (KMS)","description":"Manage keys stored in AWS KMS instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.kms.KMS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-kms","version":"4.10.0-SNAPSHOT","scheme":"aws2-kms","extendsScheme":"","syntax":"aws2-kms:label","async":false,"api":false,"consum [...]
,
-{"component":{"kind":"component","name":"aws2-lambda","title":"AWS Lambda","description":"Manage and invoke AWS Lambda functions.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,serverless","javaType":"org.apache.camel.component.aws2.lambda.Lambda2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-lambda","version":"4.8.2","scheme":"aws2-lambda","extendsScheme":"","syntax":"aws2-lambda:function","async":false,"api":false,"consumerOnly":fals [...]
+{"component":{"kind":"component","name":"aws2-lambda","title":"AWS Lambda","description":"Manage and invoke AWS Lambda functions.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,serverless","javaType":"org.apache.camel.component.aws2.lambda.Lambda2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-lambda","version":"4.10.0-SNAPSHOT","scheme":"aws2-lambda","extendsScheme":"","syntax":"aws2-lambda:function","async":false,"api":false,"consumer [...]
,
-{"component":{"kind":"component","name":"aws2-mq","title":"AWS MQ","description":"Send messages to AWS MQ.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.mq.MQ2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-mq","version":"4.8.2","scheme":"aws2-mq","extendsScheme":"","syntax":"aws2-mq:label","async":false,"api":false,"consumerOnly":false,"producerOnly":true,"lenientProperties":false [...]
+{"component":{"kind":"component","name":"aws2-mq","title":"AWS MQ","description":"Send messages to AWS MQ.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.mq.MQ2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-mq","version":"4.10.0-SNAPSHOT","scheme":"aws2-mq","extendsScheme":"","syntax":"aws2-mq:label","async":false,"api":false,"consumerOnly":false,"producerOnly":true,"lenientPropert [...]
,
-{"component":{"kind":"component","name":"aws2-msk","title":"AWS Managed Streaming for Apache Kafka (MSK)","description":"Manage AWS MSK instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.msk.MSK2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-msk","version":"4.8.2","scheme":"aws2-msk","extendsScheme":"","syntax":"aws2-msk:label","async":false,"api":false,"consumerOnly":false [...]
+{"component":{"kind":"component","name":"aws2-msk","title":"AWS Managed Streaming for Apache Kafka (MSK)","description":"Manage AWS MSK instances.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.msk.MSK2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-msk","version":"4.10.0-SNAPSHOT","scheme":"aws2-msk","extendsScheme":"","syntax":"aws2-msk:label","async":false,"api":false,"consumerO [...]
,
-{"component":{"kind":"component","name":"aws2-redshift-data","title":"AWS RedshiftData","description":"Perform operations on AWS Redshift using Redshift Data API.","deprecated":false,"firstVersion":"4.1.0","label":"cloud,serverless,database,bigdata","javaType":"org.apache.camel.component.aws2.redshift.data.RedshiftData2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-redshift","version":"4.8.2","scheme":"aws2-redshift-data","extendsScheme":"","synt [...]
+{"component":{"kind":"component","name":"aws2-redshift-data","title":"AWS RedshiftData","description":"Perform operations on AWS Redshift using Redshift Data API.","deprecated":false,"firstVersion":"4.1.0","label":"cloud,serverless,database,bigdata","javaType":"org.apache.camel.component.aws2.redshift.data.RedshiftData2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-redshift","version":"4.10.0-SNAPSHOT","scheme":"aws2-redshift-data","extendsScheme [...]
,
-{"component":{"kind":"component","name":"aws2-s3","title":"AWS S3 Storage Service","description":"Store and retrieve objects from AWS S3 Storage Service.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,file","javaType":"org.apache.camel.component.aws2.s3.AWS2S3Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-s3","version":"4.8.2","scheme":"aws2-s3","extendsScheme":"","syntax":"aws2-s3://bucketNameOrArn","async":false,"api":false,"consumer [...]
+{"component":{"kind":"component","name":"aws2-s3","title":"AWS S3 Storage Service","description":"Store and retrieve objects from AWS S3 Storage Service.","deprecated":false,"firstVersion":"3.2.0","label":"cloud,file","javaType":"org.apache.camel.component.aws2.s3.AWS2S3Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-s3","version":"4.10.0-SNAPSHOT","scheme":"aws2-s3","extendsScheme":"","syntax":"aws2-s3://bucketNameOrArn","async":false,"api":false [...]
,
-{"component":{"kind":"component","name":"aws2-ses","title":"AWS Simple Email Service (SES)","description":"Send e-mails through AWS SES service.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,mail","javaType":"org.apache.camel.component.aws2.ses.Ses2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ses","version":"4.8.2","scheme":"aws2-ses","extendsScheme":"","syntax":"aws2-ses:from","async":false,"api":false,"consumerOnly":false,"produce [...]
+{"component":{"kind":"component","name":"aws2-ses","title":"AWS Simple Email Service (SES)","description":"Send e-mails through AWS SES service.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,mail","javaType":"org.apache.camel.component.aws2.ses.Ses2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-ses","version":"4.10.0-SNAPSHOT","scheme":"aws2-ses","extendsScheme":"","syntax":"aws2-ses:from","async":false,"api":false,"consumerOnly":fals [...]
,
-{"component":{"kind":"component","name":"aws2-sns","title":"AWS Simple Notification System (SNS)","description":"Send messages to AWS Simple Notification Topic.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging,mobile","javaType":"org.apache.camel.component.aws2.sns.Sns2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sns","version":"4.8.2","scheme":"aws2-sns","extendsScheme":"","syntax":"aws2-sns:topicNameOrArn","async":false,"ap [...]
+{"component":{"kind":"component","name":"aws2-sns","title":"AWS Simple Notification System (SNS)","description":"Send messages to AWS Simple Notification Topic.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging,mobile","javaType":"org.apache.camel.component.aws2.sns.Sns2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sns","version":"4.10.0-SNAPSHOT","scheme":"aws2-sns","extendsScheme":"","syntax":"aws2-sns:topicNameOrArn","async" [...]
,
-{"component":{"kind":"component","name":"aws2-sqs","title":"AWS Simple Queue Service (SQS)","description":"Send and receive messages to/from AWS SQS.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.sqs.Sqs2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sqs","version":"4.8.2","scheme":"aws2-sqs","extendsScheme":"","syntax":"aws2-sqs:queueNameOrArn","async":false,"api":false,"consumer [...]
+{"component":{"kind":"component","name":"aws2-sqs","title":"AWS Simple Queue Service (SQS)","description":"Send and receive messages to/from AWS SQS.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,messaging","javaType":"org.apache.camel.component.aws2.sqs.Sqs2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sqs","version":"4.10.0-SNAPSHOT","scheme":"aws2-sqs","extendsScheme":"","syntax":"aws2-sqs:queueNameOrArn","async":false,"api":false [...]
,
-{"component":{"kind":"component","name":"aws2-step-functions","title":"AWS StepFunctions","description":"Manage and invoke AWS Step functions.","deprecated":false,"firstVersion":"4.0.0","label":"cloud,serverless","javaType":"org.apache.camel.component.aws2.stepfunctions.StepFunctions2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-step-functions","version":"4.8.2","scheme":"aws2-step-functions","extendsScheme":"","syntax":"aws2-step-functions:labe [...]
+{"component":{"kind":"component","name":"aws2-step-functions","title":"AWS StepFunctions","description":"Manage and invoke AWS Step functions.","deprecated":false,"firstVersion":"4.0.0","label":"cloud,serverless","javaType":"org.apache.camel.component.aws2.stepfunctions.StepFunctions2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-step-functions","version":"4.10.0-SNAPSHOT","scheme":"aws2-step-functions","extendsScheme":"","syntax":"aws2-step-func [...]
,
-{"component":{"kind":"component","name":"aws2-sts","title":"AWS Security Token Service (STS)","description":"Manage AWS STS cluster instances.","deprecated":false,"firstVersion":"3.5.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.sts.STS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sts","version":"4.8.2","scheme":"aws2-sts","extendsScheme":"","syntax":"aws2-sts:label","async":false,"api":false,"consumerOnly":false,"pr [...]
+{"component":{"kind":"component","name":"aws2-sts","title":"AWS Security Token Service (STS)","description":"Manage AWS STS cluster instances.","deprecated":false,"firstVersion":"3.5.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.sts.STS2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-sts","version":"4.10.0-SNAPSHOT","scheme":"aws2-sts","extendsScheme":"","syntax":"aws2-sts:label","async":false,"api":false,"consumerOnly" [...]
,
-{"component":{"kind":"component","name":"aws2-timestream","title":"AWS Timestream","description":"Write records and execute queries on AWS time-series database","deprecated":false,"firstVersion":"4.1.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.timestream.Timestream2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-timestream","version":"4.8.2","scheme":"aws2-timestream","extendsScheme":"","syntax":"aws2-timestream:clientT [...]
+{"component":{"kind":"component","name":"aws2-timestream","title":"AWS Timestream","description":"Write records and execute queries on AWS time-series database","deprecated":false,"firstVersion":"4.1.0","label":"cloud,database","javaType":"org.apache.camel.component.aws2.timestream.Timestream2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-timestream","version":"4.10.0-SNAPSHOT","scheme":"aws2-timestream","extendsScheme":"","syntax":"aws2-timestre [...]
,
-{"component":{"kind":"component","name":"aws2-translate","title":"AWS Translate","description":"Translate texts using AWS Translate and AWS SDK version 2.x.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.translate.Translate2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-translate","version":"4.8.2","scheme":"aws2-translate","extendsScheme":"","syntax":"aws2-translate:label","async [...]
+{"component":{"kind":"component","name":"aws2-translate","title":"AWS Translate","description":"Translate texts using AWS Translate and AWS SDK version 2.x.","deprecated":false,"firstVersion":"3.1.0","label":"cloud,management","javaType":"org.apache.camel.component.aws2.translate.Translate2Component","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-aws2-translate","version":"4.10.0-SNAPSHOT","scheme":"aws2-translate","extendsScheme":"","syntax":"aws2-translate:lab [...]
,
-{"component":{"kind":"component","name":"azure-cosmosdb","title":"Azure CosmosDB","description":"To read and write records to the CosmosDB database on Azure cloud platform.","deprecated":false,"firstVersion":"3.10.0","label":"cloud,database","javaType":"org.apache.camel.component.azure.cosmosdb.CosmosDbComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-cosmosdb","version":"4.8.2","scheme":"azure-cosmosdb","extendsScheme":"","syntax":"azure-cosmosdb: [...]
+{"component":{"kind":"component","name":"azure-cosmosdb","title":"Azure CosmosDB","description":"To read and write records to the CosmosDB database on Azure cloud platform.","deprecated":false,"firstVersion":"3.10.0","label":"cloud,database","javaType":"org.apache.camel.component.azure.cosmosdb.CosmosDbComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-cosmosdb","version":"4.10.0-SNAPSHOT","scheme":"azure-cosmosdb","extendsScheme":"","syntax":"azure [...]
,
-{"component":{"kind":"component","name":"azure-eventhubs","title":"Azure Event Hubs","description":"Send and receive events to/from Azure Event Hubs using AMQP protocol.","deprecated":false,"firstVersion":"3.5.0","label":"cloud,messaging","javaType":"org.apache.camel.component.azure.eventhubs.EventHubsComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-eventhubs","version":"4.8.2","scheme":"azure-eventhubs","extendsScheme":"","syntax":"azure-eventhub [...]
+{"component":{"kind":"component","name":"azure-eventhubs","title":"Azure Event Hubs","description":"Send and receive events to/from Azure Event Hubs using AMQP protocol.","deprecated":false,"firstVersion":"3.5.0","label":"cloud,messaging","javaType":"org.apache.camel.component.azure.eventhubs.EventHubsComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-eventhubs","version":"4.10.0-SNAPSHOT","scheme":"azure-eventhubs","extendsScheme":"","syntax":"azur [...]
,
-{"component":{"kind":"component","name":"azure-files","title":"Azure Files","description":"Send and receive files to Azure storage file share","deprecated":false,"firstVersion":"3.22.0","label":"cloud,file","javaType":"org.apache.camel.component.file.azure.FilesComponent","supportLevel":"Preview","groupId":"org.apache.camel","artifactId":"camel-azure-files","version":"4.8.2","scheme":"azure-files","extendsScheme":"file","syntax":"azure-files:account/share","async":false,"api":false,"cons [...]
+{"component":{"kind":"component","name":"azure-files","title":"Azure Files","description":"Send and receive files to Azure storage file share","deprecated":false,"firstVersion":"3.22.0","label":"cloud,file","javaType":"org.apache.camel.component.file.azure.FilesComponent","supportLevel":"Preview","groupId":"org.apache.camel","artifactId":"camel-azure-files","version":"4.10.0-SNAPSHOT","scheme":"azure-files","extendsScheme":"file","syntax":"azure-files:account/share","async":false,"api":f [...]
,
-{"component":{"kind":"component","name":"azure-key-vault","title":"Azure Key Vault","description":"Manage secrets and keys in Azure Key Vault Service","deprecated":false,"firstVersion":"3.17.0","label":"cloud,cloud","javaType":"org.apache.camel.component.azure.key.vault.KeyVaultComponent","supportLevel":"Stable","metadata":{"vault":"azure-key-vault"},"groupId":"org.apache.camel","artifactId":"camel-azure-key-vault","version":"4.8.2","scheme":"azure-key-vault","extendsScheme":"","syntax": [...]
+{"component":{"kind":"component","name":"azure-key-vault","title":"Azure Key Vault","description":"Manage secrets and keys in Azure Key Vault Service","deprecated":false,"firstVersion":"3.17.0","label":"cloud,cloud","javaType":"org.apache.camel.component.azure.key.vault.KeyVaultComponent","supportLevel":"Stable","metadata":{"vault":"azure-key-vault"},"groupId":"org.apache.camel","artifactId":"camel-azure-key-vault","version":"4.10.0-SNAPSHOT","scheme":"azure-key-vault","extendsScheme":"" [...]
,
-{"component":{"kind":"component","name":"azure-servicebus","title":"Azure ServiceBus","description":"Send and receive messages to/from Azure Service Bus.","deprecated":false,"firstVersion":"3.12.0","label":"cloud,messaging","javaType":"org.apache.camel.component.azure.servicebus.ServiceBusComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-servicebus","version":"4.8.2","scheme":"azure-servicebus","extendsScheme":"","syntax":"azure-servicebus:topicOrQ [...]
+{"component":{"kind":"component","name":"azure-servicebus","title":"Azure ServiceBus","description":"Send and receive messages to/from Azure Service Bus.","deprecated":false,"firstVersion":"3.12.0","label":"cloud,messaging","javaType":"org.apache.camel.component.azure.servicebus.ServiceBusComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-servicebus","version":"4.10.0-SNAPSHOT","scheme":"azure-servicebus","extendsScheme":"","syntax":"azure-servicebu [...]
,
-{"component":{"kind":"component","name":"azure-storage-blob","title":"Azure Storage Blob Service","description":"Store and retrieve blobs from Azure Storage Blob Service.","deprecated":false,"firstVersion":"3.3.0","label":"cloud,file","javaType":"org.apache.camel.component.azure.storage.blob.BlobComponent","supportLevel":"Stable","groupId":"org.apache.camel","artifactId":"camel-azure-storage-blob","version":"4.8.2","scheme":"azure-storage-blob","extendsScheme":"","syntax":"azure-storage- [...]
... 6095 lines suppressed ...