From e2e14beae1e3d37fe0394aff1015f47d64d152a0 Mon Sep 17 00:00:00 2001 From: Guilherme Caponetto <638737+caponetto@users.noreply.github.com> Date: Mon, 27 Nov 2023 06:41:15 -0300 Subject: [PATCH] KOGITO-9935: Extract common consumer runtime tools code to a reusable package (#2066) Co-authored-by: Paulo Martins --- .../src/gatewayApi/apis.tsx | 7 + .../env/index.js | 27 + .../jest.config.js | 38 + .../package.json | 53 + .../src}/CloudEventForm/CloudEventForm.tsx | 51 +- .../CloudEventForm/CloudEventFormContext.ts | 0 .../CloudEventFormContextProvider.tsx | 17 +- .../CloudEventFormGatewayApi.ts | 4 +- .../src}/CloudEventForm/index.ts | 3 +- .../CloudEventFormContainer.tsx | 85 ++ .../src/CloudEventFormContainer}/index.ts | 4 +- .../WorkflowDefinitionListContext.ts | 0 .../WorkflowDefinitionListContextProvider.tsx | 9 +- .../WorkflowDefinitionListGatewayApi.ts | 0 .../src}/WorkflowDefinitionList/index.ts | 2 +- .../WorkflowDefinitionListContainer.tsx | 29 +- .../WorkflowDefinitionListContainer/index.ts | 20 + .../WorkflowDetails/WorkflowDetailsContext.ts | 0 .../WorkflowDetailsContextProvider.tsx | 14 +- .../WorkflowDetailsGatewayApi.ts | 4 +- .../WorkflowDetails/WorkflowDetailsQueries.ts | 34 +- .../src}/WorkflowDetails/index.ts | 2 +- .../WorkflowDetailsContainer.tsx | 16 +- .../src/WorkflowDetailsContainer/index.ts | 20 + .../src}/WorkflowForm/WorkflowFormContext.ts | 0 .../WorkflowFormContextProvider.tsx | 17 +- .../WorkflowForm/WorkflowFormGatewayApi.ts | 4 +- .../src}/WorkflowForm/index.ts | 2 +- .../WorkflowFormContainer.tsx | 70 + .../src/WorkflowFormContainer/index.ts | 20 + .../src}/WorkflowList/WorkflowListContext.ts | 0 .../WorkflowListContextProvider.tsx | 18 +- .../WorkflowList/WorkflowListGatewayApi.ts | 2 +- .../src}/WorkflowList/WorkflowListQueries.ts | 22 +- .../src}/WorkflowList/index.ts | 2 +- .../WorkflowListContainer.tsx | 39 +- .../src/WorkflowListContainer/index.ts | 20 + .../tests/__mocks__/styleMock.js | 20 + .../tests/jest.setup.ts | 20 + .../tsconfig.json | 12 + .../serverless-logic-web-tools/package.json | 1 + .../serverless-logic-web-tools/src/App.tsx | 20 +- .../src/homepage/routes/HomePageRoutes.tsx | 10 +- .../WebToolsCloudEventFormContextProvider.tsx | 37 + ...sWorkflowDefinitionListContextProvider.tsx | 32 + ...WebToolsWorkflowDetailsContextProvider.tsx | 37 + .../WebToolsWorkflowFormContextProvider.tsx | 37 + .../WebToolsWorkflowListContextProvider.tsx | 37 + .../pages/RuntimeToolsTriggerCloudEvent.tsx | 112 ++ .../pages/RuntimeToolsWorkflowDefinitions.tsx | 67 + .../RuntimeToolsWorkflowDetails.tsx | 93 +- .../pages/RuntimeToolsWorkflowForm.tsx | 161 +++ .../pages/RuntimeToolsWorkflowInstances.tsx | 88 ++ .../CloudEventFormContainer.tsx | 137 -- .../RuntimeToolsTriggerCloudEvent.tsx | 50 - .../RuntimeToolsWorkflowDefinitions.tsx | 52 - .../workflows/RuntimeToolsWorkflowForm.tsx | 81 -- .../RuntimeToolsWorkflowInstances.tsx | 52 - .../WorkflowDetailsContextProvider.tsx | 61 - .../WorkflowDetailsGatewayApi.ts | 176 --- .../WorkflowDetailsContainer.tsx | 62 - .../WorkflowFormContainer.tsx | 137 -- .../WorkflowListContextProvider.tsx | 61 - .../sonataflow-deployment-webapp/package.json | 1 + .../sonataflow-deployment-webapp/src/App.tsx | 8 +- .../navigation/RuntimeToolsRoutesSwitch.tsx | 4 +- ...loymentWorkflowDetailsContextProvider.tsx} | 16 +- ...DeploymentWorkflowListContextProvider.tsx} | 13 +- .../RuntimeToolsWorkflowDetails.tsx | 25 +- .../RuntimeToolsWorkflowInstances.tsx | 19 +- .../WorkflowDetails/WorkflowDetailsQueries.ts | 128 -- .../workflows/WorkflowDetails/index.ts | 22 - .../WorkflowList/WorkflowListGatewayApi.ts | 185 --- .../WorkflowList/WorkflowListQueries.ts | 90 -- .../WorkflowListContainer.tsx | 64 - pnpm-lock.yaml | 1174 ++++++++--------- repo/graph.dot | 6 +- repo/graph.json | 15 +- 78 files changed, 1870 insertions(+), 2208 deletions(-) create mode 100644 packages/runtime-tools-webapp-components/env/index.js create mode 100644 packages/runtime-tools-webapp-components/jest.config.js create mode 100644 packages/runtime-tools-webapp-components/package.json rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/CloudEventForm/CloudEventForm.tsx (69%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/CloudEventForm/CloudEventFormContext.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/CloudEventForm/CloudEventFormContextProvider.tsx (72%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/CloudEventForm/CloudEventFormGatewayApi.ts (98%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/CloudEventForm/index.ts (96%) create mode 100644 packages/runtime-tools-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList => runtime-tools-webapp-components/src/CloudEventFormContainer}/index.ts (81%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDefinitionList/WorkflowDefinitionListContext.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx (83%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDefinitionList/index.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx (74%) create mode 100644 packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/index.ts rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetails/WorkflowDetailsContext.ts (100%) rename packages/{sonataflow-deployment-webapp/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetails/WorkflowDetailsContextProvider.tsx (83%) rename packages/{sonataflow-deployment-webapp/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetails/WorkflowDetailsGatewayApi.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetails/WorkflowDetailsQueries.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetails/index.ts (100%) rename packages/{sonataflow-deployment-webapp/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx (80%) create mode 100644 packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/index.ts rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowForm/WorkflowFormContext.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowForm/WorkflowFormContextProvider.tsx (71%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowForm/WorkflowFormGatewayApi.ts (97%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowForm/index.ts (100%) create mode 100644 packages/runtime-tools-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx create mode 100644 packages/runtime-tools-webapp-components/src/WorkflowFormContainer/index.ts rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowList/WorkflowListContext.ts (100%) rename packages/{sonataflow-deployment-webapp/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowList/WorkflowListContextProvider.tsx (83%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowList/WorkflowListGatewayApi.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowList/WorkflowListQueries.ts (100%) rename packages/{sonataflow-deployment-webapp/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowList/index.ts (100%) rename packages/{serverless-logic-web-tools/src/runtimeTools/workflows => runtime-tools-webapp-components/src}/WorkflowListContainer/WorkflowListContainer.tsx (67%) create mode 100644 packages/runtime-tools-webapp-components/src/WorkflowListContainer/index.ts create mode 100644 packages/runtime-tools-webapp-components/tests/__mocks__/styleMock.js create mode 100644 packages/runtime-tools-webapp-components/tests/jest.setup.ts create mode 100644 packages/runtime-tools-webapp-components/tsconfig.json create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDetailsContextProvider.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowListContextProvider.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx rename packages/serverless-logic-web-tools/src/runtimeTools/{workflows => pages}/RuntimeToolsWorkflowDetails.tsx (56%) create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowForm.tsx create mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventFormContainer/CloudEventFormContainer.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsTriggerCloudEvent.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDefinitions.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowForm.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowFormContainer/WorkflowFormContainer.tsx delete mode 100644 packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx rename packages/sonataflow-deployment-webapp/src/runtimeTools/{workflows/WorkflowList/WorkflowListContext.ts => contexts/DeploymentWorkflowDetailsContextProvider.tsx} (63%) rename packages/sonataflow-deployment-webapp/src/runtimeTools/{workflows/WorkflowDetails/WorkflowDetailsContext.ts => contexts/DeploymentWorkflowListContextProvider.tsx} (64%) rename packages/sonataflow-deployment-webapp/src/runtimeTools/{workflows => pages}/RuntimeToolsWorkflowDetails.tsx (82%) rename packages/sonataflow-deployment-webapp/src/runtimeTools/{workflows => pages}/RuntimeToolsWorkflowInstances.tsx (82%) delete mode 100644 packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts delete mode 100644 packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/index.ts delete mode 100644 packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts delete mode 100644 packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts delete mode 100644 packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx diff --git a/packages/runtime-tools-gateway-api/src/gatewayApi/apis.tsx b/packages/runtime-tools-gateway-api/src/gatewayApi/apis.tsx index 84efdb6d6d1..ab155061dfb 100644 --- a/packages/runtime-tools-gateway-api/src/gatewayApi/apis.tsx +++ b/packages/runtime-tools-gateway-api/src/gatewayApi/apis.tsx @@ -638,6 +638,13 @@ export const getCustomWorkflowSchemaFromApi = async ( schema = (api as any).components.schemas[workflowName + "_input"]; } + // Components can contain the content of internal refs ($ref) + // This keeps the refs working while avoiding circular refs with the workflow itself + if (schema) { + const { [workflowName + "_input"]: _, components } = (api as any).components ?? {}; + (schema as any)["components"] = components; + } + return schema ?? null; }; diff --git a/packages/runtime-tools-webapp-components/env/index.js b/packages/runtime-tools-webapp-components/env/index.js new file mode 100644 index 00000000000..61bc742bd66 --- /dev/null +++ b/packages/runtime-tools-webapp-components/env/index.js @@ -0,0 +1,27 @@ +/* + * 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. + */ + +const { varsWithName, composeEnv } = require("@kie-tools-scripts/build-env"); + +module.exports = composeEnv([require("@kie-tools/root-env/env")], { + vars: varsWithName({}), + get env() { + return {}; + }, +}); diff --git a/packages/runtime-tools-webapp-components/jest.config.js b/packages/runtime-tools-webapp-components/jest.config.js new file mode 100644 index 00000000000..6240ed76eb3 --- /dev/null +++ b/packages/runtime-tools-webapp-components/jest.config.js @@ -0,0 +1,38 @@ +/* + * 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. + */ + +module.exports = { + globals: { + "ts-jest": { + tsconfig: "/tsconfig.json", + }, + }, + reporters: ["default", ["jest-junit", { outputFile: "./dist-tests/junit-report.xml" }]], + moduleDirectories: ["node_modules"], + moduleFileExtensions: ["js", "jsx", "ts", "tsx"], + testRegex: "/tests/.*\\.test\\.(jsx?|tsx?)$", + transform: { + "^.+\\.jsx?$": ["babel-jest", { presets: [["@babel/env", { targets: { node: "current" } }], "@babel/react"] }], + "^.+\\.tsx?$": "ts-jest", + }, + moduleNameMapper: { + "\\.(css|less|sass|scss)$": "/tests/__mocks__/styleMock.js", + }, + setupFilesAfterEnv: ["./tests/jest.setup.ts"], +}; diff --git a/packages/runtime-tools-webapp-components/package.json b/packages/runtime-tools-webapp-components/package.json new file mode 100644 index 00000000000..6061b01fe53 --- /dev/null +++ b/packages/runtime-tools-webapp-components/package.json @@ -0,0 +1,53 @@ +{ + "name": "@kie-tools/runtime-tools-webapp-components", + "version": "0.0.0", + "description": "", + "license": "Apache-2.0", + "keywords": [], + "homepage": "https://github.com/kiegroup/kie-tools", + "repository": { + "type": "git", + "url": "https://github.com/kiegroup/kie-tools.git" + }, + "bugs": { + "url": "https://github.com/kiegroup/kie-tools/issues" + }, + "types": "./dist/index.d.ts", + "main": "dist/index.js", + "files": [ + "dist" + ], + "scripts": { + "build:dev": "rimraf dist && tsc -p tsconfig.json", + "build:prod": "pnpm lint && rimraf dist && tsc -p tsconfig.json && pnpm test", + "lint": "run-script-if --bool \"$(build-env linters.run)\" --then \"kie-tools--eslint ./src\"", + "test": "run-script-if --ignore-errors \"$(build-env tests.ignoreFailures)\" --bool \"$(build-env tests.run)\" --then \"jest --silent --verbose --passWithNoTests\"" + }, + "dependencies": { + "@kie-tools/runtime-tools-components": "workspace:*", + "@kie-tools/runtime-tools-enveloped-components": "workspace:*", + "@kie-tools/runtime-tools-gateway-api": "workspace:*", + "@patternfly/react-core": "^4.276.6", + "apollo-cache-inmemory": "1.6.6", + "apollo-client": "2.6.10", + "apollo-link-http": "1.5.17", + "react": "^17.0.2" + }, + "devDependencies": { + "@babel/core": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-react": "^7.16.0", + "@kie-tools/eslint": "workspace:*", + "@kie-tools/root-env": "workspace:*", + "@kie-tools/tsconfig": "workspace:*", + "@testing-library/jest-dom": "^5.16.1", + "@testing-library/react": "^11.2.6", + "@types/jest": "^26.0.23", + "@types/react": "^17.0.6", + "@types/testing-library__jest-dom": "^5.9.1", + "@types/testing-library__react": "^9.1.2", + "jest": "^26.6.3", + "rimraf": "^3.0.2", + "typescript": "^4.6.2" + } +} \ No newline at end of file diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventForm.tsx b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventForm.tsx similarity index 69% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventForm.tsx rename to packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventForm.tsx index 9c2f9829d00..d4d2e2ddc6c 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventForm.tsx +++ b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventForm.tsx @@ -17,34 +17,44 @@ * under the License. */ -import React, { useCallback, useEffect, useMemo, useState } from "react"; -import { Card, CardBody } from "@patternfly/react-core/dist/js/components/Card"; -import { PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import React, { useEffect, useState } from "react"; +import { FormNotification, Notification } from "@kie-tools/runtime-tools-components/dist/components/FormNotification"; import { OUIAProps, - ouiaPageTypeAndObjectId, componentOuiaProps, + ouiaPageTypeAndObjectId, } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { FormNotification, Notification } from "@kie-tools/runtime-tools-components/dist/components/FormNotification"; -import { useHistory } from "react-router-dom"; -import CloudEventFormContainer from "../CloudEventFormContainer/CloudEventFormContainer"; +import { Card, CardBody } from "@patternfly/react-core/dist/js/components/Card"; +import { PageSection } from "@patternfly/react-core/dist/js/components/Page"; import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import { CloudEventFormContainer } from "../CloudEventFormContainer/CloudEventFormContainer"; + +interface CloudEventFormProps { + instanceId?: string; + cloudEventSource: string; + isTriggerNewInstance: boolean; + onStartWorkflowError: (error: any) => void; + onTriggerCloudEventSuccess: () => void; + onTriggerStartCloudEventSuccess: (businessKey: string) => void; +} export enum CloudEventPageSource { DEFINITIONS = "definitions", INSTANCES = "instances", } -const CloudEventForm: React.FC = ({ ouiaId, ouiaSafe }) => { +export const CloudEventForm: React.FC = ({ + instanceId, + isTriggerNewInstance, + cloudEventSource, + onStartWorkflowError, + onTriggerCloudEventSuccess, + onTriggerStartCloudEventSuccess, + ouiaId, + ouiaSafe, +}) => { const [notification, setNotification] = useState(); - const history = useHistory(); - - const isTriggerNewInstance = useMemo(() => { - const source = (history?.location?.state as any)["source"]; - return source === CloudEventPageSource.DEFINITIONS; - }, [history]); - useEffect(() => { return ouiaPageTypeAndObjectId("trigger-cloud-event-form"); }, []); @@ -69,12 +79,17 @@ const CloudEventForm: React.FC = ({ ouiaId, ouiaSafe }) => { > - + ); }; - -export default CloudEventForm; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormContext.ts b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormContext.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormContext.ts rename to packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormContext.ts diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormContextProvider.tsx b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx similarity index 72% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormContextProvider.tsx rename to packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx index 622a9ff9cd0..842e6a3bb2e 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormContextProvider.tsx +++ b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx @@ -20,20 +20,15 @@ import React, { useMemo } from "react"; import CloudEventFormContext from "./CloudEventFormContext"; import { CloudEventFormGatewayApiImpl } from "./CloudEventFormGatewayApi"; -import { useSettings } from "../../../settings/SettingsContext"; -import { useEnv } from "../../../env/EnvContext"; -export function CloudEventFormContextProvider(props: React.PropsWithChildren<{}>) { - const settings = useSettings(); - const { env } = useEnv(); +export function CloudEventFormContextProvider( + props: React.PropsWithChildren<{ proxyEndpoint?: string; kogitoServiceUrl: string }> +) { + const { proxyEndpoint, kogitoServiceUrl } = props; const gatewayApi = useMemo( - () => - new CloudEventFormGatewayApiImpl( - settings.runtimeTools.config.kogitoServiceUrl, - env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL - ), - [settings, env] + () => new CloudEventFormGatewayApiImpl(kogitoServiceUrl, proxyEndpoint), + [proxyEndpoint, kogitoServiceUrl] ); return {props.children}; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormGatewayApi.ts b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts similarity index 98% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormGatewayApi.ts rename to packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts index 8d9ebd23ef7..eac2958b274 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/CloudEventFormGatewayApi.ts +++ b/packages/runtime-tools-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts @@ -17,8 +17,8 @@ * under the License. */ -import { CloudEventRequest } from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { triggerCloudEvent, triggerStartCloudEvent } from "@kie-tools/runtime-tools-gateway-api/dist/gatewayApi"; +import { CloudEventRequest } from "@kie-tools/runtime-tools-gateway-api/dist/types"; export interface CloudEventFormGatewayApi { triggerStartCloudEvent(event: CloudEventRequest): Promise; @@ -26,7 +26,7 @@ export interface CloudEventFormGatewayApi { } export class CloudEventFormGatewayApiImpl implements CloudEventFormGatewayApi { - constructor(private readonly baseUrl: string, private readonly proxyEndpoint: string) {} + constructor(private readonly baseUrl: string, private readonly proxyEndpoint?: string) {} async triggerStartCloudEvent(event: CloudEventRequest): Promise { const response = await triggerStartCloudEvent(event, this.baseUrl, this.proxyEndpoint); diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/index.ts b/packages/runtime-tools-webapp-components/src/CloudEventForm/index.ts similarity index 96% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/index.ts rename to packages/runtime-tools-webapp-components/src/CloudEventForm/index.ts index 88482d690c1..3ff7ab0cc38 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventForm/index.ts +++ b/packages/runtime-tools-webapp-components/src/CloudEventForm/index.ts @@ -17,6 +17,7 @@ * under the License. */ -export { CloudEventFormGatewayApi } from "./CloudEventFormGatewayApi"; export * from "./CloudEventFormContext"; +export * from "./CloudEventForm"; export { default as CloudEventFormContextProvider } from "./CloudEventFormContextProvider"; +export { CloudEventFormGatewayApi } from "./CloudEventFormGatewayApi"; diff --git a/packages/runtime-tools-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx b/packages/runtime-tools-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx new file mode 100644 index 00000000000..76f717922d3 --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx @@ -0,0 +1,85 @@ +/* + * 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, { useCallback } from "react"; +import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; +import { useCloudEventFormGatewayApi } from "../CloudEventForm"; +import { EmbeddedCloudEventForm } from "@kie-tools/runtime-tools-enveloped-components/dist/cloudEventForm"; +import { CloudEventRequest } from "@kie-tools/runtime-tools-gateway-api/dist/types"; + +interface CloudEventFormContainerProps { + instanceId?: string; + cloudEventSource: string; + isTriggerNewInstance: boolean; + onStartWorkflowError: (error: any) => void; + onTriggerCloudEventSuccess: () => void; + onTriggerStartCloudEventSuccess: (businessKey: string) => void; +} + +export const CloudEventFormContainer: React.FC = ({ + instanceId, + cloudEventSource, + isTriggerNewInstance, + onStartWorkflowError, + onTriggerCloudEventSuccess, + onTriggerStartCloudEventSuccess, + ouiaId, + ouiaSafe, +}) => { + const gatewayApi = useCloudEventFormGatewayApi(); + + const triggerStartCloudEvent = useCallback( + (event: CloudEventRequest) => { + return gatewayApi + .triggerStartCloudEvent(event) + .then((businessKey) => { + onTriggerStartCloudEventSuccess(businessKey); + }) + .catch((error) => onStartWorkflowError(error)); + }, + [gatewayApi, onStartWorkflowError, onTriggerStartCloudEventSuccess] + ); + + const triggerCloudEvent = useCallback( + (event: CloudEventRequest) => { + return gatewayApi + .triggerCloudEvent(event) + .then((_response) => { + onTriggerCloudEventSuccess(); + }) + .catch((error) => onStartWorkflowError(error)); + }, + [gatewayApi, onStartWorkflowError, onTriggerCloudEventSuccess] + ); + + return ( + { + const doTrigger = isTriggerNewInstance ? triggerStartCloudEvent : triggerCloudEvent; + return doTrigger(event); + }, + }} + /> + ); +}; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/index.ts b/packages/runtime-tools-webapp-components/src/CloudEventFormContainer/index.ts similarity index 81% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/index.ts rename to packages/runtime-tools-webapp-components/src/CloudEventFormContainer/index.ts index 7298d8e07f4..b1bbcf84f94 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/index.ts +++ b/packages/runtime-tools-webapp-components/src/CloudEventFormContainer/index.ts @@ -17,6 +17,4 @@ * under the License. */ -export { WorkflowListGatewayApi } from "./WorkflowListGatewayApi"; -export * from "./WorkflowListContext"; -export { WorkflowListContextProvider } from "./WorkflowListContextProvider"; +export * from "./CloudEventFormContainer"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListContext.ts b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContext.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListContext.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContext.ts diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx similarity index 83% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx index 8918e9d9326..526004ed04c 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx @@ -20,14 +20,13 @@ import React, { useMemo } from "react"; import { WorkflowDefinitionListContext } from "./WorkflowDefinitionListContext"; import { WorkflowDefinitionListGatewayApiImpl } from "./WorkflowDefinitionListGatewayApi"; -import { useSettings } from "../../../settings/SettingsContext"; -export function WorkflowDefinitionListContextProvider(props: React.PropsWithChildren<{}>) { - const settings = useSettings(); +export function WorkflowDefinitionListContextProvider(props: React.PropsWithChildren<{ kogitoServiceUrl: string }>) { + const { kogitoServiceUrl } = props; const gatewayApiImpl = useMemo(() => { - return new WorkflowDefinitionListGatewayApiImpl(settings.runtimeTools.config.kogitoServiceUrl, "q/openapi.json"); - }, [settings]); + return new WorkflowDefinitionListGatewayApiImpl(kogitoServiceUrl, "q/openapi.json"); + }, [kogitoServiceUrl]); return ( diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/index.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/index.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/index.ts index 42e1c253a8a..cdaba08f67b 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionList/index.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionList/index.ts @@ -17,6 +17,6 @@ * under the License. */ -export { WorkflowDefinitionListGatewayApi } from "./WorkflowDefinitionListGatewayApi"; export * from "./WorkflowDefinitionListContext"; export { default as WorkflowDefinitionListContextProvider } from "./WorkflowDefinitionListContextProvider"; +export { WorkflowDefinitionListGatewayApi } from "./WorkflowDefinitionListGatewayApi"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx similarity index 74% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx index 7ef287c5df9..bb0946cd9b7 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx @@ -18,36 +18,33 @@ */ import React, { useEffect } from "react"; -import { useHistory } from "react-router-dom"; import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; +import { EmbeddedWorkflowDefinitionList } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowDefinitions"; import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { useWorkflowDefinitionListGatewayApi, WorkflowDefinitionListGatewayApi } from "../WorkflowDefinitionList"; -import { EmbeddedWorkflowDefinitionList } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowDefinitions"; -import { routes } from "../../../navigation/Routes"; -const WorkflowDefinitionListContainer: React.FC = ({ ouiaId, ouiaSafe }) => { - const history = useHistory(); +interface WorkflowDefinitionListContainerProps { + onOpenWorkflowForm: (workflowDefinition: WorkflowDefinition) => void; +} + +export const WorkflowDefinitionListContainer: React.FC = ({ + onOpenWorkflowForm, + ouiaId, + ouiaSafe, +}) => { const gatewayApi: WorkflowDefinitionListGatewayApi = useWorkflowDefinitionListGatewayApi(); useEffect(() => { const onOpenDefinitionUnsubscriber = gatewayApi.onOpenWorkflowFormListen({ onOpen(workflowDefinition: WorkflowDefinition) { - history.push({ - pathname: routes.runtimeToolsWorkflowForm.path({ workflowName: workflowDefinition.workflowName }), - state: { - workflowDefinition: { - workflowName: workflowDefinition.workflowName, - endpoint: workflowDefinition.endpoint, - }, - }, - }); + onOpenWorkflowForm(workflowDefinition); }, }); return () => { onOpenDefinitionUnsubscriber.unSubscribe(); }; - }, []); + }, [gatewayApi, onOpenWorkflowForm]); return ( = ({ ouiaId, ouiaSafe /> ); }; - -export default WorkflowDefinitionListContainer; diff --git a/packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/index.ts new file mode 100644 index 00000000000..32f4d77461a --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/WorkflowDefinitionListContainer/index.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +export * from "./WorkflowDefinitionListContainer"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContext.ts b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsContext.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContext.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsContext.ts diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsContextProvider.tsx similarity index 83% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsContextProvider.tsx index 1c1da6aa643..e32d376d3b8 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsContextProvider.tsx @@ -24,17 +24,21 @@ import { WorkflowDetailsGatewayApiImpl } from "./WorkflowDetailsGatewayApi"; import { GraphQLWorkflowDetailsQueries } from "./WorkflowDetailsQueries"; import { HttpLink } from "apollo-link-http"; import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory"; -import { useApp } from "../../../context/AppContext"; -export function WorkflowDetailsContextProvider(props: React.PropsWithChildren<{}>) { - const app = useApp(); +export function WorkflowDetailsContextProvider( + props: React.PropsWithChildren<{ proxyEndpoint?: string; dataIndexUrl: string }> +) { + const { proxyEndpoint, dataIndexUrl } = props; const httpLink = useMemo( () => new HttpLink({ - uri: app.data.dataIndexUrl, + uri: proxyEndpoint || dataIndexUrl, + headers: { + ...(proxyEndpoint ? { "Target-Url": dataIndexUrl } : {}), + }, }), - [app] + [dataIndexUrl, proxyEndpoint] ); const cache = useMemo(() => new InMemoryCache(), []); diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsGatewayApi.ts similarity index 100% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsGatewayApi.ts index 2d3dfb8905d..60dd102be7d 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsGatewayApi.ts @@ -18,11 +18,11 @@ */ import { - WorkflowInstance, Job, JobCancel, - TriggerableNode, NodeInstance, + TriggerableNode, + WorkflowInstance, } from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { WorkflowDetailsQueries } from "./WorkflowDetailsQueries"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsQueries.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsQueries.ts index be93174c72a..6687bc0f4c8 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetails/WorkflowDetailsQueries.ts @@ -17,28 +17,28 @@ * under the License. */ -import { ApolloClient } from "apollo-client"; import { - WorkflowInstance, - Job, - JobCancel, - TriggerableNode, - NodeInstance, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { - handleWorkflowAbort, - handleWorkflowSkip, - handleWorkflowRetry, - jobCancel, + getJobs, + getTriggerableNodes, + getWorkflowDetails, handleJobReschedule, - handleNodeTrigger, - handleWorkflowVariableUpdate, handleNodeInstanceCancel, handleNodeInstanceRetrigger, - getWorkflowDetails, - getJobs, - getTriggerableNodes, + handleNodeTrigger, + handleWorkflowAbort, + handleWorkflowRetry, + handleWorkflowSkip, + handleWorkflowVariableUpdate, + jobCancel, } from "@kie-tools/runtime-tools-gateway-api/dist/gatewayApi"; +import { + Job, + JobCancel, + NodeInstance, + TriggerableNode, + WorkflowInstance, +} from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { ApolloClient } from "apollo-client"; export interface WorkflowDetailsQueries { getWorkflowDetails(id: string): Promise; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowDetails/index.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/index.ts rename to packages/runtime-tools-webapp-components/src/WorkflowDetails/index.ts index e70ebd3e787..d6fe7a89a79 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/index.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetails/index.ts @@ -17,6 +17,6 @@ * under the License. */ -export { WorkflowDetailsGatewayApi } from "./WorkflowDetailsGatewayApi"; export * from "./WorkflowDetailsContext"; export { WorkflowDetailsContextProvider } from "./WorkflowDetailsContextProvider"; +export { WorkflowDetailsGatewayApi } from "./WorkflowDetailsGatewayApi"; diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx b/packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx similarity index 80% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx index ba3e1c8dcc5..2f5b89f5895 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx @@ -18,36 +18,34 @@ */ import React, { useEffect } from "react"; -import { useHistory } from "react-router-dom"; import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; import { EmbeddedWorkflowDetails } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowDetails/embedded"; -import { WorkflowDetailsGatewayApi, useWorkflowDetailsGatewayApi } from "../WorkflowDetails"; import { WorkflowInstance } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { routes } from "../../../routes"; +import { useWorkflowDetailsGatewayApi, WorkflowDetailsGatewayApi } from "../WorkflowDetails"; interface WorkflowListContainerProps { workflowInstance: WorkflowInstance; + onOpenWorkflowInstanceDetails: (workflowId: string) => void; } -const WorkflowDetailsContainer: React.FC = ({ +export const WorkflowDetailsContainer: React.FC = ({ workflowInstance, + onOpenWorkflowInstanceDetails, ouiaId, ouiaSafe, }) => { - const history = useHistory(); const gatewayApi: WorkflowDetailsGatewayApi = useWorkflowDetailsGatewayApi(); useEffect(() => { const unSubscribeHandler = gatewayApi.onOpenWorkflowInstanceDetailsListener({ onOpen(id: string) { - history.push(`/`); - history.push(routes.runtimeTools.workflowDetails.path({ workflowId: id })); + onOpenWorkflowInstanceDetails(id); }, }); return () => { unSubscribeHandler.unSubscribe(); }; - }, []); + }, [onOpenWorkflowInstanceDetails, gatewayApi]); return ( /> ); }; - -export default WorkflowDetailsContainer; diff --git a/packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/index.ts new file mode 100644 index 00000000000..4c74d19184b --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/WorkflowDetailsContainer/index.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +export * from "./WorkflowDetailsContainer"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormContext.ts b/packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormContext.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormContext.ts rename to packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormContext.ts diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormContextProvider.tsx b/packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx similarity index 71% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormContextProvider.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx index 18616902110..b279883661e 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormContextProvider.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx @@ -20,20 +20,15 @@ import React, { useMemo } from "react"; import { WorkflowFormContext } from "./WorkflowFormContext"; import { WorkflowFormGatewayApiImpl } from "./WorkflowFormGatewayApi"; -import { useSettings } from "../../../settings/SettingsContext"; -import { useEnv } from "../../../env/EnvContext"; -export function WorkflowFormContextProvider(props: React.PropsWithChildren<{}>) { - const settings = useSettings(); - const { env } = useEnv(); +export function WorkflowFormContextProvider( + props: React.PropsWithChildren<{ proxyEndpoint?: string; kogitoServiceUrl: string }> +) { + const { proxyEndpoint, kogitoServiceUrl } = props; const gatewayApiImpl = useMemo(() => { - return new WorkflowFormGatewayApiImpl( - settings.runtimeTools.config.kogitoServiceUrl, - "q/openapi.json", - env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL - ); - }, [settings, env]); + return new WorkflowFormGatewayApiImpl(kogitoServiceUrl, "q/openapi.json", proxyEndpoint); + }, [kogitoServiceUrl, proxyEndpoint]); return {props.children}; } diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormGatewayApi.ts b/packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts similarity index 97% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormGatewayApi.ts rename to packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts index 31f45340fce..453fc0b5d0b 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/WorkflowFormGatewayApi.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts @@ -30,9 +30,9 @@ export class WorkflowFormGatewayApiImpl implements WorkflowFormGatewayApi { private businessKey: string; private readonly baseUrl: string; private readonly openApiPath: string; - private readonly proxyEndpoint: string; + private readonly proxyEndpoint?: string; - constructor(baseUrl: string, openApiPath: string, proxyEndpoint: string) { + constructor(baseUrl: string, openApiPath: string, proxyEndpoint?: string) { this.businessKey = ""; this.baseUrl = baseUrl; this.openApiPath = openApiPath; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowForm/index.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/index.ts rename to packages/runtime-tools-webapp-components/src/WorkflowForm/index.ts index bfc3c1c23fc..51b8d87e1e6 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowForm/index.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowForm/index.ts @@ -17,6 +17,6 @@ * under the License. */ -export { WorkflowFormGatewayApi } from "./WorkflowFormGatewayApi"; export * from "./WorkflowFormContext"; export { default as WorkflowFormContextProvider } from "./WorkflowFormContextProvider"; +export { WorkflowFormGatewayApi } from "./WorkflowFormGatewayApi"; diff --git a/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx b/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx new file mode 100644 index 00000000000..188eb6e5443 --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx @@ -0,0 +1,70 @@ +/* + * 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 from "react"; +import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; +import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { WorkflowFormGatewayApi, useWorkflowFormGatewayApi } from "../WorkflowForm"; +import { EmbeddedWorkflowForm } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowForm"; + +interface WorkflowFormContainerProps { + workflowDefinitionData: WorkflowDefinition; + onResetForm: () => void; + onStartWorkflowSuccess: (workflowId: string) => void; + onStartWorkflowError: (error: any) => void; +} +export const WorkflowFormContainer: React.FC = ({ + workflowDefinitionData, + onStartWorkflowSuccess, + onStartWorkflowError, + onResetForm, + ouiaId, + ouiaSafe, +}) => { + const gatewayApi: WorkflowFormGatewayApi = useWorkflowFormGatewayApi(); + + return ( + > { + return gatewayApi.getCustomWorkflowSchema(workflowDefinitionData.workflowName); + }, + async resetBusinessKey() { + onResetForm(); + }, + async startWorkflow(endpoint: string, data: Record): Promise { + return gatewayApi + .startWorkflow(endpoint, data) + .then((id: string) => { + onStartWorkflowSuccess(id); + }) + .catch((error: any) => { + onStartWorkflowError(error); + }); + }, + }} + targetOrigin={window.location.origin} + workflowDefinition={{ + workflowName: workflowDefinitionData.workflowName, + endpoint: workflowDefinitionData.endpoint, + }} + /> + ); +}; diff --git a/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/index.ts new file mode 100644 index 00000000000..eda617de86f --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/WorkflowFormContainer/index.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +export * from "./WorkflowFormContainer"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContext.ts b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListContext.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContext.ts rename to packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListContext.ts diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListContextProvider.tsx similarity index 83% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListContextProvider.tsx index 69c23a4d9fd..c5538e50b0e 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListContextProvider.tsx @@ -18,23 +18,27 @@ */ import React, { useMemo } from "react"; +import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory"; import { ApolloClient } from "apollo-client"; +import { HttpLink } from "apollo-link-http"; import { WorkflowListContext } from "./WorkflowListContext"; import { WorkflowListGatewayApiImpl } from "./WorkflowListGatewayApi"; import { GraphQLWorkflowListQueries } from "./WorkflowListQueries"; -import { HttpLink } from "apollo-link-http"; -import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory"; -import { useApp } from "../../../context/AppContext"; -export function WorkflowListContextProvider(props: React.PropsWithChildren<{}>) { - const app = useApp(); +export function WorkflowListContextProvider( + props: React.PropsWithChildren<{ proxyEndpoint?: string; dataIndexUrl: string }> +) { + const { proxyEndpoint, dataIndexUrl } = props; const httpLink = useMemo( () => new HttpLink({ - uri: app.data.dataIndexUrl, + uri: proxyEndpoint || dataIndexUrl, + headers: { + ...(proxyEndpoint ? { "Target-Url": dataIndexUrl } : {}), + }, }), - [app] + [dataIndexUrl, proxyEndpoint] ); const cache = useMemo(() => new InMemoryCache(), []); diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListGatewayApi.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts rename to packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListGatewayApi.ts index 9d4b1f2d636..8e37c9f1902 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListGatewayApi.ts @@ -19,10 +19,10 @@ import { BulkWorkflowInstanceActionResponse, + OperationType, WorkflowInstance, WorkflowInstanceFilter, WorkflowListSortBy, - OperationType, } from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { WorkflowListQueries } from "./WorkflowListQueries"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListQueries.ts similarity index 100% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts rename to packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListQueries.ts index d8dd1240c41..0d8d7f693a9 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowList/WorkflowListQueries.ts @@ -17,22 +17,22 @@ * under the License. */ -import { ApolloClient } from "apollo-client"; -import { - BulkWorkflowInstanceActionResponse, - WorkflowInstance, - WorkflowListSortBy, - WorkflowInstanceFilter, - OperationType, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { + getChildWorkflowInstances, + getWorkflowInstances, handleWorkflowAbort, handleWorkflowMultipleAction, - handleWorkflowSkip, handleWorkflowRetry, - getWorkflowInstances, - getChildWorkflowInstances, + handleWorkflowSkip, } from "@kie-tools/runtime-tools-gateway-api/dist/gatewayApi"; +import { + BulkWorkflowInstanceActionResponse, + OperationType, + WorkflowInstance, + WorkflowInstanceFilter, + WorkflowListSortBy, +} from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { ApolloClient } from "apollo-client"; export interface WorkflowListQueries { getWorkflowInstances( diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowList/index.ts similarity index 100% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/index.ts rename to packages/runtime-tools-webapp-components/src/WorkflowList/index.ts index 7298d8e07f4..ef21d1bfe11 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/index.ts +++ b/packages/runtime-tools-webapp-components/src/WorkflowList/index.ts @@ -17,6 +17,6 @@ * under the License. */ -export { WorkflowListGatewayApi } from "./WorkflowListGatewayApi"; export * from "./WorkflowListContext"; export { WorkflowListContextProvider } from "./WorkflowListContextProvider"; +export { WorkflowListGatewayApi } from "./WorkflowListGatewayApi"; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx b/packages/runtime-tools-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx similarity index 67% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx rename to packages/runtime-tools-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx index 114bbdb786d..78b6c1f8172 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx +++ b/packages/runtime-tools-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx @@ -18,59 +18,50 @@ */ import React, { useEffect } from "react"; -import { useHistory } from "react-router-dom"; import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; import { EmbeddedWorkflowList } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowList/embedded"; -import { WorkflowListGatewayApi, useWorkflowListGatewayApi } from "../WorkflowList"; import { WorkflowInstance, WorkflowListState } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { CloudEventPageSource } from "../CloudEventForm/CloudEventForm"; -import { routes } from "../../../navigation/Routes"; +import { useWorkflowListGatewayApi } from "../WorkflowList/WorkflowListContext"; +import { WorkflowListGatewayApi } from "../WorkflowList/WorkflowListGatewayApi"; interface WorkflowListContainerProps { initialState: WorkflowListState; + onOpenWorkflowDetails: (args: { workflowId: string; state: WorkflowListState }) => void; + onOpenTriggerCloudEvent?: () => void; + onOpenTriggerCloudEventForWorkflow?: (workflowId: string) => void; } -const WorkflowListContainer: React.FC = ({ +export const WorkflowListContainer: React.FC = ({ initialState, + onOpenWorkflowDetails, + onOpenTriggerCloudEvent, + onOpenTriggerCloudEventForWorkflow, ouiaId, ouiaSafe, }) => { - const history = useHistory(); const gatewayApi: WorkflowListGatewayApi = useWorkflowListGatewayApi(); useEffect(() => { const onOpenInstanceUnsubscriber = gatewayApi.onOpenWorkflowListen({ onOpen(workflow: WorkflowInstance) { - history.push({ - pathname: routes.runtimeToolsWorkflowDetails.path({ workflowId: workflow.id }), - state: gatewayApi.workflowListState, - }); + onOpenWorkflowDetails({ workflowId: workflow.id, state: gatewayApi.workflowListState }); }, }); const onTriggerCloudEventUnsubscriber = gatewayApi.onOpenTriggerCloudEventListen({ onOpen(workflowInstance?: WorkflowInstance) { if (workflowInstance) { - history.push({ - pathname: routes.runtimeToolsTriggerCloudEventForWorkflow.path({ workflowId: workflowInstance.id }), - state: { - source: CloudEventPageSource.INSTANCES, - }, - }); + onOpenTriggerCloudEventForWorkflow?.(workflowInstance.id); + return; } - history.push({ - pathname: routes.runtimeToolsTriggerCloudEvent.path({}), - state: { - source: CloudEventPageSource.INSTANCES, - }, - }); + onOpenTriggerCloudEvent?.(); }, }); return () => { onOpenInstanceUnsubscriber.unSubscribe(); onTriggerCloudEventUnsubscriber?.unSubscribe(); }; - }, []); + }, [gatewayApi, onOpenTriggerCloudEvent, onOpenTriggerCloudEventForWorkflow, onOpenWorkflowDetails]); return ( = /> ); }; - -export default WorkflowListContainer; diff --git a/packages/runtime-tools-webapp-components/src/WorkflowListContainer/index.ts b/packages/runtime-tools-webapp-components/src/WorkflowListContainer/index.ts new file mode 100644 index 00000000000..30803994453 --- /dev/null +++ b/packages/runtime-tools-webapp-components/src/WorkflowListContainer/index.ts @@ -0,0 +1,20 @@ +/* + * 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. + */ + +export * from "./WorkflowListContainer"; diff --git a/packages/runtime-tools-webapp-components/tests/__mocks__/styleMock.js b/packages/runtime-tools-webapp-components/tests/__mocks__/styleMock.js new file mode 100644 index 00000000000..4bd939113b0 --- /dev/null +++ b/packages/runtime-tools-webapp-components/tests/__mocks__/styleMock.js @@ -0,0 +1,20 @@ +/* + * 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. + */ + +module.exports = {}; diff --git a/packages/runtime-tools-webapp-components/tests/jest.setup.ts b/packages/runtime-tools-webapp-components/tests/jest.setup.ts new file mode 100644 index 00000000000..1c413b1660e --- /dev/null +++ b/packages/runtime-tools-webapp-components/tests/jest.setup.ts @@ -0,0 +1,20 @@ +/* + * 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 "@testing-library/jest-dom"; diff --git a/packages/runtime-tools-webapp-components/tsconfig.json b/packages/runtime-tools-webapp-components/tsconfig.json new file mode 100644 index 00000000000..fb7d2da8dac --- /dev/null +++ b/packages/runtime-tools-webapp-components/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@kie-tools/tsconfig/tsconfig.json", + "compilerOptions": { + "outDir": "dist", + "jsx": "react", + "resolveJsonModule": true, + "esModuleInterop": true, + "target": "es6", + "moduleResolution": "node" + }, + "include": ["src"] +} diff --git a/packages/serverless-logic-web-tools/package.json b/packages/serverless-logic-web-tools/package.json index e81da92dcdc..75ebd1f0ecf 100644 --- a/packages/serverless-logic-web-tools/package.json +++ b/packages/serverless-logic-web-tools/package.json @@ -44,6 +44,7 @@ "@kie-tools/runtime-tools-components": "workspace:*", "@kie-tools/runtime-tools-enveloped-components": "workspace:*", "@kie-tools/runtime-tools-gateway-api": "workspace:*", + "@kie-tools/runtime-tools-webapp-components": "workspace:*", "@kie-tools/serverless-workflow-combined-editor": "workspace:*", "@kie-tools/serverless-workflow-diagram-editor-assets": "workspace:*", "@kie-tools/serverless-workflow-diagram-editor-envelope": "workspace:*", diff --git a/packages/serverless-logic-web-tools/src/App.tsx b/packages/serverless-logic-web-tools/src/App.tsx index 9c5470c3f45..c72d0927bc0 100644 --- a/packages/serverless-logic-web-tools/src/App.tsx +++ b/packages/serverless-logic-web-tools/src/App.tsx @@ -33,11 +33,11 @@ import { GlobalAlertsContextProvider } from "./alerts/GlobalAlertsContext"; import { EditorContextProvider } from "./editor/hooks/EditorContext"; import { WebToolsWorkspaceContextProvider } from "./workspace/hooks/WebToolsWorkspaceContextProvider"; import { UpgradeContextProvider } from "./upgrade/UpgradeContext"; -import { WorkflowListContextProvider } from "./runtimeTools/workflows/WorkflowList"; -import { WorkflowDetailsContextProvider } from "./runtimeTools/workflows/WorkflowDetails"; -import { CloudEventFormContextProvider } from "./runtimeTools/workflows/CloudEventForm"; -import { WorkflowDefinitionListContextProvider } from "./runtimeTools/workflows/WorkflowDefinitionList"; -import { WorkflowFormContextProvider } from "./runtimeTools/workflows/WorkflowForm"; +import { WebToolsWorkflowDefinitionListContextProvider } from "./runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider"; +import { WebToolsWorkflowListContextProvider } from "./runtimeTools/contexts/WebToolsWorkflowListContextProvider"; +import { WebToolsWorkflowDetailsContextProvider } from "./runtimeTools/contexts/WebToolsWorkflowDetailsContextProvider"; +import { WebToolsWorkflowFormContextProvider } from "./runtimeTools/contexts/WebToolsWorkflowFormContextProvider"; +import { WebToolsCloudEventFormContextProvider } from "./runtimeTools/contexts/WebToolsCloudEventFormContextProvider"; export const App = () => ( @@ -55,11 +55,11 @@ export const App = () => ( [SampleContextProvider, {}], [NavigationContextProvider, {}], [EditorContextProvider, {}], - [WorkflowDefinitionListContextProvider, {}], - [WorkflowListContextProvider, {}], - [WorkflowDetailsContextProvider, {}], - [WorkflowFormContextProvider, {}], - [CloudEventFormContextProvider, {}], + [WebToolsWorkflowDefinitionListContextProvider, {}], + [WebToolsWorkflowListContextProvider, {}], + [WebToolsWorkflowDetailsContextProvider, {}], + [WebToolsWorkflowFormContextProvider, {}], + [WebToolsCloudEventFormContextProvider, {}], // Insert new context providers from here to beginning, always before RoutesSwitch [RoutesSwitch, {}] )} diff --git a/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx b/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx index 01b2306b9b3..3d860c07b6a 100644 --- a/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx +++ b/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx @@ -31,11 +31,11 @@ import { EditorPage } from "../../editor/EditorPage"; import { NoMatchPage } from "../../navigation/NoMatchPage"; import { SamplesCatalog } from "../../samples/SamplesCatalog"; import { WorkspaceFiles } from "../recentModels/workspaceFiles/WorkspaceFiles"; -import { RuntimeToolsWorkflowInstances } from "../../runtimeTools/workflows/RuntimeToolsWorkflowInstances"; -import { RuntimeToolsWorkflowDetails } from "../../runtimeTools/workflows/RuntimeToolsWorkflowDetails"; -import { RuntimeToolsWorkflowDefinitions } from "../../runtimeTools/workflows/RuntimeToolsWorkflowDefinitions"; -import { RuntimeToolsTriggerCloudEvent } from "../../runtimeTools/workflows/RuntimeToolsTriggerCloudEvent"; -import { RuntimeToolsWorkflowForm } from "../../runtimeTools/workflows/RuntimeToolsWorkflowForm"; +import { RuntimeToolsWorkflowInstances } from "../../runtimeTools/pages/RuntimeToolsWorkflowInstances"; +import { RuntimeToolsWorkflowDetails } from "../../runtimeTools/pages/RuntimeToolsWorkflowDetails"; +import { RuntimeToolsWorkflowDefinitions } from "../../runtimeTools/pages/RuntimeToolsWorkflowDefinitions"; +import { RuntimeToolsTriggerCloudEvent } from "../../runtimeTools/pages/RuntimeToolsTriggerCloudEvent"; +import { RuntimeToolsWorkflowForm } from "../../runtimeTools/pages/RuntimeToolsWorkflowForm"; export function HomePageRoutes(props: { isNavOpen: boolean }) { const routes = useRoutes(); diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx new file mode 100644 index 00000000000..3801618b2e8 --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx @@ -0,0 +1,37 @@ +/* + * 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 * as React from "react"; +import { WorkflowFormContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowForm"; +import { useSettings } from "../../settings/SettingsContext"; +import { useEnv } from "../../env/EnvContext"; + +export function WebToolsCloudEventFormContextProvider(props: React.PropsWithChildren<{}>) { + const settings = useSettings(); + const { env } = useEnv(); + + return ( + + {props.children} + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx new file mode 100644 index 00000000000..fe2b40500db --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx @@ -0,0 +1,32 @@ +/* + * 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 * as React from "react"; +import { WorkflowDefinitionListContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDefinitionList"; +import { useSettings } from "../../settings/SettingsContext"; + +export function WebToolsWorkflowDefinitionListContextProvider(props: React.PropsWithChildren<{}>) { + const settings = useSettings(); + + return ( + + {props.children} + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDetailsContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDetailsContextProvider.tsx new file mode 100644 index 00000000000..a33297da8c6 --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDetailsContextProvider.tsx @@ -0,0 +1,37 @@ +/* + * 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 * as React from "react"; +import { WorkflowDetailsContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetails"; +import { useSettings } from "../../settings/SettingsContext"; +import { useEnv } from "../../env/EnvContext"; + +export function WebToolsWorkflowDetailsContextProvider(props: React.PropsWithChildren<{}>) { + const settings = useSettings(); + const { env } = useEnv(); + + return ( + + {props.children} + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx new file mode 100644 index 00000000000..041d9553b2a --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx @@ -0,0 +1,37 @@ +/* + * 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 * as React from "react"; +import { CloudEventFormContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/CloudEventForm"; +import { useSettings } from "../../settings/SettingsContext"; +import { useEnv } from "../../env/EnvContext"; + +export function WebToolsWorkflowFormContextProvider(props: React.PropsWithChildren<{}>) { + const settings = useSettings(); + const { env } = useEnv(); + + return ( + + {props.children} + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowListContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowListContextProvider.tsx new file mode 100644 index 00000000000..17d5b23f54c --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowListContextProvider.tsx @@ -0,0 +1,37 @@ +/* + * 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 * as React from "react"; +import { WorkflowListContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowList"; +import { useSettings } from "../../settings/SettingsContext"; +import { useEnv } from "../../env/EnvContext"; + +export function WebToolsWorkflowListContextProvider(props: React.PropsWithChildren<{}>) { + const settings = useSettings(); + const { env } = useEnv(); + + return ( + + {props.children} + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx new file mode 100644 index 00000000000..d25f0b5a112 --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx @@ -0,0 +1,112 @@ +/* + * 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, { useCallback } from "react"; +import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import { CloudEventFormContainer } from "@kie-tools/runtime-tools-webapp-components/dist/CloudEventFormContainer"; +import { Alert, AlertActionCloseButton } from "@patternfly/react-core/dist/js/components/Alert"; +import { useGlobalAlert } from "../../alerts/GlobalAlertsContext"; + +const PAGE_TITLE = "Trigger Cloud Event"; +const KUBESMARTS_CLOUD_SOURCE = "/local/kubesmarts"; + +export function RuntimeToolsTriggerCloudEvent() { + const triggerEventSuccessAlert = useGlobalAlert<{ message: string }>( + useCallback(({ close }, { message }) => { + return ( + } + /> + ); + }, []), + { durationInSeconds: 5 } + ); + + const startWorkflowErrorAlert = useGlobalAlert<{ message: string }>( + useCallback(({ close }, { message }) => { + return ( + + Something went wrong while triggering your workflow. +
+ {`Reason: ${message}`} + + } + aria-live="polite" + data-testid="alert-upload-error" + actionClose={} + /> + ); + }, []), + { durationInSeconds: 5 } + ); + + const onStartWorkflowError = useCallback( + (error) => { + const message = error?.message || "Unknown error. More details in the developer tools console."; + startWorkflowErrorAlert.show({ message }); + }, + [startWorkflowErrorAlert] + ); + + const onTriggerEventSuccessAlert = useCallback(() => { + triggerEventSuccessAlert.show({ message: "The cloud event has been successfully triggered." }); + }, [triggerEventSuccessAlert]); + + const onTriggerStartCloudEventSuccess = useCallback( + (businessKey: string) => { + triggerEventSuccessAlert.show({ + message: `A workflow with business key ${businessKey} has been successfully triggered.`, + }); + }, + [triggerEventSuccessAlert] + ); + + return ( + + + + {PAGE_TITLE} + + Trigger a cloud event to start new workflow instances or to send HTTP Cloud Events to active workflow + instances that are waiting for an event to advance. + + + + + + + + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx new file mode 100644 index 00000000000..ce913568287 --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx @@ -0,0 +1,67 @@ +/* + * 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, { useCallback } from "react"; +import { WorkflowDefinitionListContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDefinitionListContainer"; +import { Card } from "@patternfly/react-core/dist/esm/components/Card"; +import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import { useHistory } from "react-router"; +import { routes } from "../../navigation/Routes"; +import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; + +const PAGE_TITLE = "Workflow Definitions"; + +export function RuntimeToolsWorkflowDefinitions() { + const history = useHistory(); + + const onOpenWorkflowForm = useCallback( + (workflowDefinition: WorkflowDefinition) => { + history.push({ + pathname: routes.runtimeToolsWorkflowForm.path({ workflowName: workflowDefinition.workflowName }), + state: { + workflowDefinition: { + workflowName: workflowDefinition.workflowName, + endpoint: workflowDefinition.endpoint, + }, + }, + }); + }, + [history] + ); + + return ( + + + + {PAGE_TITLE} + + Start new workflow instances from the SonataFlow service linked in your Runtime Tools settings. + + + + + + + + + + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx similarity index 56% rename from packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx rename to packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx index 9f156e7af05..1e3fe98a6e1 100644 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx +++ b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx @@ -17,17 +17,22 @@ * under the License. */ -import React, { useEffect, useState } from "react"; -import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; -import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import React, { useCallback, useEffect, useState } from "react"; +import { KogitoSpinner } from "@kie-tools/runtime-tools-components/dist/components/KogitoSpinner"; +import { ServerErrors } from "@kie-tools/runtime-tools-components/dist/components/ServerErrors"; import { ouiaPageTypeAndObjectId } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { useWorkflowDetailsGatewayApi, WorkflowDetailsGatewayApi } from "./WorkflowDetails"; -import WorkflowDetailsContainer from "./WorkflowDetailsContainer/WorkflowDetailsContainer"; import { WorkflowInstance } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { ServerErrors } from "@kie-tools/runtime-tools-components/dist/components/ServerErrors"; -import { KogitoSpinner } from "@kie-tools/runtime-tools-components/dist/components/KogitoSpinner"; +import { + WorkflowDetailsGatewayApi, + useWorkflowDetailsGatewayApi, +} from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetails"; +import { WorkflowDetailsContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetailsContainer"; import { Card } from "@patternfly/react-core/dist/js/components/Card"; +import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; import { Bullseye } from "@patternfly/react-core/dist/js/layouts/Bullseye"; +import { useHistory } from "react-router"; +import { routes } from "../../navigation/Routes"; const PAGE_TITLE = "Workflow Details"; @@ -35,6 +40,7 @@ interface WorkflowListContainerProps { workflowId: string; } export function RuntimeToolsWorkflowDetails(props: WorkflowListContainerProps) { + const history = useHistory(); const gatewayApi: WorkflowDetailsGatewayApi = useWorkflowDetailsGatewayApi(); const [workflowInstance, setWorkflowInstance] = useState({} as WorkflowInstance); @@ -59,40 +65,49 @@ export function RuntimeToolsWorkflowDetails(props: WorkflowListContainerProps) { return ouiaPageTypeAndObjectId("workflow-details"); }); + const onOpenWorkflowInstanceDetails = useCallback( + (workflowId: string) => { + history.push(`/`); + history.push(routes.runtimeToolsWorkflowDetails.path({ workflowId })); + }, + [history] + ); + return ( - <> - - - - {PAGE_TITLE} - - Explore the execution status, details, timeline and variables of a workflow instance. - - - + + + + {PAGE_TITLE} + + Explore the execution status, details, timeline and variables of a workflow instance. + + + - - {isLoading && ( - - - - )} + + {isLoading && ( + + + + )} - {!isLoading && workflowInstance && Object.keys(workflowInstance).length > 0 && !fetchError ? ( - - ) : ( - <> - {fetchError.length > 0 && ( - - - - - - )} - - )} - - - + {!isLoading && workflowInstance && Object.keys(workflowInstance).length > 0 && !fetchError ? ( + + ) : ( + <> + {fetchError.length > 0 && ( + + + + + + )} + + )} + + ); } diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowForm.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowForm.tsx new file mode 100644 index 00000000000..2c6ee6aef6c --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowForm.tsx @@ -0,0 +1,161 @@ +/* + * 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, { useCallback, useEffect, useRef } from "react"; +import { InlineEdit, InlineEditApi } from "@kie-tools/runtime-tools-components/dist/components/InlineEdit"; +import { ouiaPageTypeAndObjectId } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; +import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { + WorkflowFormGatewayApi, + useWorkflowFormGatewayApi, +} from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowForm"; +import { WorkflowFormContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowFormContainer"; +import { Alert, AlertActionCloseButton, AlertActionLink } from "@patternfly/react-core/dist/js/components/Alert"; +import { Card, CardBody } from "@patternfly/react-core/dist/js/components/Card"; +import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import { useHistory } from "react-router"; +import { useGlobalAlert } from "../../alerts/GlobalAlertsContext"; +import { routes } from "../../navigation/Routes"; + +const PAGE_TITLE = "Start new workflow"; + +export function RuntimeToolsWorkflowForm() { + const history = useHistory(); + const gatewayApi: WorkflowFormGatewayApi = useWorkflowFormGatewayApi(); + + const inlineEditRef = useRef(null); + + const workflowDefinition: WorkflowDefinition = (history.location.state as any)["workflowDefinition"]; + + const onResetForm = useCallback(() => { + gatewayApi.setBusinessKey(""); + inlineEditRef.current!.reset(); + }, [gatewayApi]); + + const getBusinessKey = () => { + return gatewayApi.getBusinessKey(); + }; + + useEffect(() => { + onResetForm(); + return ouiaPageTypeAndObjectId("workflow-form"); + }, [onResetForm]); + + const startWorkflowSuccessAlert = useGlobalAlert<{ workflowId: string }>( + useCallback( + ({ close }, { workflowId }) => { + const viewDetails = () => { + history.push({ + pathname: routes.runtimeToolsWorkflowDetails.path({ workflowId }), + }); + close(); + }; + + return ( + } + actionLinks={ + <> + {"View details"} + {"Ignore"} + + } + /> + ); + }, + [history] + ), + { durationInSeconds: 5 } + ); + + const startWorkflowErrorAlert = useGlobalAlert<{ message: string }>( + useCallback(({ close }, { message }) => { + return ( + + Something went wrong while triggering your workflow. +
+ {`Reason: ${message}`} + + } + aria-live="polite" + data-testid="alert-upload-error" + actionClose={} + /> + ); + }, []), + { durationInSeconds: 5 } + ); + + const onStartWorkflowError = useCallback( + (error: any) => { + const message = + error?.response?.data?.message + " " + error?.response?.data?.cause || + error?.message || + "Unknown error. More details in the developer tools console."; + startWorkflowErrorAlert.show({ message }); + }, + [startWorkflowErrorAlert] + ); + + const onStartWorkflowSuccess = useCallback( + (workflowId: string) => { + startWorkflowSuccessAlert.show({ workflowId }); + }, + [startWorkflowSuccessAlert] + ); + + return ( + + + + {PAGE_TITLE} + + gatewayApi.setBusinessKey(bk)} + getBusinessKey={getBusinessKey} + /> + + + + + + + + + + + + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx new file mode 100644 index 00000000000..aa01183af1f --- /dev/null +++ b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.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, { useCallback } from "react"; +import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; +import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; +import { WorkflowListContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowListContainer"; +import { CloudEventPageSource } from "@kie-tools/runtime-tools-webapp-components/dist/CloudEventForm"; +import { useHistory } from "react-router"; +import { WorkflowListState } from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { routes } from "../../navigation/Routes"; + +const PAGE_TITLE = "Workflow Instances"; + +export function RuntimeToolsWorkflowInstances() { + const history = useHistory(); + + const initialState: WorkflowListState = history.location && (history.location.state as WorkflowListState); + + const onOpenWorkflowDetails = useCallback( + (args: { workflowId: string; state: WorkflowListState }) => { + history.push({ + pathname: routes.runtimeToolsWorkflowDetails.path({ workflowId: args.workflowId }), + state: args.state, + }); + }, + [history] + ); + + const onOpenTriggerCloudEvent = useCallback(() => { + history.push({ + pathname: routes.runtimeToolsTriggerCloudEvent.path({}), + state: { + source: CloudEventPageSource.INSTANCES, + }, + }); + }, [history]); + + const onOpenTriggerCloudEventForWorkflow = useCallback( + (workflowId: string) => { + history.push({ + pathname: routes.runtimeToolsTriggerCloudEventForWorkflow.path({ workflowId }), + state: { + source: CloudEventPageSource.INSTANCES, + }, + }); + }, + [history] + ); + + return ( + + + + {PAGE_TITLE} + + List and view workflows from the Data Index linked in your Runtime Tools settings. + + + + + + + + + ); +} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventFormContainer/CloudEventFormContainer.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventFormContainer/CloudEventFormContainer.tsx deleted file mode 100644 index 7495c176042..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/CloudEventFormContainer/CloudEventFormContainer.tsx +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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, { useCallback } from "react"; -import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { useCloudEventFormGatewayApi } from "../CloudEventForm"; -import { EmbeddedCloudEventForm } from "@kie-tools/runtime-tools-enveloped-components/dist/cloudEventForm"; -import { useParams } from "react-router"; -import { useGlobalAlert } from "../../../alerts/GlobalAlertsContext"; -import { Alert, AlertActionCloseButton } from "@patternfly/react-core/dist/js/components/Alert"; -import { CloudEventRequest } from "@kie-tools/runtime-tools-gateway-api/dist/types"; - -export type CloudEventFormContainerProps = { - isTriggerNewInstance: boolean; -}; - -export type CloudEventFormContainerParams = { - instanceId?: string; -}; - -const CloudEventFormContainer: React.FC = ({ - isTriggerNewInstance, - ouiaId, - ouiaSafe, -}) => { - const gatewayApi = useCloudEventFormGatewayApi(); - - const { instanceId } = useParams(); - - const triggerEventSuccessAlert = useGlobalAlert<{ message: string }>( - useCallback(({ close }, { message }) => { - return ( - } - /> - ); - }, []), - { durationInSeconds: 5 } - ); - - const startWorkflowErrorAlert = useGlobalAlert<{ message: string }>( - useCallback(({ close }, { message }) => { - return ( - - Something went wrong while triggering your workflow. -
- {`Reason: ${message}`} - - } - aria-live="polite" - data-testid="alert-upload-error" - actionClose={} - /> - ); - }, []), - { durationInSeconds: 5 } - ); - - const triggerStartCloudEvent = useCallback( - (event: CloudEventRequest) => { - return gatewayApi - .triggerStartCloudEvent(event) - .then((businessKey) => { - triggerEventSuccessAlert.show({ - message: `A workflow with business key ${businessKey} has been successfully triggered.`, - }); - }) - .catch((error) => handleError(error)); - }, - [gatewayApi, triggerEventSuccessAlert] - ); - - const triggerCloudEvent = useCallback( - (event: CloudEventRequest) => { - return gatewayApi - .triggerCloudEvent(event) - .then((response) => { - console.log(response); - triggerEventSuccessAlert.show({ message: "The cloud event has been successfully triggered." }); - }) - .catch((error) => handleError(error)); - }, - [gatewayApi, triggerEventSuccessAlert] - ); - - const handleError = useCallback( - (error) => { - const message = error?.message || "Unknown error. More details in the developer tools console."; - startWorkflowErrorAlert.show({ message }); - }, - [gatewayApi, startWorkflowErrorAlert] - ); - - return ( - { - const doTrigger = isTriggerNewInstance ? triggerStartCloudEvent : triggerCloudEvent; - return doTrigger(event); - }, - }} - /> - ); -}; - -export default CloudEventFormContainer; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsTriggerCloudEvent.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsTriggerCloudEvent.tsx deleted file mode 100644 index 9b7a5395560..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsTriggerCloudEvent.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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 from "react"; -import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; -import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; -import { useHistory } from "react-router"; -import CloudEventFormContainer from "./CloudEventFormContainer/CloudEventFormContainer"; - -const PAGE_TITLE = "Trigger Cloud Event"; - -export function RuntimeToolsTriggerCloudEvent() { - const history = useHistory(); - - return ( - <> - - - - {PAGE_TITLE} - - Trigger a cloud event to start new workflow instances or to send HTTP Cloud Events to active workflow - instances that are waiting for an event to advance. - - - - - - - - - - ); -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDefinitions.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDefinitions.tsx deleted file mode 100644 index a7c180af208..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowDefinitions.tsx +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 from "react"; -import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; -import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; -import WorkflowListContainer from "./WorkflowListContainer/WorkflowListContainer"; -import { useHistory } from "react-router"; -import { WorkflowListState } from "./WorkflowList/WorkflowListGatewayApi"; -import { Card } from "@patternfly/react-core/dist/esm/components/Card"; -import WorkflowDefinitionListContainer from "./WorkflowDefinitionListContainer/WorkflowDefinitionListContainer"; - -const PAGE_TITLE = "Workflow Definitions"; - -export function RuntimeToolsWorkflowDefinitions() { - return ( - <> - - - - {PAGE_TITLE} - - Start new workflow instances from the SonataFlow service linked in your Runtime Tools settings. - - - - - - - - - - - - ); -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowForm.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowForm.tsx deleted file mode 100644 index 1d11aba0a6f..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowForm.tsx +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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, useRef } from "react"; -import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; -import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; -import { useHistory } from "react-router"; -import { Card, CardBody } from "@patternfly/react-core/dist/js/components/Card"; -import WorkflowFormContainer from "./WorkflowFormContainer/WorkflowFormContainer"; -import { useWorkflowFormGatewayApi, WorkflowFormGatewayApi } from "./WorkflowForm"; -import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { ouiaPageTypeAndObjectId } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { InlineEdit, InlineEditApi } from "@kie-tools/runtime-tools-components/dist/components/InlineEdit"; - -const PAGE_TITLE = "Start new workflow"; - -export function RuntimeToolsWorkflowForm() { - const history = useHistory(); - const gatewayApi: WorkflowFormGatewayApi = useWorkflowFormGatewayApi(); - - const inlineEditRef = useRef(null); - - const workflowDefinition: WorkflowDefinition = (history.location.state as any)["workflowDefinition"]; - - const onResetForm = () => { - gatewayApi.setBusinessKey(""); - inlineEditRef.current!.reset(); - }; - - const getBusinessKey = () => { - return gatewayApi.getBusinessKey(); - }; - - useEffect(() => { - onResetForm(); - return ouiaPageTypeAndObjectId("workflow-form"); - }, []); - - return ( - <> - - - - {PAGE_TITLE} - - gatewayApi.setBusinessKey(bk)} - getBusinessKey={getBusinessKey} - /> - - - - - - - - - - - - - - ); -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx deleted file mode 100644 index 54e1fc722c5..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 from "react"; -import { Page, PageSection } from "@patternfly/react-core/dist/js/components/Page"; -import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; -import WorkflowListContainer from "./WorkflowListContainer/WorkflowListContainer"; -import { useHistory } from "react-router"; -import { WorkflowListState } from "./WorkflowList/WorkflowListGatewayApi"; - -const PAGE_TITLE = "Workflow Instances"; - -export function RuntimeToolsWorkflowInstances() { - const history = useHistory(); - - const initialState: WorkflowListState = history.location && (history.location.state as WorkflowListState); - - return ( - <> - - - - {PAGE_TITLE} - - List and view workflows from the Data Index linked in your Runtime Tools settings. - - - - - - - - - - ); -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx deleted file mode 100644 index 6b82180f457..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContextProvider.tsx +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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, { useMemo } from "react"; -import { ApolloClient } from "apollo-client"; -import { WorkflowDetailsContext } from "./WorkflowDetailsContext"; -import { WorkflowDetailsGatewayApiImpl } from "./WorkflowDetailsGatewayApi"; -import { GraphQLWorkflowDetailsQueries } from "./WorkflowDetailsQueries"; -import { HttpLink } from "apollo-link-http"; -import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory"; -import { useSettings } from "../../../settings/SettingsContext"; -import { useEnv } from "../../../env/EnvContext"; - -export function WorkflowDetailsContextProvider(props: React.PropsWithChildren<{}>) { - const settings = useSettings(); - const { env } = useEnv(); - - const httpLink = useMemo( - () => - new HttpLink({ - uri: env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL, - headers: { - "Target-Url": settings.runtimeTools.config.dataIndexUrl, - }, - }), - [env, settings] - ); - - const cache = useMemo(() => new InMemoryCache(), []); - - const apolloClient: ApolloClient = useMemo( - () => - new ApolloClient({ - cache, - link: httpLink, - }), - [cache, httpLink] - ); - - const gatewayApiImpl = useMemo(() => { - return new WorkflowDetailsGatewayApiImpl(new GraphQLWorkflowDetailsQueries(apolloClient)); - }, [apolloClient]); - - return {props.children}; -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts deleted file mode 100644 index 2d3dfb8905d..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsGatewayApi.ts +++ /dev/null @@ -1,176 +0,0 @@ -/* - * 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 { - WorkflowInstance, - Job, - JobCancel, - TriggerableNode, - NodeInstance, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { WorkflowDetailsQueries } from "./WorkflowDetailsQueries"; - -export interface OnOpenWorkflowInstanceDetailsListener { - onOpen(id: string): void; -} - -export interface WorkflowDetailsUnSubscribeHandler { - unSubscribe: () => void; -} - -export interface WorkflowDetailsState { - id: string; -} - -export interface WorkflowDetailsGatewayApi { - workflowDetailsState: any; - handleWorkflowAbort: (workflowInstance: WorkflowInstance) => Promise; - cancelJob: (job: Job) => Promise; - rescheduleJob: ( - job: Job, - repeatInterval: number | string, - repeatLimit: number | string, - scheduleDate: Date - ) => Promise<{ modalTitle: string; modalContent: string }>; - getTriggerableNodes(workflowInstance: WorkflowInstance): Promise; - handleNodeTrigger(workflowInstance: WorkflowInstance, node: any): Promise; - handleWorkflowVariableUpdate: ( - workflowInstance: WorkflowInstance, - updateJson: Record - ) => Promise>; - workflowDetailsQuery(id: string): Promise; - jobsQuery(id: string): Promise; - openWorkflowInstanceDetails(id: string): Promise; - onOpenWorkflowInstanceDetailsListener: ( - listener: OnOpenWorkflowInstanceDetailsListener - ) => WorkflowDetailsUnSubscribeHandler; - handleWorkflowRetry: (workflowInstance: WorkflowInstance) => Promise; - handleNodeInstanceCancel: (workflowInstance: WorkflowInstance, node: NodeInstance) => Promise; - handleWorkflowSkip: (workflowInstance: WorkflowInstance) => Promise; - handleNodeInstanceRetrigger(workflowInstance: WorkflowInstance, node: NodeInstance): Promise; -} - -export class WorkflowDetailsGatewayApiImpl implements WorkflowDetailsGatewayApi { - private readonly queries: WorkflowDetailsQueries; - private _WorkflowDetailsState: WorkflowDetailsState; - private readonly listeners: OnOpenWorkflowInstanceDetailsListener[] = []; - - constructor(queries: WorkflowDetailsQueries) { - this.queries = queries; - this._WorkflowDetailsState = { id: "" }; - } - - get workflowDetailsState(): WorkflowDetailsState { - return this._WorkflowDetailsState; - } - - handleWorkflowAbort = (workflowInstance: WorkflowInstance): Promise => { - return this.queries.handleWorkflowAbort(workflowInstance); - }; - - cancelJob = (job: Job): Promise => { - return this.queries.jobCancel(job); - }; - - rescheduleJob = ( - job: Job, - repeatInterval: number | string, - repeatLimit: number | string, - scheduleDate: Date - ): Promise<{ modalTitle: string; modalContent: string }> => { - return this.queries.rescheduleJob(job, repeatInterval, repeatLimit, scheduleDate); - }; - - getTriggerableNodes(workflowInstance: WorkflowInstance): Promise { - return this.queries.getTriggerableNodes(workflowInstance); - } - - handleNodeTrigger(workflowInstance: WorkflowInstance, node: TriggerableNode): Promise { - return this.queries.handleNodeTrigger(workflowInstance, node); - } - - handleWorkflowVariableUpdate = (workflowInstance: WorkflowInstance, updatedJson: Record) => { - return this.queries.handleWorkflowVariableUpdate(workflowInstance, updatedJson); - }; - - workflowDetailsQuery(id: string): Promise { - return new Promise((resolve, reject) => { - this.queries - .getWorkflowDetails(id) - .then((value: WorkflowInstance) => { - resolve(value); - }) - .catch((reason: any) => { - reject(reason); - }); - }); - } - - jobsQuery(id: string): Promise { - return new Promise((resolve, reject) => { - this.queries - .getJobs(id) - .then((value: Job[]) => { - resolve(value); - }) - .catch((reason: any) => { - reject(reason); - }); - }); - } - - openWorkflowInstanceDetails(id: string): Promise { - this._WorkflowDetailsState = { id: id }; - this.listeners.forEach((listener) => listener.onOpen(id)); - return Promise.resolve(); - } - - onOpenWorkflowInstanceDetailsListener( - listener: OnOpenWorkflowInstanceDetailsListener - ): WorkflowDetailsUnSubscribeHandler { - this.listeners.push(listener); - - const unSubscribe = () => { - const index = this.listeners.indexOf(listener); - if (index > -1) { - this.listeners.splice(index, 1); - } - }; - - return { - unSubscribe, - }; - } - - handleWorkflowRetry(workflowInstance: WorkflowInstance): Promise { - return this.queries.handleWorkflowRetry(workflowInstance); - } - - handleNodeInstanceCancel(workflowInstance: WorkflowInstance, node: NodeInstance): Promise { - return this.queries.handleNodeInstanceCancel(workflowInstance, node); - } - - handleWorkflowSkip(workflowInstance: WorkflowInstance): Promise { - return this.queries.handleWorkflowSkip(workflowInstance); - } - - handleNodeInstanceRetrigger(workflowInstance: WorkflowInstance, node: NodeInstance): Promise { - return this.queries.handleNodeInstanceRetrigger(workflowInstance, node); - } -} diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx deleted file mode 100644 index e73da354892..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowDetailsContainer/WorkflowDetailsContainer.tsx +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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 } from "react"; -import { useHistory } from "react-router-dom"; -import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { EmbeddedWorkflowDetails } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowDetails/embedded"; -import { WorkflowDetailsGatewayApi, useWorkflowDetailsGatewayApi } from "../WorkflowDetails"; -import { WorkflowInstance } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { routes } from "../../../navigation/Routes"; - -interface WorkflowListContainerProps { - workflowInstance: WorkflowInstance; -} - -const WorkflowDetailsContainer: React.FC = ({ - workflowInstance, - ouiaId, - ouiaSafe, -}) => { - const history = useHistory(); - const gatewayApi: WorkflowDetailsGatewayApi = useWorkflowDetailsGatewayApi(); - - useEffect(() => { - const unSubscribeHandler = gatewayApi.onOpenWorkflowInstanceDetailsListener({ - onOpen(id: string) { - history.push(`/`); - history.push(routes.runtimeToolsWorkflowDetails.path({ workflowId: id })); - }, - }); - return () => { - unSubscribeHandler.unSubscribe(); - }; - }, []); - - return ( - - ); -}; - -export default WorkflowDetailsContainer; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowFormContainer/WorkflowFormContainer.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowFormContainer/WorkflowFormContainer.tsx deleted file mode 100644 index b41a0867151..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowFormContainer/WorkflowFormContainer.tsx +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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, { useCallback } from "react"; -import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { WorkflowDefinition } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { WorkflowFormGatewayApi, useWorkflowFormGatewayApi } from "../WorkflowForm"; -import { EmbeddedWorkflowForm } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowForm"; -import { useGlobalAlert } from "../../../alerts/GlobalAlertsContext"; -import { Alert, AlertActionCloseButton, AlertActionLink } from "@patternfly/react-core/dist/js/components/Alert"; -import { useHistory } from "react-router"; -import { routes } from "../../../navigation/Routes"; - -interface WorkflowFormContainerProps { - workflowDefinitionData: WorkflowDefinition; - onResetForm: () => void; -} -const WorkflowFormContainer: React.FC = ({ - workflowDefinitionData, - onResetForm, - ouiaId, - ouiaSafe, -}) => { - const gatewayApi: WorkflowFormGatewayApi = useWorkflowFormGatewayApi(); - const history = useHistory(); - - const openWorkflowInstance = useCallback( - (id: string) => { - history.push({ - pathname: routes.runtimeToolsWorkflowDetails.path({ workflowId: id }), - }); - }, - [history] - ); - - const startWorkflowSuccessAlert = useGlobalAlert<{ id: string }>( - useCallback( - ({ close }, { id }) => { - const viewDetails = () => { - openWorkflowInstance(id); - close(); - }; - - return ( - } - actionLinks={ - <> - {"View details"} - {"Ignore"} - - } - /> - ); - }, - [openWorkflowInstance] - ), - { durationInSeconds: 5 } - ); - - const startWorkflowErrorAlert = useGlobalAlert<{ message: string }>( - useCallback(({ close }, { message }) => { - return ( - - Something went wrong while triggering your workflow. -
- {`Reason: ${message}`} - - } - aria-live="polite" - data-testid="alert-upload-error" - actionClose={} - /> - ); - }, []), - { durationInSeconds: 5 } - ); - - return ( - > { - return gatewayApi.getCustomWorkflowSchema(workflowDefinitionData.workflowName); - }, - async resetBusinessKey() { - onResetForm(); - }, - async startWorkflow(endpoint: string, data: Record): Promise { - return gatewayApi - .startWorkflow(endpoint, data) - .then((id: string) => { - startWorkflowSuccessAlert.show({ id }); - }) - .catch((error: any) => { - const message = - error?.response?.data?.message + " " + error?.response?.data?.cause || - error?.message || - "Unknown error. More details in the developer tools console."; - startWorkflowErrorAlert.show({ message }); - }); - }, - }} - targetOrigin={window.location.origin} - workflowDefinition={{ - workflowName: workflowDefinitionData.workflowName, - endpoint: workflowDefinitionData.endpoint, - }} - /> - ); -}; - -export default WorkflowFormContainer; diff --git a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx b/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx deleted file mode 100644 index 434aee8c056..00000000000 --- a/packages/serverless-logic-web-tools/src/runtimeTools/workflows/WorkflowList/WorkflowListContextProvider.tsx +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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, { useMemo } from "react"; -import { ApolloClient } from "apollo-client"; -import { WorkflowListContext } from "./WorkflowListContext"; -import { WorkflowListGatewayApiImpl } from "./WorkflowListGatewayApi"; -import { GraphQLWorkflowListQueries } from "./WorkflowListQueries"; -import { HttpLink } from "apollo-link-http"; -import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory"; -import { useSettings } from "../../../settings/SettingsContext"; -import { useEnv } from "../../../env/EnvContext"; - -export function WorkflowListContextProvider(props: React.PropsWithChildren<{}>) { - const settings = useSettings(); - const { env } = useEnv(); - - const httpLink = useMemo( - () => - new HttpLink({ - uri: env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL, - headers: { - "Target-Url": settings.runtimeTools.config.dataIndexUrl, - }, - }), - [env, settings] - ); - - const cache = useMemo(() => new InMemoryCache(), []); - - const apolloClient: ApolloClient = useMemo( - () => - new ApolloClient({ - cache, - link: httpLink, - }), - [cache, httpLink] - ); - - const gatewayApiImpl = useMemo(() => { - return new WorkflowListGatewayApiImpl(new GraphQLWorkflowListQueries(apolloClient)); - }, [apolloClient]); - - return {props.children}; -} diff --git a/packages/sonataflow-deployment-webapp/package.json b/packages/sonataflow-deployment-webapp/package.json index dcd93961583..8670bdcb87d 100644 --- a/packages/sonataflow-deployment-webapp/package.json +++ b/packages/sonataflow-deployment-webapp/package.json @@ -36,6 +36,7 @@ "@kie-tools/runtime-tools-components": "workspace:*", "@kie-tools/runtime-tools-enveloped-components": "workspace:*", "@kie-tools/runtime-tools-gateway-api": "workspace:*", + "@kie-tools/runtime-tools-webapp-components": "workspace:*", "@kie-tools/serverless-workflow-combined-editor": "workspace:*", "@kie-tools/serverless-workflow-diagram-editor-assets": "workspace:*", "@kie-tools/serverless-workflow-diagram-editor-envelope": "workspace:*", diff --git a/packages/sonataflow-deployment-webapp/src/App.tsx b/packages/sonataflow-deployment-webapp/src/App.tsx index 36830ac6c3e..c3cbf35b6ad 100644 --- a/packages/sonataflow-deployment-webapp/src/App.tsx +++ b/packages/sonataflow-deployment-webapp/src/App.tsx @@ -22,16 +22,16 @@ import { HashRouter } from "react-router-dom"; import { AppContextProvider } from "./context/AppContextProvider"; import { OpenApiContextProvider } from "./context/OpenApiContextProvider"; import { RoutesSwitch } from "./navigation/RoutesSwitch"; -import { WorkflowListContextProvider } from "./runtimeTools/workflows/WorkflowList"; -import { WorkflowDetailsContextProvider } from "./runtimeTools/workflows/WorkflowDetails"; +import { DeploymentWorkflowListContextProvider } from "./runtimeTools/contexts/DeploymentWorkflowListContextProvider"; +import { DeploymentWorkflowDetailsContextProvider } from "./runtimeTools/contexts/DeploymentWorkflowDetailsContextProvider"; export const App = () => ( {nest( [AppContextProvider, {}], [OpenApiContextProvider, {}], - [WorkflowListContextProvider, {}], - [WorkflowDetailsContextProvider, {}], + [DeploymentWorkflowListContextProvider, {}], + [DeploymentWorkflowDetailsContextProvider, {}], [RoutesSwitch, {}] )} diff --git a/packages/sonataflow-deployment-webapp/src/navigation/RuntimeToolsRoutesSwitch.tsx b/packages/sonataflow-deployment-webapp/src/navigation/RuntimeToolsRoutesSwitch.tsx index 9651c00d032..a4a1c3a5afb 100644 --- a/packages/sonataflow-deployment-webapp/src/navigation/RuntimeToolsRoutesSwitch.tsx +++ b/packages/sonataflow-deployment-webapp/src/navigation/RuntimeToolsRoutesSwitch.tsx @@ -18,9 +18,9 @@ */ import React from "react"; import { Route, Switch } from "react-router-dom"; -import { RuntimeToolsWorkflowInstances } from "../runtimeTools/workflows/RuntimeToolsWorkflowInstances"; +import { RuntimeToolsWorkflowInstances } from "../runtimeTools/pages/RuntimeToolsWorkflowInstances"; import { routes } from "../routes"; -import { RuntimeToolsWorkflowDetails } from "../runtimeTools/workflows/RuntimeToolsWorkflowDetails"; +import { RuntimeToolsWorkflowDetails } from "../runtimeTools/pages/RuntimeToolsWorkflowDetails"; export function RuntimeToolsRoutesSwitch() { return ( diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContext.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowDetailsContextProvider.tsx similarity index 63% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContext.ts rename to packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowDetailsContextProvider.tsx index 03ddf6f7903..49d303a96e5 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListContext.ts +++ b/packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowDetailsContextProvider.tsx @@ -17,11 +17,15 @@ * under the License. */ -import React, { useContext } from "react"; -import { WorkflowListGatewayApi } from "./WorkflowListGatewayApi"; +import * as React from "react"; +import { WorkflowDetailsContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetails"; +import { useApp } from "../../context/AppContext"; -export const WorkflowListContext = React.createContext({} as any); - -export function useWorkflowListGatewayApi() { - return useContext(WorkflowListContext); +export function DeploymentWorkflowDetailsContextProvider(props: React.PropsWithChildren<{}>) { + const app = useApp(); + return ( + + {props.children} + + ); } diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContext.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowListContextProvider.tsx similarity index 64% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContext.ts rename to packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowListContextProvider.tsx index 3d121100b69..e027f88b87c 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsContext.ts +++ b/packages/sonataflow-deployment-webapp/src/runtimeTools/contexts/DeploymentWorkflowListContextProvider.tsx @@ -17,11 +17,14 @@ * under the License. */ -import React, { useContext } from "react"; -import { WorkflowDetailsGatewayApi } from "./WorkflowDetailsGatewayApi"; +import * as React from "react"; +import { WorkflowListContextProvider } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowList"; +import { useApp } from "../../context/AppContext"; -export const WorkflowDetailsContext = React.createContext({} as any); +export function DeploymentWorkflowListContextProvider(props: React.PropsWithChildren<{}>) { + const app = useApp(); -export function useWorkflowDetailsGatewayApi() { - return useContext(WorkflowDetailsContext); + return ( + {props.children} + ); } diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx b/packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx similarity index 82% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx rename to packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx index db435442900..0155ab510fb 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowDetails.tsx +++ b/packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowDetails.tsx @@ -17,12 +17,15 @@ * under the License. */ -import React, { useEffect, useState } from "react"; +import React, { useCallback, useEffect, useState } from "react"; import { PageSection } from "@patternfly/react-core/dist/js/components/Page"; import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; import { ouiaPageTypeAndObjectId } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { useWorkflowDetailsGatewayApi, WorkflowDetailsGatewayApi } from "./WorkflowDetails"; -import WorkflowDetailsContainer from "./WorkflowDetailsContainer/WorkflowDetailsContainer"; +import { + WorkflowDetailsGatewayApi, + useWorkflowDetailsGatewayApi, +} from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetails"; +import { WorkflowDetailsContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowDetailsContainer"; import { WorkflowInstance } from "@kie-tools/runtime-tools-gateway-api/dist/types"; import { ServerErrors } from "@kie-tools/runtime-tools-components/dist/components/ServerErrors"; import { KogitoSpinner } from "@kie-tools/runtime-tools-components/dist/components/KogitoSpinner"; @@ -30,6 +33,8 @@ import { Card } from "@patternfly/react-core/dist/js/components/Card"; import { Bullseye } from "@patternfly/react-core/dist/js/layouts/Bullseye"; import { BasePage } from "../../pages/BasePage"; import { useApp } from "../../context/AppContext"; +import { useHistory } from "react-router"; +import { routes } from "../../routes"; const PAGE_TITLE = "Workflow Details"; @@ -38,6 +43,7 @@ interface WorkflowListContainerProps { } export function RuntimeToolsWorkflowDetails(props: WorkflowListContainerProps) { const gatewayApi: WorkflowDetailsGatewayApi = useWorkflowDetailsGatewayApi(); + const history = useHistory(); const app = useApp(); const [workflowInstance, setWorkflowInstance] = useState({} as WorkflowInstance); @@ -65,6 +71,14 @@ export function RuntimeToolsWorkflowDetails(props: WorkflowListContainerProps) { return ouiaPageTypeAndObjectId("workflow-details"); }); + const onOpenWorkflowInstanceDetails = useCallback( + (workflowId: string) => { + history.push(`/`); + history.push(routes.runtimeTools.workflowDetails.path({ workflowId })); + }, + [history] + ); + return ( <> @@ -87,7 +101,10 @@ export function RuntimeToolsWorkflowDetails(props: WorkflowListContainerProps) { )} {!isLoading && workflowInstance && Object.keys(workflowInstance).length > 0 && !fetchError ? ( - + ) : ( <> {fetchError.length > 0 && ( diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx b/packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx similarity index 82% rename from packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx rename to packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx index 58a44df63ae..bac4a51230d 100644 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/RuntimeToolsWorkflowInstances.tsx +++ b/packages/sonataflow-deployment-webapp/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import React, { useMemo } from "react"; +import React, { useCallback, useMemo } from "react"; import { EmptyState, EmptyStateBody, EmptyStateIcon } from "@patternfly/react-core/dist/js/components/EmptyState"; import { PageSection } from "@patternfly/react-core/dist/js/components/Page"; import { Text, TextContent, TextVariants } from "@patternfly/react-core/dist/js/components/Text"; @@ -25,10 +25,11 @@ import { Bullseye } from "@patternfly/react-core/dist/js/layouts/Bullseye"; import { CubesIcon } from "@patternfly/react-icons/dist/js/icons"; import { useHistory } from "react-router"; import { useApp } from "../../context/AppContext"; -import { WorkflowListState } from "./WorkflowList/WorkflowListGatewayApi"; -import WorkflowListContainer from "./WorkflowListContainer/WorkflowListContainer"; +import { WorkflowListState } from "@kie-tools/runtime-tools-gateway-api/dist/types"; +import { WorkflowListContainer } from "@kie-tools/runtime-tools-webapp-components/dist/WorkflowListContainer"; import { BasePage } from "../../pages/BasePage"; import { SONATAFLOW_DEPLOYMENT_DATAINDEX_DOCUMENTATION_URL } from "../../AppConstants"; +import { routes } from "../../routes"; const PAGE_TITLE = "Workflow Instances"; @@ -63,6 +64,16 @@ export function RuntimeToolsWorkflowInstances() { [] ); + const onOpenWorkflowDetails = useCallback( + (args: { workflowId: string; state: WorkflowListState }) => { + history.push({ + pathname: routes.runtimeTools.workflowDetails.path({ workflowId: args.workflowId }), + state: args.state, + }); + }, + [history] + ); + return ( @@ -80,7 +91,7 @@ export function RuntimeToolsWorkflowInstances() { {app.dataIndexAvailable === false ? ( dataIndexNotAvailable ) : ( - + )} diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts deleted file mode 100644 index be93174c72a..00000000000 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/WorkflowDetailsQueries.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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 { ApolloClient } from "apollo-client"; -import { - WorkflowInstance, - Job, - JobCancel, - TriggerableNode, - NodeInstance, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { - handleWorkflowAbort, - handleWorkflowSkip, - handleWorkflowRetry, - jobCancel, - handleJobReschedule, - handleNodeTrigger, - handleWorkflowVariableUpdate, - handleNodeInstanceCancel, - handleNodeInstanceRetrigger, - getWorkflowDetails, - getJobs, - getTriggerableNodes, -} from "@kie-tools/runtime-tools-gateway-api/dist/gatewayApi"; - -export interface WorkflowDetailsQueries { - getWorkflowDetails(id: string): Promise; - getJobs(id: string): Promise; - handleWorkflowSkip(workflowInstance: WorkflowInstance): Promise; - handleWorkflowAbort(workflowInstance: WorkflowInstance): Promise; - handleWorkflowRetry(workflowInstance: WorkflowInstance): Promise; - jobCancel(job: Job): Promise; - rescheduleJob: ( - job: Job, - repeatInterval: number | string, - repeatLimit: number | string, - scheduleDate: Date - ) => Promise<{ modalTitle: string; modalContent: string }>; - getTriggerableNodes(workflowInstance: WorkflowInstance): Promise; - handleNodeTrigger(workflowInstance: WorkflowInstance, node: any): Promise; - handleWorkflowVariableUpdate: ( - workflowInstance: WorkflowInstance, - updateJson: Record - ) => Promise>; - handleNodeInstanceCancel: (workflowInstance: WorkflowInstance, node: NodeInstance) => Promise; - handleNodeInstanceRetrigger(workflowInstance: WorkflowInstance, node: NodeInstance): Promise; -} - -export class GraphQLWorkflowDetailsQueries implements WorkflowDetailsQueries { - private readonly client: ApolloClient; - - constructor(client: ApolloClient) { - this.client = client; - } - - async getWorkflowDetails(id: string): Promise { - return getWorkflowDetails(id, this.client); - } - - async getJobs(id: string): Promise { - return Promise.resolve(getJobs(id, this.client)); - } - - async handleWorkflowSkip(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowSkip(workflowInstance, this.client); - } - - async handleWorkflowAbort(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowAbort(workflowInstance, this.client); - } - - async handleWorkflowRetry(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowRetry(workflowInstance, this.client); - } - - async jobCancel(job: Job): Promise { - return jobCancel(job, this.client); - } - - async rescheduleJob( - job: Job, - repeatInterval: number | string, - repeatLimit: number | string, - scheduleDate: Date - ): Promise<{ modalTitle: string; modalContent: string }> { - return handleJobReschedule(job, repeatInterval, repeatLimit, scheduleDate, this.client); - } - - async getTriggerableNodes(workflowInstance: WorkflowInstance): Promise { - return Promise.resolve(getTriggerableNodes(workflowInstance, this.client)); - } - - async handleNodeTrigger(workflowInstance: WorkflowInstance, node: any): Promise { - return handleNodeTrigger(workflowInstance, node, this.client); - } - - async handleNodeInstanceCancel(workflowInstance: WorkflowInstance, node: NodeInstance): Promise { - return handleNodeInstanceCancel(workflowInstance, node, this.client); - } - - async handleWorkflowVariableUpdate( - workflowInstance: WorkflowInstance, - updateJson: Record - ): Promise> { - return handleWorkflowVariableUpdate(workflowInstance, updateJson, this.client); - } - - async handleNodeInstanceRetrigger(workflowInstance: WorkflowInstance, node: NodeInstance): Promise { - return handleNodeInstanceRetrigger(workflowInstance, node, this.client); - } -} diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/index.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/index.ts deleted file mode 100644 index e70ebd3e787..00000000000 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowDetails/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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. - */ - -export { WorkflowDetailsGatewayApi } from "./WorkflowDetailsGatewayApi"; -export * from "./WorkflowDetailsContext"; -export { WorkflowDetailsContextProvider } from "./WorkflowDetailsContextProvider"; diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts deleted file mode 100644 index 9d4b1f2d636..00000000000 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListGatewayApi.ts +++ /dev/null @@ -1,185 +0,0 @@ -/* - * 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 { - BulkWorkflowInstanceActionResponse, - WorkflowInstance, - WorkflowInstanceFilter, - WorkflowListSortBy, - OperationType, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { WorkflowListQueries } from "./WorkflowListQueries"; - -export interface WorkflowListGatewayApi { - workflowListState: WorkflowListState; - initialLoad: (filter: WorkflowInstanceFilter, sortBy: WorkflowListSortBy) => Promise; - openWorkflow: (workflow: WorkflowInstance) => Promise; - applyFilter: (filter: WorkflowInstanceFilter) => Promise; - applySorting: (SortBy: WorkflowListSortBy) => Promise; - handleWorkflowSkip: (workflowInstance: WorkflowInstance) => Promise; - handleWorkflowRetry: (workflowInstance: WorkflowInstance) => Promise; - handleWorkflowAbort: (workflowInstance: WorkflowInstance) => Promise; - handleWorkflowMultipleAction: ( - workflowInstances: WorkflowInstance[], - operationType: OperationType - ) => Promise; - query(offset: number, limit: number): Promise; - getChildWorkflowsQuery(rootWorkflowInstanceId: string): Promise; - openTriggerCloudEvent: (workflowInstance?: WorkflowInstance) => void; - onOpenWorkflowListen: (listener: OnOpenWorkflowListener) => UnSubscribeHandler; - onOpenTriggerCloudEventListen: (listener: OnOpenTriggerCloudEventListener) => UnSubscribeHandler; -} - -export interface WorkflowListState { - filters: WorkflowInstanceFilter; - sortBy: WorkflowListSortBy; -} - -export interface OnOpenWorkflowListener { - onOpen: (workflow: WorkflowInstance) => void; -} - -export interface OnOpenTriggerCloudEventListener { - onOpen: (workflow?: WorkflowInstance) => void; -} - -export interface UnSubscribeHandler { - unSubscribe: () => void; -} -export class WorkflowListGatewayApiImpl implements WorkflowListGatewayApi { - private readonly onOpenWorkflowListeners: OnOpenWorkflowListener[] = []; - private readonly onOpenTriggerCloudEventListeners: OnOpenTriggerCloudEventListener[] = []; - - private readonly queries: WorkflowListQueries; - private _WorkflowListState: WorkflowListState; - - constructor(queries: WorkflowListQueries) { - this.queries = queries; - this._WorkflowListState = { - filters: { - status: [], - businessKey: [], - }, - sortBy: {}, - }; - } - - get workflowListState(): WorkflowListState { - return this._WorkflowListState; - } - - openWorkflow = (workflow: WorkflowInstance): Promise => { - this.onOpenWorkflowListeners.forEach((listener) => listener.onOpen(workflow)); - return Promise.resolve(); - }; - - initialLoad = (filter: WorkflowInstanceFilter, sortBy: WorkflowListSortBy): Promise => { - this._WorkflowListState.filters = filter; - this._WorkflowListState.sortBy = sortBy; - return Promise.resolve(); - }; - - applyFilter = (filter: WorkflowInstanceFilter): Promise => { - this.workflowListState.filters = filter; - return Promise.resolve(); - }; - - applySorting = (sortBy: WorkflowListSortBy) => { - this._WorkflowListState.sortBy = sortBy; - return Promise.resolve(); - }; - - handleWorkflowSkip = async (workflowInstance: WorkflowInstance): Promise => { - return this.queries.handleWorkflowSkip(workflowInstance); - }; - - handleWorkflowRetry = async (workflowInstance: WorkflowInstance): Promise => { - return this.queries.handleWorkflowRetry(workflowInstance); - }; - - handleWorkflowAbort = async (workflowInstance: WorkflowInstance): Promise => { - return this.queries.handleWorkflowAbort(workflowInstance); - }; - - handleWorkflowMultipleAction = async ( - workflowInstances: WorkflowInstance[], - operationType: OperationType - ): Promise => { - return this.queries.handleWorkflowMultipleAction(workflowInstances, operationType); - }; - query(offset: number, limit: number): Promise { - return new Promise((resolve, reject) => { - this.queries - .getWorkflowInstances(offset, limit, this._WorkflowListState.filters, this._WorkflowListState.sortBy) - .then((value) => { - resolve(value); - }) - .catch((reason) => { - reject(reason); - }); - }); - } - - getChildWorkflowsQuery(rootWorkflowInstanceId: string): Promise { - return new Promise((resolve, reject) => { - this.queries - .getChildWorkflowInstances(rootWorkflowInstanceId) - .then((value) => { - resolve(value); - }) - .catch((reason) => { - reject(reason); - }); - }); - } - - onOpenWorkflowListen(listener: OnOpenWorkflowListener): UnSubscribeHandler { - this.onOpenWorkflowListeners.push(listener); - - const unSubscribe = () => { - const index = this.onOpenWorkflowListeners.indexOf(listener); - if (index > -1) { - this.onOpenWorkflowListeners.splice(index, 1); - } - }; - - return { - unSubscribe, - }; - } - - onOpenTriggerCloudEventListen(listener: OnOpenTriggerCloudEventListener): UnSubscribeHandler { - this.onOpenTriggerCloudEventListeners.push(listener); - - const unSubscribe = () => { - const index = this.onOpenTriggerCloudEventListeners.indexOf(listener); - if (index > -1) { - this.onOpenTriggerCloudEventListeners.splice(index, 1); - } - }; - - return { - unSubscribe, - }; - } - - openTriggerCloudEvent(workflowInstance?: WorkflowInstance): void { - this.onOpenTriggerCloudEventListeners.forEach((listener) => listener.onOpen(workflowInstance)); - } -} diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts b/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts deleted file mode 100644 index d8dd1240c41..00000000000 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowList/WorkflowListQueries.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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 { ApolloClient } from "apollo-client"; -import { - BulkWorkflowInstanceActionResponse, - WorkflowInstance, - WorkflowListSortBy, - WorkflowInstanceFilter, - OperationType, -} from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { - handleWorkflowAbort, - handleWorkflowMultipleAction, - handleWorkflowSkip, - handleWorkflowRetry, - getWorkflowInstances, - getChildWorkflowInstances, -} from "@kie-tools/runtime-tools-gateway-api/dist/gatewayApi"; - -export interface WorkflowListQueries { - getWorkflowInstances( - start: number, - end: number, - filters: WorkflowInstanceFilter, - sortBy: WorkflowListSortBy - ): Promise; - getChildWorkflowInstances(rootWorkflowInstanceId: string): Promise; - handleWorkflowSkip(workflowInstance: WorkflowInstance): Promise; - handleWorkflowAbort(workflowInstance: WorkflowInstance): Promise; - handleWorkflowRetry(workflowInstance: WorkflowInstance): Promise; - - handleWorkflowMultipleAction( - workflowInstances: WorkflowInstance[], - operationType: OperationType - ): Promise; -} - -export class GraphQLWorkflowListQueries implements WorkflowListQueries { - private readonly client: ApolloClient; - - constructor(client: ApolloClient) { - this.client = client; - } - - getWorkflowInstances( - offset: number, - limit: number, - filters: WorkflowInstanceFilter, - sortBy: WorkflowListSortBy - ): Promise { - return getWorkflowInstances(offset, limit, filters, sortBy, this.client); - } - - getChildWorkflowInstances(rootWorkflowInstanceId: string): Promise { - return getChildWorkflowInstances(rootWorkflowInstanceId, this.client); - } - - async handleWorkflowSkip(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowSkip(workflowInstance, this.client); - } - - async handleWorkflowAbort(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowAbort(workflowInstance, this.client); - } - - async handleWorkflowRetry(workflowInstance: WorkflowInstance): Promise { - return handleWorkflowRetry(workflowInstance, this.client); - } - - async handleWorkflowMultipleAction(workflowInstances: WorkflowInstance[], operationType: OperationType) { - return handleWorkflowMultipleAction(workflowInstances, operationType, this.client); - } -} diff --git a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx b/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx deleted file mode 100644 index 2582367f062..00000000000 --- a/packages/sonataflow-deployment-webapp/src/runtimeTools/workflows/WorkflowListContainer/WorkflowListContainer.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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 } from "react"; -import { useHistory } from "react-router-dom"; -import { componentOuiaProps, OUIAProps } from "@kie-tools/runtime-tools-components/dist/ouiaTools"; -import { EmbeddedWorkflowList } from "@kie-tools/runtime-tools-enveloped-components/dist/workflowList/embedded"; -import { WorkflowListGatewayApi, useWorkflowListGatewayApi } from "../WorkflowList"; -import { WorkflowInstance, WorkflowListState } from "@kie-tools/runtime-tools-gateway-api/dist/types"; -import { routes } from "../../../routes"; - -interface WorkflowListContainerProps { - initialState: WorkflowListState; -} - -const WorkflowListContainer: React.FC = ({ - initialState, - ouiaId, - ouiaSafe, -}) => { - const history = useHistory(); - const gatewayApi: WorkflowListGatewayApi = useWorkflowListGatewayApi(); - - useEffect(() => { - const onOpenInstanceUnsubscriber = gatewayApi.onOpenWorkflowListen({ - onOpen(workflow: WorkflowInstance) { - history.push({ - pathname: routes.runtimeTools.workflowDetails.path({ workflowId: workflow.id }), - state: gatewayApi.workflowListState, - }); - }, - }); - return () => { - onOpenInstanceUnsubscriber.unSubscribe(); - }; - }, []); - - return ( - - ); -}; - -export default WorkflowListContainer; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7445f48415..7778155e0b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5421,7 +5421,7 @@ importers: version: 4.8.4 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0)(webpack@5.88.2) + version: 4.1.1(webpack@5.88.2) webpack: specifier: ^5.88.2 version: 5.88.2(webpack-cli@4.10.0) @@ -5834,7 +5834,7 @@ importers: version: 4.1.1(file-loader@6.2.0)(webpack@5.88.2) webpack: specifier: ^5.88.2 - version: 5.88.2(webpack-cli@4.10.0) + version: 5.88.2 packages/playwright-base: devDependencies: @@ -6625,6 +6625,79 @@ importers: specifier: ^4.6.2 version: 4.8.4 + packages/runtime-tools-webapp-components: + dependencies: + "@kie-tools/runtime-tools-components": + specifier: workspace:* + version: link:../runtime-tools-components + "@kie-tools/runtime-tools-enveloped-components": + specifier: workspace:* + version: link:../runtime-tools-enveloped-components + "@kie-tools/runtime-tools-gateway-api": + specifier: workspace:* + version: link:../runtime-tools-gateway-api + "@patternfly/react-core": + specifier: ^4.276.6 + version: 4.276.6(react-dom@17.0.2)(react@17.0.2) + apollo-cache-inmemory: + specifier: 1.6.6 + version: 1.6.6(graphql@14.3.1) + apollo-client: + specifier: 2.6.10 + version: 2.6.10(graphql@14.3.1) + apollo-link-http: + specifier: 1.5.17 + version: 1.5.17(graphql@14.3.1) + react: + specifier: ^17.0.2 + version: 17.0.2 + devDependencies: + "@babel/core": + specifier: ^7.16.0 + version: 7.23.0 + "@babel/preset-env": + specifier: ^7.16.0 + version: 7.22.20(@babel/core@7.23.0) + "@babel/preset-react": + specifier: ^7.16.0 + version: 7.22.15(@babel/core@7.23.0) + "@kie-tools/eslint": + specifier: workspace:* + version: link:../eslint + "@kie-tools/root-env": + specifier: workspace:* + version: link:../root-env + "@kie-tools/tsconfig": + specifier: workspace:* + version: link:../tsconfig + "@testing-library/jest-dom": + specifier: ^5.16.1 + version: 5.16.1 + "@testing-library/react": + specifier: ^11.2.6 + version: 11.2.7(react-dom@17.0.2)(react@17.0.2) + "@types/jest": + specifier: ^26.0.23 + version: 26.0.23 + "@types/react": + specifier: ^17.0.6 + version: 17.0.21 + "@types/testing-library__jest-dom": + specifier: ^5.9.1 + version: 5.9.5 + "@types/testing-library__react": + specifier: ^9.1.2 + version: 9.1.3 + jest: + specifier: ^26.6.3 + version: 26.6.3 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + typescript: + specifier: ^4.6.2 + version: 4.8.4 + packages/scesim-editor: dependencies: "@kie-tools-core/i18n": @@ -6821,6 +6894,9 @@ importers: "@kie-tools/runtime-tools-gateway-api": specifier: workspace:* version: link:../runtime-tools-gateway-api + "@kie-tools/runtime-tools-webapp-components": + specifier: workspace:* + version: link:../runtime-tools-webapp-components "@kie-tools/serverless-workflow-combined-editor": specifier: workspace:* version: link:../serverless-workflow-combined-editor @@ -8185,6 +8261,9 @@ importers: "@kie-tools/runtime-tools-gateway-api": specifier: workspace:* version: link:../runtime-tools-gateway-api + "@kie-tools/runtime-tools-webapp-components": + specifier: workspace:* + version: link:../runtime-tools-webapp-components "@kie-tools/serverless-workflow-combined-editor": specifier: workspace:* version: link:../serverless-workflow-combined-editor @@ -8658,10 +8737,10 @@ importers: version: 4.8.4 webpack: specifier: ^5.88.2 - version: 5.88.2(webpack-cli@4.10.0) + version: 5.88.2 webpack-dev-server: specifier: ^4.15.1 - version: 4.15.1(webpack-cli@4.10.0)(webpack@5.88.2) + version: 4.15.1(webpack@5.88.2) webpack-merge: specifier: ^5.9.0 version: 5.9.0 @@ -9544,7 +9623,7 @@ importers: version: 9.4.2(typescript@4.8.4)(webpack@5.88.2) webpack: specifier: ^5.88.2 - version: 5.88.2(webpack-cli@4.10.0) + version: 5.88.2 packages/workspace: dependencies: @@ -10118,7 +10197,7 @@ importers: version: 4.8.4 webpack: specifier: ^5.88.2 - version: 5.88.2(webpack-cli@4.10.0) + version: 5.88.2 packages/yard-validator: dependencies: @@ -10933,13 +11012,13 @@ packages: peerDependencies: graphql: "*" dependencies: - "@babel/core": 7.18.10 - "@babel/generator": 7.21.5 - "@babel/parser": 7.21.8 + "@babel/core": 7.23.0 + "@babel/generator": 7.23.0 + "@babel/parser": 7.23.0 "@babel/runtime": 7.18.9 - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 - babel-preset-fbjs: 3.4.0(@babel/core@7.18.10) + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.23.0) chalk: 4.1.2 fb-watchman: 2.0.1 fbjs: 3.0.2 @@ -10992,7 +11071,7 @@ packages: { integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== } engines: { node: ">=6.9.0" } dependencies: - "@babel/highlight": 7.18.6 + "@babel/highlight": 7.22.20 dev: true /@babel/code-frame@7.22.13: @@ -11109,7 +11188,7 @@ packages: { integrity: sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 "@jridgewell/gen-mapping": 0.3.3 jsesc: 2.5.2 dev: true @@ -11119,7 +11198,7 @@ packages: { integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 "@jridgewell/gen-mapping": 0.3.3 jsesc: 2.5.2 dev: true @@ -11129,7 +11208,7 @@ packages: { integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 "@jridgewell/gen-mapping": 0.3.3 "@jridgewell/trace-mapping": 0.3.18 jsesc: 2.5.2 @@ -11151,7 +11230,7 @@ packages: { integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-annotate-as-pure@7.22.5: @@ -11167,7 +11246,7 @@ packages: { integrity: sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: @@ -11213,9 +11292,9 @@ packages: peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/compat-data": 7.21.7 + "@babel/compat-data": 7.22.20 "@babel/core": 7.16.12 - "@babel/helper-validator-option": 7.21.0 + "@babel/helper-validator-option": 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -11228,9 +11307,9 @@ packages: peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/compat-data": 7.21.7 + "@babel/compat-data": 7.22.20 "@babel/core": 7.18.10 - "@babel/helper-validator-option": 7.21.0 + "@babel/helper-validator-option": 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -11243,9 +11322,9 @@ packages: peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/compat-data": 7.21.7 + "@babel/compat-data": 7.22.20 "@babel/core": 7.23.0 - "@babel/helper-validator-option": 7.21.0 + "@babel/helper-validator-option": 7.22.15 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -11271,38 +11350,15 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-function-name": 7.21.0 - "@babel/helper-member-expression-to-functions": 7.21.5 - "@babel/helper-optimise-call-expression": 7.18.6 - "@babel/helper-replace-supers": 7.21.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 - "@babel/helper-split-export-declaration": 7.18.6 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.18.10): - resolution: - { integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-function-name": 7.21.0 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 "@babel/helper-member-expression-to-functions": 7.21.5 - "@babel/helper-optimise-call-expression": 7.18.6 - "@babel/helper-replace-supers": 7.21.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 - "@babel/helper-split-export-declaration": 7.18.6 + "@babel/helper-optimise-call-expression": 7.22.5 + "@babel/helper-replace-supers": 7.22.20(@babel/core@7.16.12) + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 semver: 6.3.1 - transitivePeerDependencies: - - supports-color dev: true /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.23.0): @@ -11313,17 +11369,15 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-function-name": 7.21.0 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 "@babel/helper-member-expression-to-functions": 7.21.5 - "@babel/helper-optimise-call-expression": 7.18.6 - "@babel/helper-replace-supers": 7.21.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 - "@babel/helper-split-export-declaration": 7.18.6 + "@babel/helper-optimise-call-expression": 7.22.5 + "@babel/helper-replace-supers": 7.22.20(@babel/core@7.23.0) + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 semver: 6.3.1 - transitivePeerDependencies: - - supports-color dev: true /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.16.12): @@ -11391,7 +11445,7 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true @@ -11404,7 +11458,7 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true @@ -11417,7 +11471,20 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.16.12): + resolution: + { integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.16.12 + "@babel/helper-annotate-as-pure": 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true @@ -11442,11 +11509,11 @@ packages: "@babel/core": ^7.4.0-0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.16.12) + "@babel/helper-compilation-targets": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.8 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11459,11 +11526,11 @@ packages: "@babel/core": ^7.4.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.18.10) + "@babel/helper-compilation-targets": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.8 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11476,11 +11543,11 @@ packages: "@babel/core": ^7.4.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.23.0) + "@babel/helper-compilation-targets": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.8 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11497,7 +11564,7 @@ packages: "@babel/helper-plugin-utils": 7.22.5 debug: 4.3.4(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.8 transitivePeerDependencies: - supports-color dev: true @@ -11507,7 +11574,7 @@ packages: { integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-environment-visitor@7.21.5: @@ -11527,8 +11594,8 @@ packages: { integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/template": 7.20.7 - "@babel/types": 7.21.5 + "@babel/template": 7.22.15 + "@babel/types": 7.23.0 dev: true /@babel/helper-function-name@7.21.0: @@ -11536,8 +11603,8 @@ packages: { integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/template": 7.20.7 - "@babel/types": 7.21.5 + "@babel/template": 7.22.15 + "@babel/types": 7.23.0 dev: true /@babel/helper-function-name@7.23.0: @@ -11554,7 +11621,7 @@ packages: { integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-hoist-variables@7.18.6: @@ -11562,7 +11629,7 @@ packages: { integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-hoist-variables@7.22.5: @@ -11578,7 +11645,7 @@ packages: { integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-member-expression-to-functions@7.23.0: @@ -11594,7 +11661,7 @@ packages: { integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-module-imports@7.22.15: @@ -11627,14 +11694,14 @@ packages: { integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== } engines: { node: ">=6.9.0" } dependencies: - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-module-imports": 7.21.4 - "@babel/helper-simple-access": 7.21.5 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/helper-validator-identifier": 7.19.1 - "@babel/template": 7.20.7 - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-module-imports": 7.22.15 + "@babel/helper-simple-access": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/helper-validator-identifier": 7.22.20 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -11689,7 +11756,7 @@ packages: { integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-optimise-call-expression@7.22.5: @@ -11726,44 +11793,37 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-wrap-function": 7.20.5 - "@babel/types": 7.21.5 - transitivePeerDependencies: - - supports-color + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-wrap-function": 7.22.20 + "@babel/types": 7.23.0 dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.18.10): + /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.23.0): resolution: { integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-wrap-function": 7.20.5 - "@babel/types": 7.21.5 - transitivePeerDependencies: - - supports-color + "@babel/core": 7.23.0 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-wrap-function": 7.22.20 + "@babel/types": 7.23.0 dev: true - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.23.0): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.18.10): resolution: - { integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== } + { integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.23.0 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-wrap-function": 7.20.5 - "@babel/types": 7.21.5 - transitivePeerDependencies: - - supports-color + "@babel/core": 7.18.10 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-wrap-function": 7.22.20 dev: true /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.0): @@ -11784,12 +11844,12 @@ packages: { integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/helper-environment-visitor": 7.21.5 + "@babel/helper-environment-visitor": 7.22.20 "@babel/helper-member-expression-to-functions": 7.21.5 - "@babel/helper-optimise-call-expression": 7.18.6 - "@babel/template": 7.20.7 - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 + "@babel/helper-optimise-call-expression": 7.22.5 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -11838,7 +11898,7 @@ packages: { integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-simple-access@7.22.5: @@ -11854,7 +11914,7 @@ packages: { integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-skip-transparent-expression-wrappers@7.22.5: @@ -11870,7 +11930,7 @@ packages: { integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-split-export-declaration@7.18.6: @@ -11878,7 +11938,7 @@ packages: { integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/helper-split-export-declaration@7.22.6: @@ -11889,12 +11949,6 @@ packages: "@babel/types": 7.23.0 dev: true - /@babel/helper-string-parser@7.21.5: - resolution: - { integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== } - engines: { node: ">=6.9.0" } - dev: true - /@babel/helper-string-parser@7.22.5: resolution: { integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== } @@ -11931,19 +11985,6 @@ packages: engines: { node: ">=6.9.0" } dev: true - /@babel/helper-wrap-function@7.20.5: - resolution: - { integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== } - engines: { node: ">=6.9.0" } - dependencies: - "@babel/helper-function-name": 7.21.0 - "@babel/template": 7.20.7 - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-wrap-function@7.22.20: resolution: { integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== } @@ -11971,9 +12012,9 @@ packages: { integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/template": 7.20.7 - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 + "@babel/template": 7.22.15 + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 transitivePeerDependencies: - supports-color dev: true @@ -11995,7 +12036,7 @@ packages: { integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== } engines: { node: ">=6.9.0" } dependencies: - "@babel/helper-validator-identifier": 7.19.1 + "@babel/helper-validator-identifier": 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 dev: true @@ -12025,7 +12066,7 @@ packages: engines: { node: ">=6.0.0" } hasBin: true dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/parser@7.21.8: @@ -12034,7 +12075,7 @@ packages: engines: { node: ">=6.0.0" } hasBin: true dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@babel/parser@7.23.0: @@ -12125,7 +12166,7 @@ packages: dependencies: "@babel/core": 7.18.10 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 "@babel/plugin-proposal-optional-chaining": 7.21.0(@babel/core@7.18.10) dev: true @@ -12153,8 +12194,6 @@ packages: "@babel/helper-plugin-utils": 7.21.5 "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.16.12) "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.16.12) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-async-generator-functions@7.16.8(@babel/core@7.23.0): @@ -12168,8 +12207,6 @@ packages: "@babel/helper-plugin-utils": 7.21.5 "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.23.0) "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.23.0) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-async-generator-functions@7.18.10(@babel/core@7.18.10): @@ -12181,12 +12218,10 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-environment-visitor": 7.21.5 + "@babel/helper-environment-visitor": 7.22.20 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.18.10) + "@babel/helper-remap-async-to-generator": 7.22.20(@babel/core@7.18.10) "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.18.10) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-properties@7.16.7(@babel/core@7.16.12): @@ -12199,8 +12234,6 @@ packages: "@babel/core": 7.16.12 "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.16.12) "@babel/helper-plugin-utils": 7.21.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-properties@7.16.7(@babel/core@7.23.0): @@ -12213,8 +12246,6 @@ packages: "@babel/core": 7.23.0 "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.21.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.18.10): @@ -12226,10 +12257,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.18.10) + "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.0): @@ -12241,10 +12270,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.23.0) + "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-static-block@7.17.6(@babel/core@7.16.12): @@ -12258,8 +12285,6 @@ packages: "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.16.12) "@babel/helper-plugin-utils": 7.21.5 "@babel/plugin-syntax-class-static-block": 7.14.5(@babel/core@7.16.12) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-static-block@7.17.6(@babel/core@7.23.0): @@ -12273,8 +12298,6 @@ packages: "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.21.5 "@babel/plugin-syntax-class-static-block": 7.14.5(@babel/core@7.23.0) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.18.10): @@ -12286,11 +12309,9 @@ packages: "@babel/core": ^7.12.0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.18.10) + "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 "@babel/plugin-syntax-class-static-block": 7.14.5(@babel/core@7.18.10) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-dynamic-import@7.16.7(@babel/core@7.16.12): @@ -12563,12 +12584,28 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/compat-data": 7.21.7 + "@babel/compat-data": 7.22.20 "@babel/core": 7.18.10 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.18.10) + "@babel/helper-compilation-targets": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-transform-parameters": 7.21.3(@babel/core@7.18.10) + "@babel/plugin-transform-parameters": 7.22.15(@babel/core@7.18.10) + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.0): + resolution: + { integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== } + engines: { node: ">=6.9.0" } + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/compat-data": 7.22.20 + "@babel/core": 7.23.0 + "@babel/helper-compilation-targets": 7.22.15 + "@babel/helper-plugin-utils": 7.22.5 + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-transform-parameters": 7.22.15(@babel/core@7.23.0) dev: true /@babel/plugin-proposal-optional-catch-binding@7.16.7(@babel/core@7.16.12): @@ -12644,7 +12681,7 @@ packages: dependencies: "@babel/core": 7.16.12 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.16.12) dev: true @@ -12658,7 +12695,7 @@ packages: dependencies: "@babel/core": 7.18.10 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.18.10) dev: true @@ -12672,7 +12709,7 @@ packages: dependencies: "@babel/core": 7.23.0 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.23.0) dev: true @@ -12686,8 +12723,6 @@ packages: "@babel/core": 7.16.12 "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.16.12) "@babel/helper-plugin-utils": 7.21.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-methods@7.16.11(@babel/core@7.23.0): @@ -12700,8 +12735,6 @@ packages: "@babel/core": 7.23.0 "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.21.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.18.10): @@ -12713,10 +12746,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.18.10) + "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-property-in-object@7.16.7(@babel/core@7.16.12): @@ -12731,8 +12762,6 @@ packages: "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.16.12) "@babel/helper-plugin-utils": 7.21.5 "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.16.12) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-property-in-object@7.16.7(@babel/core@7.23.0): @@ -12747,8 +12776,6 @@ packages: "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.21.5 "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.23.0) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.18.10): @@ -12760,12 +12787,10 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-create-class-features-plugin": 7.21.8(@babel/core@7.18.10) + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 "@babel/plugin-syntax-private-property-in-object": 7.14.5(@babel/core@7.18.10) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.0): @@ -12811,7 +12836,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-create-regexp-features-plugin": 7.21.8(@babel/core@7.16.12) + "@babel/helper-create-regexp-features-plugin": 7.22.15(@babel/core@7.16.12) "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -12837,7 +12862,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-create-regexp-features-plugin": 7.21.8(@babel/core@7.23.0) + "@babel/helper-create-regexp-features-plugin": 7.22.15(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -12871,13 +12896,13 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.18.10): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.0): resolution: { integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -13015,31 +13040,31 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.18.10): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.0): resolution: { integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.0): + /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.18.10): resolution: - { integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== } + { integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.23.0 + "@babel/core": 7.18.10 "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.18.10): + /@babel/plugin-syntax-import-assertions@7.22.5(@babel/core@7.18.10): resolution: - { integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== } + { integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0-0 @@ -13070,16 +13095,6 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.18.10): - resolution: - { integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-plugin-utils": 7.22.5 - dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.0): resolution: { integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== } @@ -13120,39 +13135,6 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.16.0(@babel/core@7.16.12): - resolution: - { integrity: sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.16.12 - "@babel/helper-plugin-utils": 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx@7.16.0(@babel/core@7.18.10): - resolution: - { integrity: sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-plugin-utils": 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx@7.16.0(@babel/core@7.23.0): - resolution: - { integrity: sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.23.0 - "@babel/helper-plugin-utils": 7.22.5 - dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.16.12): resolution: { integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== } @@ -13443,17 +13425,6 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.18.10): - resolution: - { integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-plugin-utils": 7.22.5 - dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): resolution: { integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== } @@ -13473,7 +13444,7 @@ packages: "@babel/core": ^7.0.0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-create-regexp-features-plugin": 7.21.8(@babel/core@7.23.0) + "@babel/helper-create-regexp-features-plugin": 7.22.15(@babel/core@7.23.0) "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -13546,8 +13517,6 @@ packages: "@babel/helper-module-imports": 7.21.4 "@babel/helper-plugin-utils": 7.21.5 "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.16.12) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-transform-async-to-generator@7.16.8(@babel/core@7.23.0): @@ -13561,8 +13530,6 @@ packages: "@babel/helper-module-imports": 7.21.4 "@babel/helper-plugin-utils": 7.21.5 "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.23.0) - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.18.10): @@ -13573,11 +13540,9 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-module-imports": 7.21.4 + "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-remap-async-to-generator": 7.18.9(@babel/core@7.18.10) - transitivePeerDependencies: - - supports-color + "@babel/helper-remap-async-to-generator": 7.22.20(@babel/core@7.18.10) dev: true /@babel/plugin-transform-async-to-generator@7.22.5(@babel/core@7.23.0): @@ -13754,14 +13719,14 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.18.10) - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-function-name": 7.21.0 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-compilation-targets": 7.22.15 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 "@babel/helper-optimise-call-expression": 7.18.6 "@babel/helper-plugin-utils": 7.22.5 "@babel/helper-replace-supers": 7.21.5 - "@babel/helper-split-export-declaration": 7.18.6 + "@babel/helper-split-export-declaration": 7.22.6 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -13817,7 +13782,7 @@ packages: dependencies: "@babel/core": 7.18.10 "@babel/helper-plugin-utils": 7.22.5 - "@babel/template": 7.20.7 + "@babel/template": 7.22.15 dev: true /@babel/plugin-transform-computed-properties@7.22.5(@babel/core@7.23.0): @@ -14076,18 +14041,6 @@ packages: "@babel/plugin-syntax-flow": 7.22.5(@babel/core@7.16.12) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.18.10): - resolution: - { integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-plugin-utils": 7.22.5 - "@babel/plugin-syntax-flow": 7.22.5(@babel/core@7.18.10) - dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.0): resolution: { integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== } @@ -14178,8 +14131,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-compilation-targets": 7.21.5(@babel/core@7.18.10) - "@babel/helper-function-name": 7.21.0 + "@babel/helper-compilation-targets": 7.22.15 + "@babel/helper-function-name": 7.23.0 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -14346,10 +14299,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-module-transforms": 7.21.5 + "@babel/helper-module-transforms": 7.23.0(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-transform-modules-amd@7.23.0(@babel/core@7.23.0): @@ -14404,26 +14355,9 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-module-transforms": 7.21.5 - "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-simple-access": 7.21.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.23.0): - resolution: - { integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.23.0 - "@babel/helper-module-transforms": 7.21.5 + "@babel/helper-module-transforms": 7.23.0(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-simple-access": 7.21.5 - transitivePeerDependencies: - - supports-color + "@babel/helper-simple-access": 7.22.5 dev: true /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.16.12): @@ -14439,19 +14373,6 @@ packages: "@babel/helper-simple-access": 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.18.10): - resolution: - { integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-module-transforms": 7.23.0(@babel/core@7.18.10) - "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-simple-access": 7.22.5 - dev: true - /@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.0): resolution: { integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ== } @@ -14507,12 +14428,10 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-hoist-variables": 7.18.6 - "@babel/helper-module-transforms": 7.21.5 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-module-transforms": 7.23.0(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-validator-identifier": 7.19.1 - transitivePeerDependencies: - - supports-color + "@babel/helper-validator-identifier": 7.22.20 dev: true /@babel/plugin-transform-modules-systemjs@7.23.0(@babel/core@7.23.0): @@ -14565,10 +14484,8 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-module-transforms": 7.21.5 + "@babel/helper-module-transforms": 7.23.0(@babel/core@7.18.10) "@babel/helper-plugin-utils": 7.22.5 - transitivePeerDependencies: - - supports-color dev: true /@babel/plugin-transform-modules-umd@7.22.5(@babel/core@7.23.0): @@ -14846,6 +14763,17 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.18.10): + resolution: + { integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.18.10 + "@babel/helper-plugin-utils": 7.22.5 + dev: true + /@babel/plugin-transform-parameters@7.22.15(@babel/core@7.23.0): resolution: { integrity: sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ== } @@ -14927,14 +14855,14 @@ packages: "@babel/helper-plugin-utils": 7.22.5 dev: true - /@babel/plugin-transform-react-constant-elements@7.17.12(@babel/core@7.18.10): + /@babel/plugin-transform-react-constant-elements@7.17.12(@babel/core@7.23.0): resolution: { integrity: sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw== } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -15001,7 +14929,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.16.12 - "@babel/plugin-transform-react-jsx": 7.16.0(@babel/core@7.16.12) + "@babel/plugin-transform-react-jsx": 7.22.15(@babel/core@7.16.12) dev: true /@babel/plugin-transform-react-jsx-development@7.16.0(@babel/core@7.18.10): @@ -15012,7 +14940,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/plugin-transform-react-jsx": 7.16.0(@babel/core@7.18.10) + "@babel/plugin-transform-react-jsx": 7.22.15(@babel/core@7.18.10) dev: true /@babel/plugin-transform-react-jsx-development@7.16.0(@babel/core@7.23.0): @@ -15023,7 +14951,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/plugin-transform-react-jsx": 7.16.0(@babel/core@7.23.0) + "@babel/plugin-transform-react-jsx": 7.22.15(@babel/core@7.23.0) dev: true /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.16.12): @@ -15056,11 +14984,11 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-module-imports": 7.21.4 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 - "@babel/plugin-syntax-jsx": 7.16.0(@babel/core@7.16.12) - "@babel/types": 7.21.5 + "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.16.12) + "@babel/types": 7.23.0 dev: true /@babel/plugin-transform-react-jsx@7.16.0(@babel/core@7.18.10): @@ -15071,11 +14999,11 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-module-imports": 7.21.4 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 - "@babel/plugin-syntax-jsx": 7.16.0(@babel/core@7.18.10) - "@babel/types": 7.21.5 + "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.18.10) + "@babel/types": 7.23.0 dev: true /@babel/plugin-transform-react-jsx@7.16.0(@babel/core@7.23.0): @@ -15086,11 +15014,11 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-annotate-as-pure": 7.18.6 - "@babel/helper-module-imports": 7.21.4 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 - "@babel/plugin-syntax-jsx": 7.16.0(@babel/core@7.23.0) - "@babel/types": 7.21.5 + "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.23.0) + "@babel/types": 7.23.0 dev: true /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.16.12): @@ -15108,6 +15036,21 @@ packages: "@babel/types": 7.23.0 dev: true + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.18.10): + resolution: + { integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.18.10 + "@babel/helper-annotate-as-pure": 7.22.5 + "@babel/helper-module-imports": 7.22.15 + "@babel/helper-plugin-utils": 7.22.5 + "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.18.10) + "@babel/types": 7.23.0 + dev: true + /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.0): resolution: { integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA== } @@ -15131,7 +15074,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.16.12 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -15143,7 +15086,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -15155,7 +15098,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.23.0 - "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-annotate-as-pure": 7.22.5 "@babel/helper-plugin-utils": 7.22.5 dev: true @@ -15281,7 +15224,7 @@ packages: "@babel/core": ^7.0.0-0 dependencies: "@babel/core": 7.18.10 - "@babel/helper-module-imports": 7.21.4 + "@babel/helper-module-imports": 7.22.15 "@babel/helper-plugin-utils": 7.22.5 babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.18.10) babel-plugin-polyfill-corejs3: 0.5.3(@babel/core@7.18.10) @@ -15368,7 +15311,7 @@ packages: dependencies: "@babel/core": 7.18.10 "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-skip-transparent-expression-wrappers": 7.22.5 dev: true /@babel/plugin-transform-spread@7.22.5(@babel/core@7.23.0): @@ -15529,20 +15472,6 @@ packages: "@babel/plugin-syntax-typescript": 7.22.5(@babel/core@7.16.12) dev: true - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.18.10): - resolution: - { integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-annotate-as-pure": 7.22.5 - "@babel/helper-create-class-features-plugin": 7.22.15(@babel/core@7.18.10) - "@babel/helper-plugin-utils": 7.22.5 - "@babel/plugin-syntax-typescript": 7.22.5(@babel/core@7.18.10) - dev: true - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.0): resolution: { integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA== } @@ -16199,21 +16128,6 @@ packages: "@babel/plugin-transform-typescript": 7.22.15(@babel/core@7.16.12) dev: true - /@babel/preset-typescript@7.23.0(@babel/core@7.18.10): - resolution: - { integrity: sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== } - engines: { node: ">=6.9.0" } - peerDependencies: - "@babel/core": ^7.0.0-0 - dependencies: - "@babel/core": 7.18.10 - "@babel/helper-plugin-utils": 7.22.5 - "@babel/helper-validator-option": 7.22.15 - "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.18.10) - "@babel/plugin-transform-modules-commonjs": 7.23.0(@babel/core@7.18.10) - "@babel/plugin-transform-typescript": 7.22.15(@babel/core@7.18.10) - dev: true - /@babel/preset-typescript@7.23.0(@babel/core@7.23.0): resolution: { integrity: sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg== } @@ -16253,7 +16167,7 @@ packages: resolution: { integrity: sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg== } dependencies: - core-js-pure: 3.6.4 + core-js-pure: 3.33.0 regenerator-runtime: 0.13.9 dev: true @@ -16286,9 +16200,9 @@ packages: { integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/code-frame": 7.21.4 - "@babel/parser": 7.21.8 - "@babel/types": 7.21.5 + "@babel/code-frame": 7.22.13 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 dev: true /@babel/template@7.20.7: @@ -16296,9 +16210,9 @@ packages: { integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== } engines: { node: ">=6.9.0" } dependencies: - "@babel/code-frame": 7.21.4 - "@babel/parser": 7.21.8 - "@babel/types": 7.21.5 + "@babel/code-frame": 7.22.13 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 dev: true /@babel/template@7.22.15: @@ -16335,14 +16249,14 @@ packages: { integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== } engines: { node: ">=6.9.0" } dependencies: - "@babel/code-frame": 7.21.4 - "@babel/generator": 7.21.5 - "@babel/helper-environment-visitor": 7.21.5 - "@babel/helper-function-name": 7.21.0 - "@babel/helper-hoist-variables": 7.18.6 - "@babel/helper-split-export-declaration": 7.18.6 - "@babel/parser": 7.21.8 - "@babel/types": 7.21.5 + "@babel/code-frame": 7.22.13 + "@babel/generator": 7.23.0 + "@babel/helper-environment-visitor": 7.22.20 + "@babel/helper-function-name": 7.23.0 + "@babel/helper-hoist-variables": 7.22.5 + "@babel/helper-split-export-declaration": 7.22.6 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -16382,8 +16296,8 @@ packages: { integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== } engines: { node: ">=6.9.0" } dependencies: - "@babel/helper-string-parser": 7.21.5 - "@babel/helper-validator-identifier": 7.19.1 + "@babel/helper-string-parser": 7.22.5 + "@babel/helper-validator-identifier": 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -16392,8 +16306,8 @@ packages: { integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== } engines: { node: ">=6.9.0" } dependencies: - "@babel/helper-string-parser": 7.21.5 - "@babel/helper-validator-identifier": 7.19.1 + "@babel/helper-string-parser": 7.22.5 + "@babel/helper-validator-identifier": 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -17453,10 +17367,10 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: - "@babel/parser": 7.21.8 - "@babel/plugin-syntax-import-assertions": 7.20.0(@babel/core@7.18.10) - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 + "@babel/parser": 7.23.0 + "@babel/plugin-syntax-import-assertions": 7.22.5(@babel/core@7.18.10) + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 "@graphql-tools/utils": 9.2.1(graphql@14.3.1) graphql: 14.3.1 tslib: 2.6.2 @@ -17966,7 +17880,7 @@ packages: { integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@jest/types": 26.6.2 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -17990,7 +17904,7 @@ packages: { integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@jest/types": 29.6.3 "@jridgewell/trace-mapping": 0.3.18 babel-plugin-istanbul: 6.1.1 @@ -21052,7 +20966,7 @@ packages: find-cache-dir: 3.3.1 find-up: 5.0.0 fs-extra: 11.1.1 - glob: 10.3.3 + glob: 10.3.10 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.6.11 @@ -21587,102 +21501,102 @@ packages: file-system-cache: 2.3.0 dev: true - /@svgr/babel-plugin-add-jsx-attribute@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-add-jsx-attribute@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-remove-jsx-attribute@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-remove-jsx-attribute@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-remove-jsx-empty-expression@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-remove-jsx-empty-expression@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-replace-jsx-attribute-value@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-replace-jsx-attribute-value@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-svg-dynamic-title@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-svg-dynamic-title@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-svg-em-dimensions@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-svg-em-dimensions@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-transform-react-native-svg@6.0.0(@babel/core@7.18.10): + /@svgr/babel-plugin-transform-react-native-svg@6.0.0(@babel/core@7.23.0): resolution: { integrity: sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-plugin-transform-svg-component@6.2.0(@babel/core@7.18.10): + /@svgr/babel-plugin-transform-svg-component@6.2.0(@babel/core@7.23.0): resolution: { integrity: sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg== } engines: { node: ">=12" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 dev: true - /@svgr/babel-preset@6.2.0(@babel/core@7.18.10): + /@svgr/babel-preset@6.2.0(@babel/core@7.23.0): resolution: { integrity: sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ== } engines: { node: ">=10" } peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/core": 7.18.10 - "@svgr/babel-plugin-add-jsx-attribute": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-remove-jsx-attribute": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-remove-jsx-empty-expression": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-replace-jsx-attribute-value": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-svg-dynamic-title": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-svg-em-dimensions": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-transform-react-native-svg": 6.0.0(@babel/core@7.18.10) - "@svgr/babel-plugin-transform-svg-component": 6.2.0(@babel/core@7.18.10) + "@babel/core": 7.23.0 + "@svgr/babel-plugin-add-jsx-attribute": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-remove-jsx-attribute": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-remove-jsx-empty-expression": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-replace-jsx-attribute-value": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-svg-dynamic-title": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-svg-em-dimensions": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-transform-react-native-svg": 6.0.0(@babel/core@7.23.0) + "@svgr/babel-plugin-transform-svg-component": 6.2.0(@babel/core@7.23.0) dev: true /@svgr/core@6.2.1: @@ -21702,7 +21616,7 @@ packages: { integrity: sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ== } engines: { node: ">=10" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 entities: 3.0.1 dev: true @@ -21713,8 +21627,8 @@ packages: peerDependencies: "@svgr/core": ^6.0.0 dependencies: - "@babel/core": 7.18.10 - "@svgr/babel-preset": 6.2.0(@babel/core@7.18.10) + "@babel/core": 7.23.0 + "@svgr/babel-preset": 6.2.0(@babel/core@7.23.0) "@svgr/core": 6.2.1 "@svgr/hast-util-to-babel-ast": 6.2.1 svg-parser: 2.0.4 @@ -21740,11 +21654,11 @@ packages: { integrity: sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw== } engines: { node: ">=10" } dependencies: - "@babel/core": 7.18.10 - "@babel/plugin-transform-react-constant-elements": 7.17.12(@babel/core@7.18.10) - "@babel/preset-env": 7.18.10(@babel/core@7.18.10) - "@babel/preset-react": 7.16.0(@babel/core@7.18.10) - "@babel/preset-typescript": 7.23.0(@babel/core@7.18.10) + "@babel/core": 7.23.0 + "@babel/plugin-transform-react-constant-elements": 7.17.12(@babel/core@7.23.0) + "@babel/preset-env": 7.22.20(@babel/core@7.23.0) + "@babel/preset-react": 7.22.15(@babel/core@7.23.0) + "@babel/preset-typescript": 7.23.0(@babel/core@7.23.0) "@svgr/core": 6.2.1 "@svgr/plugin-jsx": 6.2.1(@svgr/core@6.2.1) "@svgr/plugin-svgo": 6.2.0(@svgr/core@6.2.1) @@ -21909,7 +21823,7 @@ packages: { integrity: sha512-0X7ACg4YvTRDFMIuTOEj6B4NpN7i3F/4j5igOcTI5NC5J+N4TribNdErCHOZF1LBWhhcyfwxelVwvoYNMUXTOA== } engines: { node: ">=10" } dependencies: - "@babel/code-frame": 7.21.4 + "@babel/code-frame": 7.22.13 "@babel/runtime": 7.18.9 "@types/aria-query": 4.2.1 aria-query: 4.2.2 @@ -22026,8 +21940,8 @@ packages: resolution: { integrity: sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== } dependencies: - "@babel/parser": 7.21.8 - "@babel/types": 7.21.5 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 "@types/babel__generator": 7.6.1 "@types/babel__template": 7.0.2 "@types/babel__traverse": 7.11.1 @@ -22037,22 +21951,22 @@ packages: resolution: { integrity: sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@types/babel__template@7.0.2: resolution: { integrity: sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== } dependencies: - "@babel/parser": 7.21.8 - "@babel/types": 7.21.5 + "@babel/parser": 7.23.0 + "@babel/types": 7.23.0 dev: true /@types/babel__traverse@7.11.1: resolution: { integrity: sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 dev: true /@types/body-parser@1.19.2: @@ -24875,19 +24789,19 @@ packages: "@babel/core": 7.23.0 dev: true - /babel-jest@26.6.3(@babel/core@7.18.10): + /babel-jest@26.6.3(@babel/core@7.23.0): resolution: { integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== } engines: { node: ">= 10.14.2" } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@jest/transform": 26.6.2 "@jest/types": 26.6.2 "@types/babel__core": 7.1.14 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 26.6.2(@babel/core@7.18.10) + babel-preset-jest: 26.6.2(@babel/core@7.23.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -24956,8 +24870,8 @@ packages: { integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/template": 7.20.7 - "@babel/types": 7.21.5 + "@babel/template": 7.22.15 + "@babel/types": 7.23.0 "@types/babel__core": 7.1.14 "@types/babel__traverse": 7.11.1 dev: true @@ -25001,7 +24915,7 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 dependencies: - "@babel/compat-data": 7.21.7 + "@babel/compat-data": 7.22.20 "@babel/core": 7.18.10 "@babel/helper-define-polyfill-provider": 0.3.3(@babel/core@7.18.10) semver: 6.3.1 @@ -25057,7 +24971,7 @@ packages: dependencies: "@babel/core": 7.18.10 "@babel/helper-define-polyfill-provider": 0.3.3(@babel/core@7.18.10) - core-js-compat: 3.30.2 + core-js-compat: 3.33.0 transitivePeerDependencies: - supports-color dev: true @@ -25139,75 +25053,73 @@ packages: { integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== } dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.18.10): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.0): resolution: { integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.10 - "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.18.10) - "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.18.10) - "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.18.10) - "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.18.10) - "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.18.10) - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.18.10) + "@babel/core": 7.23.0 + "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.23.0) + "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.23.0) + "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.23.0) + "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.23.0) + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.23.0) + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.23.0) dev: true - /babel-preset-fbjs@3.4.0(@babel/core@7.18.10): + /babel-preset-fbjs@3.4.0(@babel/core@7.23.0): resolution: { integrity: sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.10 - "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-proposal-object-rest-spread": 7.20.7(@babel/core@7.18.10) - "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.18.10) - "@babel/plugin-syntax-flow": 7.22.5(@babel/core@7.18.10) - "@babel/plugin-syntax-jsx": 7.16.0(@babel/core@7.18.10) - "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.18.10) - "@babel/plugin-transform-arrow-functions": 7.21.5(@babel/core@7.18.10) - "@babel/plugin-transform-block-scoped-functions": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-transform-block-scoping": 7.21.0(@babel/core@7.18.10) - "@babel/plugin-transform-classes": 7.21.0(@babel/core@7.18.10) - "@babel/plugin-transform-computed-properties": 7.21.5(@babel/core@7.18.10) - "@babel/plugin-transform-destructuring": 7.21.3(@babel/core@7.18.10) - "@babel/plugin-transform-flow-strip-types": 7.22.5(@babel/core@7.18.10) - "@babel/plugin-transform-for-of": 7.21.5(@babel/core@7.18.10) - "@babel/plugin-transform-function-name": 7.18.9(@babel/core@7.18.10) - "@babel/plugin-transform-literals": 7.18.9(@babel/core@7.18.10) - "@babel/plugin-transform-member-expression-literals": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-transform-modules-commonjs": 7.21.5(@babel/core@7.18.10) - "@babel/plugin-transform-object-super": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-transform-parameters": 7.21.3(@babel/core@7.18.10) - "@babel/plugin-transform-property-literals": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-transform-react-display-name": 7.16.0(@babel/core@7.18.10) - "@babel/plugin-transform-react-jsx": 7.16.0(@babel/core@7.18.10) - "@babel/plugin-transform-shorthand-properties": 7.18.6(@babel/core@7.18.10) - "@babel/plugin-transform-spread": 7.20.7(@babel/core@7.18.10) - "@babel/plugin-transform-template-literals": 7.18.9(@babel/core@7.18.10) + "@babel/core": 7.23.0 + "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.23.0) + "@babel/plugin-proposal-object-rest-spread": 7.20.7(@babel/core@7.23.0) + "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.23.0) + "@babel/plugin-syntax-flow": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-syntax-jsx": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.23.0) + "@babel/plugin-transform-arrow-functions": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-block-scoped-functions": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-block-scoping": 7.23.0(@babel/core@7.23.0) + "@babel/plugin-transform-classes": 7.22.15(@babel/core@7.23.0) + "@babel/plugin-transform-computed-properties": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-destructuring": 7.23.0(@babel/core@7.23.0) + "@babel/plugin-transform-flow-strip-types": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-for-of": 7.22.15(@babel/core@7.23.0) + "@babel/plugin-transform-function-name": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-literals": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-member-expression-literals": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-modules-commonjs": 7.23.0(@babel/core@7.23.0) + "@babel/plugin-transform-object-super": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-parameters": 7.22.15(@babel/core@7.23.0) + "@babel/plugin-transform-property-literals": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-react-display-name": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-react-jsx": 7.22.15(@babel/core@7.23.0) + "@babel/plugin-transform-shorthand-properties": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-spread": 7.22.5(@babel/core@7.23.0) + "@babel/plugin-transform-template-literals": 7.22.5(@babel/core@7.23.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 - transitivePeerDependencies: - - supports-color dev: true - /babel-preset-jest@26.6.2(@babel/core@7.18.10): + /babel-preset-jest@26.6.2(@babel/core@7.23.0): resolution: { integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== } engines: { node: ">= 10.14.2" } peerDependencies: "@babel/core": ^7.0.0 dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 babel-plugin-jest-hoist: 26.6.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.18.10) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) dev: true /balanced-match@1.0.2: @@ -26805,13 +26717,6 @@ packages: requiresBuild: true dev: true - /core-js-pure@3.6.4: - resolution: - { integrity: sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw== } - deprecated: core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure. - requiresBuild: true - dev: true - /core-util-is@1.0.2: resolution: { integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== } @@ -29255,20 +29160,6 @@ packages: engines: { node: ">=10" } dev: true - /escodegen@2.0.0: - resolution: - { integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== } - engines: { node: ">=6.0" } - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - /escodegen@2.1.0: resolution: { integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== } @@ -29532,8 +29423,8 @@ packages: { integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== } engines: { node: ">=8.3.0" } dependencies: - "@babel/traverse": 7.21.5 - "@babel/types": 7.21.5 + "@babel/traverse": 7.23.0 + "@babel/types": 7.23.0 c8: 7.14.0 transitivePeerDependencies: - supports-color @@ -30099,7 +29990,7 @@ packages: is-glob: 4.0.3 normalize-path: 3.0.0 schema-utils: 4.0.0 - webpack: 5.88.2(webpack-cli@4.10.0) + webpack: 5.88.2 dev: true /filename-reserved-regex@2.0.0: @@ -30360,7 +30251,7 @@ packages: typescript: ">3.6.0" webpack: ^5.11.0 dependencies: - "@babel/code-frame": 7.21.4 + "@babel/code-frame": 7.22.13 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.0.1 @@ -32164,13 +32055,13 @@ packages: { integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== } dependencies: has: 1.0.3 + dev: true /is-core-module@2.13.1: resolution: { integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== } dependencies: hasown: 2.0.0 - dev: true /is-core-module@2.9.0: resolution: @@ -32676,8 +32567,8 @@ packages: { integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== } engines: { node: ">=8" } dependencies: - "@babel/core": 7.18.10 - "@istanbuljs/schema": 0.1.2 + "@babel/core": 7.23.0 + "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 transitivePeerDependencies: @@ -32689,9 +32580,9 @@ packages: { integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== } engines: { node: ">=8" } dependencies: - "@babel/core": 7.18.10 - "@babel/parser": 7.21.8 - "@istanbuljs/schema": 0.1.2 + "@babel/core": 7.23.0 + "@babel/parser": 7.23.0 + "@istanbuljs/schema": 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 transitivePeerDependencies: @@ -32864,10 +32755,10 @@ packages: ts-node: optional: true dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@jest/test-sequencer": 26.6.3 "@jest/types": 26.6.2 - babel-jest: 26.6.3(@babel/core@7.18.10) + babel-jest: 26.6.3(@babel/core@7.23.0) chalk: 4.1.2 deepmerge: 4.2.2 glob: 7.2.3 @@ -32899,10 +32790,10 @@ packages: ts-node: optional: true dependencies: - "@babel/core": 7.18.10 + "@babel/core": 7.23.0 "@jest/test-sequencer": 26.6.3(ts-node@10.9.1) "@jest/types": 26.6.2 - babel-jest: 26.6.3(@babel/core@7.18.10) + babel-jest: 26.6.3(@babel/core@7.23.0) chalk: 4.1.2 deepmerge: 4.2.2 glob: 7.2.3 @@ -33052,7 +32943,7 @@ packages: { integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/traverse": 7.21.5 + "@babel/traverse": 7.23.0 "@jest/environment": 26.6.2 "@jest/source-map": 26.6.2 "@jest/test-result": 26.6.2 @@ -33083,7 +32974,7 @@ packages: { integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/traverse": 7.21.5 + "@babel/traverse": 7.23.0 "@jest/environment": 26.6.2 "@jest/source-map": 26.6.2 "@jest/test-result": 26.6.2 @@ -33145,7 +33036,7 @@ packages: { integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/code-frame": 7.21.4 + "@babel/code-frame": 7.22.13 "@jest/types": 26.6.2 "@types/stack-utils": 2.0.0 chalk: 4.1.2 @@ -33218,7 +33109,7 @@ packages: jest-pnp-resolver: 1.2.2(jest-resolve@26.6.2) jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.22.1 + resolve: 1.22.8 slash: 3.0.0 dev: true @@ -33384,7 +33275,7 @@ packages: { integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== } engines: { node: ">= 10.14.2" } dependencies: - "@babel/types": 7.21.5 + "@babel/types": 7.23.0 "@jest/types": 26.6.2 "@types/babel__traverse": 7.11.1 "@types/prettier": 2.7.3 @@ -33599,11 +33490,11 @@ packages: "@babel/preset-env": ^7.1.6 dependencies: "@babel/core": 7.23.0 - "@babel/parser": 7.21.8 + "@babel/parser": 7.23.0 "@babel/plugin-proposal-class-properties": 7.18.6(@babel/core@7.23.0) "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6(@babel/core@7.23.0) "@babel/plugin-proposal-optional-chaining": 7.21.0(@babel/core@7.23.0) - "@babel/plugin-transform-modules-commonjs": 7.21.5(@babel/core@7.23.0) + "@babel/plugin-transform-modules-commonjs": 7.23.0(@babel/core@7.23.0) "@babel/preset-env": 7.22.20(@babel/core@7.23.0) "@babel/preset-flow": 7.22.15(@babel/core@7.23.0) "@babel/preset-typescript": 7.23.0(@babel/core@7.23.0) @@ -33640,7 +33531,7 @@ packages: data-urls: 2.0.0 decimal.js: 10.4.3 domexception: 2.0.1 - escodegen: 2.0.0 + escodegen: 2.1.0 html-encoding-sniffer: 2.0.1 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.7 @@ -34057,7 +33948,7 @@ packages: dependencies: glob: 7.2.0 minimatch: 3.0.5 - webpack: 5.88.2(webpack-cli@4.10.0) + webpack: 5.88.2 webpack-merge: 4.2.2 dev: true @@ -34370,15 +34261,6 @@ packages: engines: { node: ">=6" } dev: true - /levn@0.3.0: - resolution: - { integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - /levn@0.4.1: resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== } @@ -34830,13 +34712,6 @@ packages: - supports-color dev: true - /makeerror@1.0.11: - resolution: - { integrity: sha512-M/XvMZ6oK4edXjvg/ZYyzByg8kjpVrF/m0x3wbhOlzJfsQgFkqP1rJnLnJExOcslmLSSeLiN6NmF+cBoKJHGTg== } - dependencies: - tmpl: 1.0.5 - dev: true - /makeerror@1.0.12: resolution: { integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== } @@ -36001,7 +35876,7 @@ packages: { integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== } dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 + resolve: 1.22.8 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -36012,7 +35887,7 @@ packages: engines: { node: ">=10" } dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.12.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -36023,7 +35898,7 @@ packages: engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } dependencies: hosted-git-info: 5.2.1 - is-core-module: 2.12.0 + is-core-module: 2.13.1 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -36439,19 +36314,6 @@ packages: dependencies: "@wry/context": 0.4.4 - /optionator@0.8.3: - resolution: - { integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== } - engines: { node: ">= 0.8.0" } - dependencies: - deep-is: 0.1.3 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - /optionator@0.9.3: resolution: { integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== } @@ -36772,7 +36634,7 @@ packages: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== } engines: { node: ">=8" } dependencies: - "@babel/code-frame": 7.21.4 + "@babel/code-frame": 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.1.6 @@ -37814,12 +37676,6 @@ packages: tunnel-agent: 0.6.0 dev: true - /prelude-ls@1.1.2: - resolution: - { integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== } - engines: { node: ">= 0.8.0" } - dev: true - /prelude-ls@1.2.1: resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== } @@ -38501,8 +38357,8 @@ packages: engines: { node: ">=8.10.0" } hasBin: true dependencies: - "@babel/core": 7.18.10 - "@babel/generator": 7.21.5 + "@babel/core": 7.23.0 + "@babel/generator": 7.23.0 "@babel/runtime": 7.18.9 ast-types: 0.14.2 commander: 2.20.3 @@ -39570,6 +39426,7 @@ packages: is-core-module: 2.12.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: true /resolve@1.22.8: resolution: @@ -39579,7 +39436,6 @@ packages: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /resolve@2.0.0-next.4: resolution: @@ -39833,7 +39689,7 @@ packages: fb-watchman: 2.0.1 micromatch: 3.1.10 minimist: 1.2.8 - walker: 1.0.7 + walker: 1.0.8 transitivePeerDependencies: - supports-color dev: true @@ -39871,7 +39727,7 @@ packages: klona: 2.0.5 neo-async: 2.6.2 sass: 1.49.9 - webpack: 5.88.2(webpack-cli@4.10.0) + webpack: 5.88.2 dev: true /sass-loader@13.0.2(sass@1.54.4)(webpack@5.76.1): @@ -40564,7 +40420,7 @@ packages: abab: 2.0.5 iconv-lite: 0.6.3 source-map-js: 0.6.2 - webpack: 5.88.2(webpack-cli@4.10.0) + webpack: 5.88.2 dev: true /source-map-loader@4.0.0(webpack@5.76.1): @@ -41350,7 +41206,7 @@ packages: is-regex: 1.1.4 minimist: 1.2.8 object-inspect: 1.12.3 - resolve: 1.22.1 + resolve: 1.22.8 resumer: 0.0.0 string.prototype.trim: 1.2.7 through: 2.3.8 @@ -41609,7 +41465,7 @@ packages: { integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== } engines: { node: ">=8" } dependencies: - "@istanbuljs/schema": 0.1.2 + "@istanbuljs/schema": 0.1.3 glob: 7.2.3 minimatch: 3.1.2 dev: true @@ -42047,14 +41903,6 @@ packages: { integrity: sha512-7yPk67IIquhKQcUXOBM27vDuGmZf6oJbEmzgVfDniHCkT6+z4JnKY85nKqbstoec8Kp7hD06TP3Kc98ij43PIg== } dev: true - /type-check@0.3.2: - resolution: - { integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.1.2 - dev: true - /type-check@0.4.0: resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== } @@ -42524,6 +42372,23 @@ packages: optional: true dependencies: file-loader: 6.2.0(webpack@5.88.2) + loader-utils: 2.0.2 + mime-types: 2.1.34 + schema-utils: 3.1.1 + webpack: 5.88.2 + dev: true + + /url-loader@4.1.1(webpack@5.88.2): + resolution: + { integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== } + engines: { node: ">= 10.13.0" } + peerDependencies: + file-loader: "*" + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + dependencies: loader-utils: 2.0.2 mime-types: 2.1.34 schema-utils: 3.1.1 @@ -43237,7 +43102,7 @@ packages: resolution: { integrity: sha512-cF4je9Fgt6sj1PKfuFt9jpQPeHosM+Ryma/hfY9U7uXGKM7pJCsF0v2r55o+Il54+i77SyYWetB4tD1dEygRkw== } dependencies: - makeerror: 1.0.11 + makeerror: 1.0.12 dev: true /walker@1.0.8: @@ -43530,6 +43395,58 @@ packages: - utf-8-validate dev: true + /webpack-dev-server@4.15.1(webpack@5.88.2): + resolution: + { integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA== } + engines: { node: ">= 12.13.0" } + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: "*" + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + "@types/bonjour": 3.5.10 + "@types/connect-history-api-fallback": 1.3.5 + "@types/express": 4.17.17 + "@types/serve-index": 1.9.1 + "@types/serve-static": 1.13.10 + "@types/sockjs": 0.3.33 + "@types/ws": 8.5.5 + ansi-html-community: 0.0.8 + bonjour-service: 1.1.1 + chokidar: 3.5.3 + colorette: 2.0.16 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.11 + html-entities: 2.3.2 + http-proxy-middleware: 2.0.6(@types/express@4.17.17) + ipaddr.js: 2.0.1 + launch-editor: 2.6.0 + open: 8.4.0 + p-retry: 4.6.1 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.88.2 + webpack-dev-middleware: 5.3.3(webpack@5.88.2) + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + /webpack-hot-middleware@2.25.4: resolution: { integrity: sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w== } @@ -43637,6 +43554,47 @@ packages: - uglify-js dev: true + /webpack@5.88.2: + resolution: + { integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== } + engines: { node: ">=10.13.0" } + hasBin: true + peerDependencies: + webpack-cli: "*" + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + "@types/eslint-scope": 3.7.3 + "@types/estree": 1.0.1 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/wasm-edit": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + acorn: 8.10.0 + acorn-import-assertions: 1.9.0(acorn@8.10.0) + browserslist: 4.22.1 + chrome-trace-event: 1.0.2 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.3.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.2.0 + mime-types: 2.1.34 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.0 + terser-webpack-plugin: 5.3.9(webpack@5.88.2) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - "@swc/core" + - esbuild + - uglify-js + dev: true + /webpack@5.88.2(@swc/core@1.3.92)(esbuild@0.18.20)(webpack-cli@4.10.0): resolution: { integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== } @@ -43655,7 +43613,7 @@ packages: "@webassemblyjs/wasm-parser": 1.11.6 acorn: 8.10.0 acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.21.5 + browserslist: 4.22.1 chrome-trace-event: 1.0.2 enhanced-resolve: 5.15.0 es-module-lexer: 1.3.0 @@ -43893,12 +43851,6 @@ packages: { integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== } dev: true - /word-wrap@1.2.3: - resolution: - { integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== } - engines: { node: ">=0.10.0" } - dev: true - /wordwrap@1.0.0: resolution: { integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== } diff --git a/repo/graph.dot b/repo/graph.dot index 0f74d578815..f1f5e5dc58d 100644 --- a/repo/graph.dot +++ b/repo/graph.dot @@ -118,6 +118,7 @@ digraph G { "@kie-tools/runtime-tools-components" [ color = "blue", fontcolor = "blue", style = "rounded" ]; "@kie-tools/runtime-tools-gateway-api" [ color = "blue", fontcolor = "blue", style = "rounded" ]; "@kie-tools/runtime-tools-enveloped-components" [ color = "blue", fontcolor = "blue", style = "rounded" ]; + "@kie-tools/runtime-tools-webapp-components" [ color = "blue", fontcolor = "blue", style = "rounded" ]; "@kie-tools/scesim-editor" [ color = "blue", fontcolor = "blue", style = "rounded" ]; "@kie-tools/scesim-marshaller" [ color = "blue", fontcolor = "blue", style = "rounded" ]; "@kie-tools/serverless-logic-web-tools" [ color = "black", fontcolor = "black", style = "dashed, rounded" ]; @@ -379,6 +380,7 @@ digraph G { "@kie-tools/runtime-tools-gateway-api" -> "@kie-tools/eslint" [ style = "dashed", color = "blue" ]; "@kie-tools/runtime-tools-gateway-api" -> "@kie-tools/root-env" [ style = "dashed", color = "blue" ]; "@kie-tools/runtime-tools-gateway-api" -> "@kie-tools/tsconfig" [ style = "dashed", color = "blue" ]; + "@kie-tools/runtime-tools-webapp-components" -> "@kie-tools/runtime-tools-enveloped-components" [ style = "solid", color = "blue" ]; "@kie-tools/scesim-editor" -> "@kie-tools-core/patternfly-base" [ style = "solid", color = "blue" ]; "@kie-tools/scesim-editor" -> "@kie-tools/i18n-common-dictionary" [ style = "solid", color = "blue" ]; "@kie-tools/scesim-editor" -> "@kie-tools-core/webpack-base" [ style = "dashed", color = "blue" ]; @@ -388,7 +390,7 @@ digraph G { "@kie-tools/serverless-logic-web-tools" -> "@kie-tools-core/workspaces-git-fs" [ style = "solid", color = "black" ]; "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/cors-proxy" [ style = "solid", color = "black" ]; "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/dashbuilder-editor" [ style = "solid", color = "black" ]; - "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/runtime-tools-enveloped-components" [ style = "solid", color = "black" ]; + "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/runtime-tools-webapp-components" [ style = "solid", color = "black" ]; "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/text-editor" [ style = "solid", color = "black" ]; "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/yard-editor" [ style = "solid", color = "black" ]; "@kie-tools/serverless-logic-web-tools" -> "@kie-tools/dashbuilder-viewer-image-env" [ style = "dashed", color = "black" ]; @@ -427,7 +429,7 @@ digraph G { "swf-vscode-extension" -> "@kie-tools/serverless-workflow-diagram-editor-assets" [ style = "dashed", color = "blue" ]; "swf-vscode-extension" -> "@kie-tools/vscode-extension-common-test-helpers" [ style = "dashed", color = "blue" ]; "sonataflow-deployment-webapp" -> "@kie-tools-core/react-hooks" [ style = "dashed", color = "blue" ]; - "sonataflow-deployment-webapp" -> "@kie-tools/runtime-tools-enveloped-components" [ style = "dashed", color = "blue" ]; + "sonataflow-deployment-webapp" -> "@kie-tools/runtime-tools-webapp-components" [ style = "dashed", color = "blue" ]; "@kie-tools/storybook-base" -> "@kie-tools-core/webpack-base" [ style = "dashed", color = "blue" ]; "@kie-tools/storybook-base" -> "@kie-tools/tsconfig" [ style = "dashed", color = "blue" ]; "@kie-tools/stunner-editors" -> "@kie-tools/stunner-editors-dmn-loader" [ style = "solid", color = "black" ]; diff --git a/repo/graph.json b/repo/graph.json index 9a107df4aea..f2ffce1446d 100644 --- a/repo/graph.json +++ b/repo/graph.json @@ -124,6 +124,7 @@ { "id": "@kie-tools/runtime-tools-components" }, { "id": "@kie-tools/runtime-tools-gateway-api" }, { "id": "@kie-tools/runtime-tools-enveloped-components" }, + { "id": "@kie-tools/runtime-tools-webapp-components" }, { "id": "@kie-tools/scesim-editor" }, { "id": "@kie-tools/scesim-marshaller" }, { "id": "@kie-tools/serverless-logic-web-tools" }, @@ -746,6 +747,11 @@ "target": "@kie-tools/serverless-workflow-combined-editor", "weight": 1 }, + { + "source": "@kie-tools/runtime-tools-webapp-components", + "target": "@kie-tools/runtime-tools-enveloped-components", + "weight": 1 + }, { "source": "@kie-tools/scesim-editor", "target": "@kie-tools-core/patternfly-base", "weight": 1 }, { "source": "@kie-tools/scesim-editor", "target": "@kie-tools/i18n-common-dictionary", "weight": 1 }, { "source": "@kie-tools/scesim-editor", "target": "@kie-tools-core/webpack-base", "weight": 1 }, @@ -757,7 +763,7 @@ { "source": "@kie-tools/serverless-logic-web-tools", "target": "@kie-tools/dashbuilder-editor", "weight": 1 }, { "source": "@kie-tools/serverless-logic-web-tools", - "target": "@kie-tools/runtime-tools-enveloped-components", + "target": "@kie-tools/runtime-tools-webapp-components", "weight": 1 }, { "source": "@kie-tools/serverless-logic-web-tools", "target": "@kie-tools/text-editor", "weight": 1 }, @@ -821,11 +827,7 @@ "weight": 1 }, { "source": "sonataflow-deployment-webapp", "target": "@kie-tools-core/react-hooks", "weight": 1 }, - { - "source": "sonataflow-deployment-webapp", - "target": "@kie-tools/runtime-tools-enveloped-components", - "weight": 1 - }, + { "source": "sonataflow-deployment-webapp", "target": "@kie-tools/runtime-tools-webapp-components", "weight": 1 }, { "source": "@kie-tools/serverless-logic-web-tools-swf-deployment-quarkus-app", "target": "@kie-tools/maven-config-setup-helper", @@ -1006,6 +1008,7 @@ ["@kie-tools/runtime-tools-components", "packages/runtime-tools-components"], ["@kie-tools/runtime-tools-enveloped-components", "packages/runtime-tools-enveloped-components"], ["@kie-tools/runtime-tools-gateway-api", "packages/runtime-tools-gateway-api"], + ["@kie-tools/runtime-tools-webapp-components", "packages/runtime-tools-webapp-components"], ["@kie-tools/scesim-editor", "packages/scesim-editor"], ["@kie-tools/scesim-marshaller", "packages/scesim-marshaller"], ["@kie-tools/serverless-logic-web-tools", "packages/serverless-logic-web-tools"],