From 2d44d0c0106c11dd6f950ed299c7ee3bae3cd9f9 Mon Sep 17 00:00:00 2001 From: Tracy French Date: Mon, 9 Dec 2024 20:07:51 -0700 Subject: [PATCH] fix: packages --- .github/workflows/validate.yml | 3 +- .gitignore | 1 + .stylelintignore | 11 - apps/dev-env/.eslintignore | 2 + apps/dev-env/.eslintrc.cjs | 24 +- apps/dev-env/package.json | 12 +- apps/dev-env/playwright.config.ts | 5 +- .../dashboard/sitewise-dashboard.stories.tsx | 2 - apps/dev-env/tsconfig.json | 2 +- apps/dev-env/vite.config.ts | 5 +- apps/doc-site/.eslintrc.cjs | 6 + apps/doc-site/.eslintrc.js | 4 - apps/doc-site/package.json | 8 +- configuration/eslint-config/index.js | 4 +- configuration/eslint-config/package.json | 14 +- configuration/ts-config/package.json | 12 +- configuration/ts-config/tsconfig.base.json | 10 +- configuration/ts-config/tsconfig.build.json | 10 - configuration/ts-config/tsconfig.cjs.json | 8 - configuration/ts-config/tsconfig.esm.json | 7 - configuration/vite-config/.eslintrc.cjs | 19 + configuration/vite-config/package.json | 37 + configuration/vite-config/src/copyPlugin.ts | 55 + .../vite-config/src/definePackageConfig.ts | 194 + .../vite-config/src/installedPackages.ts | 113 + configuration/vite-config/src/package.ts | 12 + configuration/vite-config/src/packageJson.ts | 61 + .../vite-config/src/packageRegistry.ts | 102 + .../vite-config/src/scripts/postpack.ts | 25 + .../vite-config/src/scripts/prepack.ts | 42 + configuration/vite-config/tsconfig.json | 5 + docs/DevEnv.md | 24 +- examples/react-app/package.json | 4 +- package-lock.json | 2889 ++++++------ package.json | 63 +- packages/core-util/.eslintrc.cjs | 17 +- packages/core-util/package.json | 54 +- packages/core-util/src/index.ts | 17 +- packages/core-util/tsconfig.cjs.json | 11 - packages/core-util/tsconfig.esm.json | 11 - packages/core-util/tsconfig.json | 2 +- packages/core-util/vite.config.ts | 7 + packages/core-util/vitest.config.ts | 21 - packages/core/.eslintrc.cjs | 17 +- packages/core/package.json | 55 +- packages/core/src/common/time.ts | 13 +- .../request-scheduler/requestScheduler.ts | 2 +- packages/core/src/index.ts | 13 +- packages/core/tsconfig.cjs.json | 11 - packages/core/tsconfig.esm.json | 11 - packages/core/tsconfig.json | 5 +- packages/core/vite.config.ts | 7 + packages/core/vitest.config.ts | 21 - packages/dashboard/.eslintrc.cjs | 10 +- packages/dashboard/package.json | 53 +- .../src/components/actions/index.tsx | 6 +- .../src/components/actions/settings.tsx | 2 +- .../actions/useGridSettings.spec.tsx | 4 +- .../src/components/actions/useGridSettings.ts | 6 +- .../assistant/assistantFloatingMenu.spec.tsx | 16 +- .../assistant/assistantFloatingMenu.tsx | 32 +- .../assistantFloatingMenuRigthButton.tsx | 6 +- .../src/components/assistant/chatbot.spec.tsx | 8 +- .../src/components/assistant/chatbot.tsx | 25 +- .../contextMenu/contextMenuOptions.ts | 3 +- .../src/components/contextMenu/index.test.tsx | 4 +- .../src/components/contextMenu/index.tsx | 6 +- .../src/components/contextMenu/menu.css | 2 +- .../src/components/contextMenu/menu.tsx | 4 +- .../convertToCSVObject.test.tsx | 14 +- .../csvDownloadButton/convertToCSVObject.ts | 8 +- .../csvDownloadButton/emptyDownload.test.tsx | 18 +- .../csvDownloadButton/errorDownload.test.tsx | 16 +- .../components/csvDownloadButton/index.tsx | 16 +- .../succesfulDownload.test.tsx | 20 +- .../src/components/dashboard/clientContext.ts | 2 +- .../src/components/dashboard/getClients.ts | 6 +- .../src/components/dashboard/getQueries.ts | 6 +- .../src/components/dashboard/index.tsx | 12 +- .../src/components/dashboard/queryContext.ts | 10 +- .../src/components/dashboard/view.tsx | 8 +- .../components/dashboard/viewOnlyWrapper.tsx | 2 +- .../src/components/dashboard/wrapper.tsx | 2 +- .../defaultViewport/useDefaultViewport.ts | 6 +- .../dragLayer/components/widget.css | 2 +- .../dragLayer/components/widget.tsx | 6 +- .../src/components/dragLayer/index.css | 7 +- .../src/components/dragLayer/index.tsx | 2 +- .../src/components/grid/gestureable.tsx | 2 +- .../grid/gestures/constrainPosition.ts | 2 +- .../grid/gestures/positionTracker.ts | 2 +- .../src/components/grid/gestures/types.ts | 2 +- .../grid/gestures/useDragMonitor.ts | 4 +- .../grid/gestures/useDropMonitor.ts | 4 +- .../grid/gestures/useGridDragAndDrop.ts | 2 +- .../grid/gestures/usePointerTracker.ts | 2 +- .../components/grid/getDashboardPosition.ts | 2 +- .../dashboard/src/components/grid/grid.css | 4 +- .../internalDashboard/collapsiblePanel.tsx | 12 +- .../dashboardHeader.spec.tsx | 6 +- .../internalDashboard/dashboardHeader.tsx | 6 +- .../gestures/determineTargetGestures.ts | 2 +- .../internalDashboard/gestures/index.spec.tsx | 4 +- .../internalDashboard/gestures/index.ts | 4 +- .../gestures/useMove.spec.tsx | 6 +- .../internalDashboard/gestures/useMove.ts | 8 +- .../gestures/useResize.spec.tsx | 6 +- .../internalDashboard/gestures/useResize.ts | 10 +- .../gestures/useSelection.spec.tsx | 4 +- .../gestures/useSelection.ts | 12 +- .../components/internalDashboard/index.css | 17 +- .../internalDashboard/index.test.tsx | 6 +- .../components/internalDashboard/index.tsx | 24 +- .../internalDashboard/keyboardShortcuts.ts | 2 +- .../internalDashboard/useLayers.spec.tsx | 4 +- .../components/internalDashboard/useLayers.ts | 2 +- .../src/components/palette/index.tsx | 2 +- .../helpers/getCorrectSelectionMode.spec.ts | 2 +- .../helpers/getCorrectSelectionMode.ts | 2 +- .../helpers/propertySelectionLabel.spec.ts | 2 +- .../helpers/propertySelectionLabel.ts | 2 +- .../helpers/useIsAddButtonDisabled.spec.ts | 2 +- .../helpers/useIsAddButtonDisabled.ts | 2 +- .../assetModelDataStreamExplorer.tsx | 6 +- .../assetModelSelected.tsx | 6 +- .../assetModelSelection.tsx | 2 +- .../resetAssetModel/resetAssetModelModal.tsx | 2 +- .../assetModelPropertiesExplorer.tsx | 6 +- .../useAssetsForAssetModel.ts | 4 +- .../findModelBasedQueryWidgets.ts | 6 +- .../modelBasedQuery/useModelBasedQuery.ts | 4 +- .../useModelBasedQuerySelection.ts | 12 +- .../footer/disableAdd.spec.tsx | 4 +- .../footer/disableAdd.ts | 2 +- .../iotSiteWiseQueryEditor.spec.tsx | 2 +- .../iotSiteWiseQueryEditor.tsx | 4 +- .../modeledExplorer/modeledExplorer.tsx | 2 +- .../queryExtender/queryExtender.ts | 2 +- .../timeSeriesExplorer/timeSeriesExplorer.tsx | 2 +- .../components/queryEditor/queryEditor.tsx | 2 +- .../src/components/queryEditor/useQuery.ts | 23 +- .../refreshRate/refreshRateDropdown.spec.tsx | 2 +- .../refreshRate/refreshRateDropdown.tsx | 2 +- .../assets/ResourceExplorerIcon.tsx | 2 +- .../assets/propertiesPaneIcon.tsx | 2 +- .../components/resizablePanes/index.test.tsx | 4 +- .../src/components/resizablePanes/index.tsx | 4 +- .../src/components/userSelection/index.css | 2 +- .../src/components/userSelection/index.tsx | 2 +- .../src/components/widgets/dynamicWidget.tsx | 8 +- .../dashboard/src/components/widgets/list.tsx | 6 +- .../src/components/widgets/selectionBox.css | 2 +- .../src/components/widgets/selectionBox.tsx | 4 +- .../components/widgets/selectionBoxAnchor.css | 2 +- .../components/widgets/selectionBoxAnchor.tsx | 2 +- .../src/components/widgets/tile/tile.spec.tsx | 2 +- .../src/components/widgets/tile/tile.tsx | 8 +- .../src/components/widgets/widget.css | 2 +- .../src/components/widgets/widget.tsx | 4 +- .../components/widgets/widgetActions.test.tsx | 2 +- .../src/components/widgets/widgetActions.tsx | 10 +- packages/dashboard/src/customization/api.ts | 4 +- .../src/customization/hooks/useIsSelected.ts | 4 +- .../src/customization/hooks/useRefreshRate.ts | 6 +- .../customization/hooks/useWidgetActions.ts | 4 +- .../src/customization/propertiesSection.ts | 12 +- .../propertiesSectionComponent.tsx | 2 +- .../aggregationSettings/index.tsx | 14 +- .../propertiesSections/axisSettings/index.tsx | 10 +- .../axisSettings/section.spec.tsx | 6 +- .../components/dataStreamLabelComponent.tsx | 2 +- .../components/legendDisplaySection.tsx | 2 +- .../gaugeDisplaySettings.tsx | 8 +- .../displaySettingsSection/index.tsx | 6 +- .../kpiDisplaySettings.tsx | 8 +- .../fontsSettings/index.tsx | 10 +- .../formatDataSettings/index.tsx | 12 +- .../formatDataSettings/section.tsx | 4 +- .../legendSection.tsx | 2 +- .../section.spec.tsx | 2 +- .../lineAndScatterStyleSettings/section.tsx | 10 +- .../getPropertyDisplay.tsx | 2 +- .../handleDeleteAssetModelProperty.ts | 2 +- .../propertiesAndAlarmsSettings/index.tsx | 12 +- .../propertyComponent.tsx | 2 +- .../section.test.tsx | 4 +- .../propertiesAndAlarmsSettings/section.tsx | 8 +- .../sectionTypes.ts | 6 +- .../styledPropertyComponent.tsx | 4 +- .../styledSection.tsx | 8 +- .../propertiesPanel/panel.spec.tsx | 32 +- .../propertiesPanel/panel.tsx | 4 +- .../propertiesSections/textSettings/index.tsx | 10 +- .../textSettings/link.spec.tsx | 6 +- .../propertiesSections/textSettings/link.tsx | 2 +- .../textSettings/text.spec.tsx | 6 +- .../propertiesSections/textSettings/text.tsx | 2 +- .../thresholdSettings/index.spec.tsx | 6 +- .../thresholdSettings/index.tsx | 10 +- .../thresholdSettings/thresholdComponent.tsx | 2 +- .../thresholdSettings/thresholdsList.spec.tsx | 2 +- .../thresholdSettings/thresholdsList.tsx | 2 +- .../thresholdSettings/thresholdsSection.tsx | 4 +- .../propertiesSections/widgetTitle/index.tsx | 10 +- .../widgetTitle/widgetTitle.test.tsx | 4 +- .../yAxisSettingsSection/index.tsx | 10 +- .../widgetPropertiesGeneratorMap.ts | 2 +- .../widgets/barChart/component.tsx | 10 +- .../customization/widgets/barChart/plugin.tsx | 2 +- .../widgets/components/no-chart-data.spec.tsx | 4 +- .../customization/widgets/gauge/component.tsx | 10 +- .../customization/widgets/gauge/plugin.tsx | 2 +- .../customization/widgets/kpi/component.tsx | 10 +- .../src/customization/widgets/kpi/plugin.tsx | 2 +- .../widgets/lineScatterChart/component.tsx | 14 +- .../widgets/lineScatterChart/plugin.tsx | 2 +- .../status-timeline/statusTimeline.tsx | 8 +- .../status-timeline/statusTimelinePlugin.tsx | 2 +- .../widgets/status/component.tsx | 10 +- .../customization/widgets/status/plugin.tsx | 2 +- .../customization/widgets/table/component.tsx | 10 +- .../customization/widgets/table/plugin.tsx | 2 +- .../widgets/table/useTableItems.ts | 4 +- .../customization/widgets/text/component.css | 2 +- .../customization/widgets/text/component.tsx | 6 +- .../src/customization/widgets/text/plugin.tsx | 2 +- .../text/styledText/defaultFontSettings.ts | 2 +- .../widgets/text/styledText/editableText.tsx | 4 +- .../widgets/text/styledText/index.css | 2 +- .../widgets/text/styledText/textArea.css | 2 +- .../widgets/text/styledText/textArea.tsx | 6 +- .../src/customization/widgets/types.ts | 2 +- .../utils/alarmModelQueryToAlarmQuery.ts | 2 +- .../utils/assetModelQueryToAssetQuery.ts | 2 +- .../assetQuery/applyAggregationToQuery.ts | 2 +- .../assetQuery/applyResolutionToQuery.ts | 2 +- .../utils/assetQuery/assignDefaultRefId.ts | 2 +- .../widgets/utils/assetQuery/defaultColors.ts | 2 +- .../utils/assignDefaultStyleSettings.ts | 4 +- .../src/data/listAssetPropertiesMap/query.tsx | 2 +- .../listAssetPropertiesMap/selectData.tsx | 2 +- ...listAssetPropertiesWithAssetDescription.ts | 2 +- packages/dashboard/src/hooks/useAWSRegion.ts | 2 +- .../src/hooks/useAssetDescriptionQueries.ts | 10 +- .../listAssetModelPropertiesRequest.ts | 8 +- .../src/hooks/useAssetModel/useAssetModel.ts | 10 +- .../hooks/useAssistantConfiguration.spec.tsx | 6 +- .../src/hooks/useAssistantConfiguration.ts | 12 +- packages/dashboard/src/hooks/useChartSize.ts | 4 +- .../dashboard/src/hooks/useDeleteWidgets.ts | 2 +- .../dashboard/src/hooks/useSelectedWidgets.ts | 4 +- .../hooks/useStableDashboardConfiguration.ts | 2 +- .../hooks/useSyncDashboardConfiguration.ts | 4 +- .../store/actions/bringToFront/index.spec.ts | 2 +- .../changeDashboardGrid/changeCellSize.ts | 4 +- .../changeDashboardGrid/changeHeight.ts | 4 +- .../changeDashboardGrid/changeWidth.ts | 4 +- .../actions/changeDashboardGrid/updateGrid.ts | 2 +- .../actions/changeRefreshRate/index.spec.ts | 2 +- .../store/actions/changeRefreshRate/index.ts | 2 +- .../actions/cleanAssistant/index.spec.ts | 8 +- .../store/actions/copyWidgets/index.spec.ts | 2 +- .../src/store/actions/copyWidgets/index.ts | 2 +- .../src/store/actions/createWidget/index.ts | 6 +- .../actions/createWidget/presets/index.ts | 6 +- .../store/actions/deleteWidgets/index.spec.ts | 4 +- .../src/store/actions/deleteWidgets/index.ts | 2 +- .../store/actions/moveWidgets/index.spec.ts | 4 +- .../src/store/actions/moveWidgets/index.ts | 10 +- .../store/actions/pasteWidgets/index.spec.ts | 2 +- .../src/store/actions/pasteWidgets/index.ts | 2 +- .../store/actions/resizeWidgets/index.spec.ts | 2 +- .../src/store/actions/resizeWidgets/index.ts | 10 +- .../src/store/actions/selectWidgets/index.ts | 2 +- .../store/actions/sendToBack/index.spec.ts | 4 +- .../actions/toggleAssistantMode/index.spec.ts | 2 +- .../store/actions/toggleChatbot/index.spec.ts | 6 +- .../actions/toggleReadOnly/index.spec.ts | 2 +- .../updateSignificantDigits/index.spec.ts | 4 +- .../actions/updateSignificantDigits/index.ts | 2 +- .../store/actions/updateWidget/index.spec.ts | 2 +- .../src/store/actions/updateWidget/index.ts | 6 +- packages/dashboard/src/store/index.ts | 2 +- packages/dashboard/src/store/state.ts | 6 +- .../src/util/constrainWidgetPositionToGrid.ts | 2 +- .../util/convertToDashbaoardConfiguration.ts | 4 +- .../dashboard/src/util/getSelectionBox.ts | 2 +- .../src/util/moveSelectionBox.spec.ts | 4 +- .../dashboard/src/util/moveSelectionBox.ts | 4 +- packages/dashboard/src/util/overlaps.ts | 2 +- packages/dashboard/src/util/position.ts | 2 +- .../src/util/resizeSelectionBox.spec.ts | 8 +- .../dashboard/src/util/resizeSelectionBox.ts | 6 +- packages/dashboard/src/util/select.ts | 2 +- .../src/util/transformWidget.spec.ts | 8 +- .../dashboard/src/util/transformWidget.ts | 2 +- .../dashboard/src/util/trimRectPosition.ts | 2 +- packages/dashboard/svgTransform.js | 12 - packages/dashboard/testing/mocks.ts | 2 +- packages/dashboard/tsconfig.cjs.json | 15 - packages/dashboard/tsconfig.esm.json | 15 - packages/dashboard/tsconfig.json | 5 +- packages/dashboard/vite.config.ts | 23 +- packages/data-mocked/.eslintrc.cjs | 17 +- packages/data-mocked/package.json | 17 +- packages/helpers/.eslintignore | 3 +- packages/helpers/.eslintrc.cjs | 17 +- packages/helpers/package.json | 34 +- packages/helpers/src/constants/time.ts | 3 + packages/helpers/src/index.ts | 7 + packages/helpers/vite.config.ts | 5 + packages/react-components/.eslintignore | 1 + packages/react-components/.eslintrc.cjs | 21 +- packages/react-components/package.json | 79 +- .../react-components/playwright.config.ts | 4 +- .../knowledge-graph/graph/graph-view.tsx | 3 +- .../extensions/trendCursors/types.d.ts | 2 +- .../trendCursors/view/utils/polyline.ts | 1 + packages/react-components/svgTransform.cjs | 12 - packages/react-components/tsconfig.cjs.json | 17 - packages/react-components/tsconfig.esm.json | 17 - packages/react-components/vite.config.ts | 28 +- packages/scene-composer/.eslintrc.cjs | 13 +- packages/scene-composer/.husky/pre-commit | 4 - packages/scene-composer/package.json | 87 +- packages/scene-composer/playwright.config.ts | 4 +- .../DefaultErrorFallback.spec.tsx.snap | 88 - .../ConvertingProgress.spec.tsx.snap | 483 -- .../DeleteNodeModalSnap.spec.tsx.snap | 38 - .../SceneHierarchyPanel.spec.tsx.snap | 416 -- .../ComponentTypeIcon.spec.tsx.snap | 302 -- .../__snapshots__/SettingsPanel.spec.tsx.snap | 3256 ------------- .../SceneNodeInspectorPanel.spec.tsx.snap | 4076 ++--------------- .../AnimationComponentEditor.spec.tsx.snap | 600 --- ...taOverlayComponentEditorSnap.spec.tsx.snap | 288 -- ...IndicatorComponentEditorSnap.spec.tsx.snap | 369 -- .../AppearanceEditor.spec.tsx.snap | 1425 ------ .../SceneRuleTargetColorEditor.spec.tsx.snap | 186 - .../SceneRuleTargetEditor.spec.tsx.snap | 771 ---- .../ComponentVisibilityToggle.spec.tsx.snap | 88 - ...eneDataBindingTemplateEditor.spec.tsx.snap | 576 --- .../__snapshots__/ItemContainer.spec.tsx.snap | 334 -- .../src/{index.tsx => index.ts} | 0 .../FoldableContainer.spec.tsx.snap | 178 - .../TabbedPanelContainer.spec.tsx.snap | 178 - .../__snapshots__/StaticLayout.spec.tsx.snap | 260 -- packages/scene-composer/tsconfig.cjs.json | 22 - packages/scene-composer/tsconfig.esm.json | 23 - packages/scene-composer/vite.config.ts | 21 +- packages/source-iotsitewise/.eslintrc.cjs | 17 +- packages/source-iotsitewise/package.json | 72 +- .../requestProcessorWorkerGroup.spec.ts | 7 +- packages/source-iotsitewise/tsconfig.cjs.json | 11 - packages/source-iotsitewise/tsconfig.esm.json | 11 - packages/source-iotsitewise/tsconfig.json | 2 +- packages/source-iotsitewise/vite.config.ts | 7 + packages/source-iotsitewise/vitest.config.ts | 21 - packages/source-iottwinmaker/.eslintrc.cjs | 17 +- packages/source-iottwinmaker/package.json | 80 +- .../source-iottwinmaker/tsconfig.cjs.json | 11 - .../source-iottwinmaker/tsconfig.esm.json | 11 - packages/source-iottwinmaker/tsconfig.json | 2 +- packages/source-iottwinmaker/vite.config.ts | 7 + packages/source-iottwinmaker/vitest.config.ts | 21 - packages/testing-util/.eslintignore | 2 - packages/testing-util/.eslintrc.cjs | 17 +- packages/testing-util/package.json | 42 +- packages/testing-util/tsconfig.cjs.json | 9 - packages/testing-util/tsconfig.esm.json | 9 - packages/tools-iottwinmaker/.eslintrc.cjs | 17 +- packages/tools-iottwinmaker/package.json | 46 +- .../src/{build.ts => configurePlatform.cts} | 0 packages/tools-iottwinmaker/src/index.ts | 1 + packages/tools-iottwinmaker/tsconfig.cjs.json | 12 - packages/tools-iottwinmaker/tsconfig.esm.json | 12 - packages/tools-iottwinmaker/tsconfig.json | 2 +- packages/tools-iottwinmaker/vite.config.ts | 5 + packages/tools-iottwinmaker/vitest.config.ts | 20 - turbo.json | 165 +- 379 files changed, 3643 insertions(+), 16901 deletions(-) delete mode 100644 .stylelintignore create mode 100644 apps/doc-site/.eslintrc.cjs delete mode 100644 apps/doc-site/.eslintrc.js delete mode 100644 configuration/ts-config/tsconfig.build.json delete mode 100644 configuration/ts-config/tsconfig.cjs.json delete mode 100644 configuration/ts-config/tsconfig.esm.json create mode 100644 configuration/vite-config/.eslintrc.cjs create mode 100644 configuration/vite-config/package.json create mode 100644 configuration/vite-config/src/copyPlugin.ts create mode 100644 configuration/vite-config/src/definePackageConfig.ts create mode 100644 configuration/vite-config/src/installedPackages.ts create mode 100644 configuration/vite-config/src/package.ts create mode 100644 configuration/vite-config/src/packageJson.ts create mode 100644 configuration/vite-config/src/packageRegistry.ts create mode 100755 configuration/vite-config/src/scripts/postpack.ts create mode 100755 configuration/vite-config/src/scripts/prepack.ts create mode 100644 configuration/vite-config/tsconfig.json delete mode 100644 packages/core-util/tsconfig.cjs.json delete mode 100644 packages/core-util/tsconfig.esm.json create mode 100644 packages/core-util/vite.config.ts delete mode 100644 packages/core-util/vitest.config.ts delete mode 100644 packages/core/tsconfig.cjs.json delete mode 100644 packages/core/tsconfig.esm.json create mode 100644 packages/core/vite.config.ts delete mode 100644 packages/core/vitest.config.ts delete mode 100644 packages/dashboard/svgTransform.js delete mode 100644 packages/dashboard/tsconfig.cjs.json delete mode 100644 packages/dashboard/tsconfig.esm.json create mode 100644 packages/helpers/src/index.ts create mode 100644 packages/helpers/vite.config.ts delete mode 100644 packages/react-components/svgTransform.cjs delete mode 100644 packages/react-components/tsconfig.cjs.json delete mode 100644 packages/react-components/tsconfig.esm.json delete mode 100755 packages/scene-composer/.husky/pre-commit rename packages/scene-composer/src/{index.tsx => index.ts} (100%) delete mode 100644 packages/scene-composer/tsconfig.cjs.json delete mode 100644 packages/scene-composer/tsconfig.esm.json delete mode 100644 packages/source-iotsitewise/tsconfig.cjs.json delete mode 100644 packages/source-iotsitewise/tsconfig.esm.json create mode 100644 packages/source-iotsitewise/vite.config.ts delete mode 100644 packages/source-iotsitewise/vitest.config.ts delete mode 100644 packages/source-iottwinmaker/tsconfig.cjs.json delete mode 100644 packages/source-iottwinmaker/tsconfig.esm.json create mode 100644 packages/source-iottwinmaker/vite.config.ts delete mode 100644 packages/source-iottwinmaker/vitest.config.ts delete mode 100644 packages/testing-util/.eslintignore delete mode 100644 packages/testing-util/tsconfig.cjs.json delete mode 100644 packages/testing-util/tsconfig.esm.json rename packages/tools-iottwinmaker/src/{build.ts => configurePlatform.cts} (100%) create mode 100644 packages/tools-iottwinmaker/src/index.ts delete mode 100644 packages/tools-iottwinmaker/tsconfig.cjs.json delete mode 100644 packages/tools-iottwinmaker/tsconfig.esm.json create mode 100644 packages/tools-iottwinmaker/vite.config.ts delete mode 100644 packages/tools-iottwinmaker/vitest.config.ts diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 15cc60586..95e794ef9 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -68,6 +68,7 @@ jobs: source-iotsitewise, source-iottwinmaker, tools-iottwinmaker, + vite-config, ] steps: - name: Checkout @@ -113,7 +114,7 @@ jobs: ${{ runner.os }}-test-lint-${{ matrix.package}}- - name: Validate - run: npx turbo build:cjs build:es lint test --filter=@iot-app-kit/${{ matrix.package }} + run: npx turbo build lint test --filter=@iot-app-kit/${{ matrix.package }} playwright: needs: repo diff --git a/.gitignore b/.gitignore index 934e6495c..70d38e7d5 100755 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ npm-debug.log *.sublime-project *.sublime-workspace *.docx +*.tgz .idea/ .vscode/ diff --git a/.stylelintignore b/.stylelintignore deleted file mode 100644 index 698f0d704..000000000 --- a/.stylelintignore +++ /dev/null @@ -1,11 +0,0 @@ -build/ -dist/ -www/ -loader/ -node_modules/ -examples/ -**/coverage/* -coverage/ -packages/dashboard/src/components/internalDashboard/index.css -packages/react-components/styles.css -storybook-static diff --git a/apps/dev-env/.eslintignore b/apps/dev-env/.eslintignore index 590af21b2..bba5c0319 100644 --- a/apps/dev-env/.eslintignore +++ b/apps/dev-env/.eslintignore @@ -1,2 +1,4 @@ node_modules storybook-static +.turbo +.cache \ No newline at end of file diff --git a/apps/dev-env/.eslintrc.cjs b/apps/dev-env/.eslintrc.cjs index 5b89c5273..02675e462 100644 --- a/apps/dev-env/.eslintrc.cjs +++ b/apps/dev-env/.eslintrc.cjs @@ -1,4 +1,26 @@ +const base = require('@iot-app-kit/eslint-config'); + +// The pattern of manual merging is repeated in the .eslintrc.cjs files across +// the repo. Since we are using lodash-es, merge cannot be imported in this CJS +// file. + +// TODO: Replace manual merging in ESLint config files. Consider migration to +// the latest ESLint which uses ESM. + module.exports = { + ...base, root: true, - extends: ['iot-app-kit'], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['apps/dev-env/tsconfig.json'], + }, + node: { + project: ['apps/dev-env/tsconfig.json'], + }, + }, + }, }; diff --git a/apps/dev-env/package.json b/apps/dev-env/package.json index 56a2b9e43..5cf3ef9e8 100644 --- a/apps/dev-env/package.json +++ b/apps/dev-env/package.json @@ -1,16 +1,17 @@ { "name": "@iot-app-kit/dev-env", + "version": "12.2.1", "private": true, "type": "module", "scripts": { "start": "npm run dev", - "clean": "rimraf storybook-static .turbo .cache test-results playwright-report", - "clean:nuke": "npm run clean && rimraf node_modules", - "dev": "storybook dev -p 6006", + "clean": "npx rimraf storybook-static .turbo .cache test-results playwright-report", + "clean:nuke": "npm run clean && npx rimraf node_modules", + "dev": "NODE_OPTIONS='--import tsx/esm' storybook dev -p 6006", "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/ & tsc --noEmit", "fix": "eslint --fix . --cache --cache-location ./cache/eslint/", "test:ui": "npx playwright test", - "test:ui:ci": "npx playwright test", + "test:ui:ci": "NODE_OPTIONS='-C @iot-app-kit/development' npx playwright test", "test:ui:watch": "npx playwright test --ui" }, "dependencies": { @@ -22,7 +23,9 @@ "@iot-app-kit/core-util": "*", "@iot-app-kit/dashboard": "*", "@iot-app-kit/data-mocked": "*", + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/helpers": "*", + "@iot-app-kit/react-components": "*", "@iot-app-kit/ts-config": "*", "@playwright/test": "^1.48.2", "@storybook/addon-essentials": "^8.4.5", @@ -34,7 +37,6 @@ "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@vitejs/plugin-react": "^4.3.3", - "eslint-config-iot-app-kit": "*", "lodash-es": "^4.17.21", "msw-storybook-addon": "^2.0.4", "react": "^18.2.0", diff --git a/apps/dev-env/playwright.config.ts b/apps/dev-env/playwright.config.ts index b94292d15..d6198c0c3 100644 --- a/apps/dev-env/playwright.config.ts +++ b/apps/dev-env/playwright.config.ts @@ -1,7 +1,4 @@ -import { - MINUTE_IN_MS, - SECOND_IN_MS, -} from '@iot-app-kit/helpers/constants/time'; +import { MINUTE_IN_MS, SECOND_IN_MS } from '@iot-app-kit/helpers'; import { defineConfig, devices } from '@playwright/test'; /** diff --git a/apps/dev-env/stories/dashboard/sitewise-dashboard.stories.tsx b/apps/dev-env/stories/dashboard/sitewise-dashboard.stories.tsx index 9f07d9aac..b520bd9c4 100644 --- a/apps/dev-env/stories/dashboard/sitewise-dashboard.stories.tsx +++ b/apps/dev-env/stories/dashboard/sitewise-dashboard.stories.tsx @@ -63,14 +63,12 @@ type Story = StoryObj; export const Main: Story = { render: (_story, { args }) => { - // eslint-disable-next-line react-hooks/rules-of-hooks const [initialViewMode, setInitialViewMode] = useState<'preview' | 'edit'>( 'edit' ); // on save not only updates local storage but forces the dashboard to reload given the updated config // this is done to more realistically match the dashboard implementation in iot-application - // eslint-disable-next-line react-hooks/rules-of-hooks const onSave = useCallback( async ( dashboard: DashboardConfiguration, diff --git a/apps/dev-env/tsconfig.json b/apps/dev-env/tsconfig.json index 049b73be1..07d9924b3 100644 --- a/apps/dev-env/tsconfig.json +++ b/apps/dev-env/tsconfig.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/tsconfig", "extends": "@iot-app-kit/ts-config/tsconfig.base.json", - "include": [".storybook", "stories", "msw"], + "include": [".storybook", "stories", "msw", "e2e"], "compilerOptions": { "types": ["vite/client"] } diff --git a/apps/dev-env/vite.config.ts b/apps/dev-env/vite.config.ts index 4e7004ebc..41fad5997 100644 --- a/apps/dev-env/vite.config.ts +++ b/apps/dev-env/vite.config.ts @@ -1,7 +1,10 @@ -import react from '@vitejs/plugin-react'; import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; // https://vitejs.dev/config/ export default defineConfig({ + resolve: { + conditions: ['@iot-app-kit/development'], + }, plugins: [react()], }); diff --git a/apps/doc-site/.eslintrc.cjs b/apps/doc-site/.eslintrc.cjs new file mode 100644 index 000000000..eee136b9d --- /dev/null +++ b/apps/doc-site/.eslintrc.cjs @@ -0,0 +1,6 @@ +const base = require('@iot-app-kit/eslint-config'); + +module.exports = { + ...base, + root: true, +}; diff --git a/apps/doc-site/.eslintrc.js b/apps/doc-site/.eslintrc.js deleted file mode 100644 index 5b89c5273..000000000 --- a/apps/doc-site/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ['iot-app-kit'], -}; diff --git a/apps/doc-site/package.json b/apps/doc-site/package.json index 78aba7a1c..b6060c991 100644 --- a/apps/doc-site/package.json +++ b/apps/doc-site/package.json @@ -6,8 +6,8 @@ "scripts": { "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", - "clean": "rimraf storybook-static .turbo", - "clean:nuke": "npm run clean && rimraf node_modules", + "clean": "npx rimraf storybook-static .turbo", + "clean:nuke": "npm run clean && npx rimraf node_modules", "start": "storybook dev -p 6006", "dev": "npm start", "build": "storybook build", @@ -15,7 +15,8 @@ "fix": "eslint --fix . --cache --cache-location .cache/eslint/" }, "devDependencies": { - "@iot-app-kit/testing-util": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/testing-util": "*", "@storybook/addon-essentials": "^8.4.5", "@storybook/addon-interactions": "^8.4.5", "@storybook/addon-links": "^8.4.5", @@ -26,7 +27,6 @@ "@storybook/theming": "^8.4.5", "@types/node": "^18.16.18", "@vitejs/plugin-react": "^4.3.3", - "eslint-config-iot-app-kit": "12.2.1", "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/configuration/eslint-config/index.js b/configuration/eslint-config/index.js index a3fd8f783..8da5b384c 100644 --- a/configuration/eslint-config/index.js +++ b/configuration/eslint-config/index.js @@ -37,7 +37,9 @@ module.exports = { pragma: 'h', }, 'import/resolver': { - typescript: true, + typescript: { + conditionNames: ['@iot-app-kit/development'], + }, node: true, }, }, diff --git a/configuration/eslint-config/package.json b/configuration/eslint-config/package.json index d3670b8c1..4335ce8ab 100644 --- a/configuration/eslint-config/package.json +++ b/configuration/eslint-config/package.json @@ -1,12 +1,13 @@ { - "name": "eslint-config-iot-app-kit", + "name": "@iot-app-kit/eslint-config", + "version": "12.2.1", "main": "index.js", "private": true, - "files": [ - "index.js" - ], + "exports": { + ".": "./index.js" + }, "scripts": { - "clean:nuke": "rimraf node_modules" + "clean:nuke": "npx rimraf node_modules" }, "dependencies": { "@typescript-eslint/eslint-plugin": "^5.60.0", @@ -31,6 +32,5 @@ "@types/node": "^18.16.18", "eslint-import-resolver-typescript": "^3.6.0", "typescript": "^5.5.4" - }, - "version": "12.2.1" + } } diff --git a/configuration/ts-config/package.json b/configuration/ts-config/package.json index dbd6894ff..2a6380a4a 100644 --- a/configuration/ts-config/package.json +++ b/configuration/ts-config/package.json @@ -1,19 +1,17 @@ { "name": "@iot-app-kit/ts-config", - "type": "module", + "version": "12.2.1", "private": true, + "type": "module", "files": [ - "tsconfig.base.json", - "tsconfig.cjs.json", - "tsconfig.esm.json" + "tsconfig.base.json" ], "scripts": { - "clean:nuke": "rimraf node_modules" + "clean:nuke": "npx rimraf node_modules" }, "devDependencies": { "@types/node": "^18.16.18", "rimraf": "^5.0.1", "typescript": "^5.5.4" - }, - "version": "12.2.1" + } } diff --git a/configuration/ts-config/tsconfig.base.json b/configuration/ts-config/tsconfig.base.json index 8dff814cc..b521c5d62 100644 --- a/configuration/ts-config/tsconfig.base.json +++ b/configuration/ts-config/tsconfig.base.json @@ -1,10 +1,12 @@ { "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { - "allowUnreachableCode": false, - "allowUnusedLabels": false, "declaration": true, + "declarationDir": "dist", "declarationMap": true, + "sourceMap": true, + "allowUnreachableCode": false, + "allowUnusedLabels": false, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "inlineSources": false, @@ -18,6 +20,8 @@ "module": "ESNext", "moduleResolution": "bundler", "target": "ESNEXT", - "jsx": "react-jsx" + "jsx": "react-jsx", + /* Flag used to import local package types directly from source during development. */ + "customConditions": ["@iot-app-kit/development"] } } diff --git a/configuration/ts-config/tsconfig.build.json b/configuration/ts-config/tsconfig.build.json deleted file mode 100644 index d8198911c..000000000 --- a/configuration/ts-config/tsconfig.build.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "./tsconfig.base.json", - "compilerOptions": { - "declaration": true, - "declarationMap": true, - "sourceMap": true, - "incremental": true - } -} diff --git a/configuration/ts-config/tsconfig.cjs.json b/configuration/ts-config/tsconfig.cjs.json deleted file mode 100644 index a2c2d17c2..000000000 --- a/configuration/ts-config/tsconfig.cjs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "commonjs", - "moduleResolution": "node" - } -} diff --git a/configuration/ts-config/tsconfig.esm.json b/configuration/ts-config/tsconfig.esm.json deleted file mode 100644 index af8bba152..000000000 --- a/configuration/ts-config/tsconfig.esm.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "./tsconfig.build.json", - "compilerOptions": { - "module": "ESNext" - } -} diff --git a/configuration/vite-config/.eslintrc.cjs b/configuration/vite-config/.eslintrc.cjs new file mode 100644 index 000000000..4df767965 --- /dev/null +++ b/configuration/vite-config/.eslintrc.cjs @@ -0,0 +1,19 @@ +const base = require('@iot-app-kit/eslint-config'); + +module.exports = { + ...base, + root: true, + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['configuration/vite-config/tsconfig.json'], + }, + node: { + project: ['configuration/vite-config/tsconfig.json'], + }, + }, + }, +}; diff --git a/configuration/vite-config/package.json b/configuration/vite-config/package.json new file mode 100644 index 000000000..3162c88c4 --- /dev/null +++ b/configuration/vite-config/package.json @@ -0,0 +1,37 @@ +{ + "name": "@iot-app-kit/vite-config", + "version": "12.2.1", + "private": true, + "type": "module", + "exports": { + "./definePackageConfig": "./src/definePackageConfig.ts" + }, + "bin": { + "iot-prepack": "./src/scripts/prepack.ts", + "iot-postpack": "./src/scripts/postpack.ts" + }, + "scripts": { + "clean": "npx rimraf .cache .turbo", + "clean:nuke": "npm run clean && npx rimraf node_modules", + "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/ & tsc --noEmit", + "fix": "eslint --fix . --cache --cache-location ./cache/eslint/", + "test:typescript": "tsc --noEmit" + }, + "devDependencies": { + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@types/fs-extra": "^11.0.4", + "@types/node": "^18.16.18", + "rimraf": "^5.0.1" + }, + "dependencies": { + "fs-extra": "^11.2.0", + "lodash-es": "^4.17.21", + "rollup-plugin-copy": "^3.5.0", + "tiny-invariant": "^1.3.1", + "type-fest": "^4.28.1", + "typescript": "^5.5.4", + "vite": "^5.4.11", + "vite-plugin-dts": "^4.3.0" + } +} diff --git a/configuration/vite-config/src/copyPlugin.ts b/configuration/vite-config/src/copyPlugin.ts new file mode 100644 index 000000000..e5bdfe837 --- /dev/null +++ b/configuration/vite-config/src/copyPlugin.ts @@ -0,0 +1,55 @@ +import { resolve } from 'path'; +import copy from 'rollup-plugin-copy'; +import type { Plugin } from 'vite'; +import { listInstalledPackages } from './installedPackages'; +import { type PackageName, type PackageShortName } from './package'; +import { type LocalPackageJson } from './packageJson'; + +export interface CopyPackagePluginOptions { + dir: string; + packageJson: LocalPackageJson; +} + +export function copyProtectedPackagesPlugin({ + dir, + packageJson, +}: CopyPackagePluginOptions): Plugin { + const packagesToCopy = listInstalledPackages(packageJson, { + filter: { dependencyType: 'dependencies', scope: 'protected' }, + }); + + // To enable installation of unpublished shared packages when an + // external consumer is installing an iot-app-kit package, the + // compiled code and the package.json file of each shared package is + // copied into the consuming package. The result of the copy is a + // something resembling what is installed into the external consumers + // node_modules. + return copy({ + // Copy after the code is transformed. + hook: 'writeBundle', + targets: packagesToCopy.flatMap((iotAppKitPackage) => { + const packageShortName = getPackageShortName(iotAppKitPackage.name); + + const packagePath = getSiblingPackagePath(packageShortName, dir); + const artifactsSrc = resolve(packagePath, 'dist'); + const packageJSONSrc = resolve(packagePath, 'package.json'); + const copyDest = resolve(dir, `dist/${packageShortName}`); + + return [ + { src: artifactsSrc, dest: copyDest }, + { src: packageJSONSrc, dest: copyDest }, + ]; + }), + }); +} + +function getPackageShortName(packageName: PackageName): PackageShortName { + return packageName.split('/')[1] as PackageShortName; +} + +function getSiblingPackagePath( + siblingPackageShortName: string, + dirname: string +): string { + return resolve(dirname, `../${siblingPackageShortName}`); +} diff --git a/configuration/vite-config/src/definePackageConfig.ts b/configuration/vite-config/src/definePackageConfig.ts new file mode 100644 index 000000000..5ada6f147 --- /dev/null +++ b/configuration/vite-config/src/definePackageConfig.ts @@ -0,0 +1,194 @@ +/// +import mergeWith from 'lodash-es/mergeWith.js'; +import { resolve } from 'path'; +import { + defineConfig, + type AliasOptions as ViteAliasOptions, + type UserConfig as ViteConfig, +} from 'vite'; +import dts from 'vite-plugin-dts'; +import { copyProtectedPackagesPlugin } from './copyPlugin'; +import { getShortName } from './package'; +import { readPackageJson } from './packageJson'; +import { listRegisteredPackages } from './packageRegistry'; + +// re-export to prevent making TypeScript angry from re-alias +export type { ViteConfig }; + +export interface PackageViteConfig extends ViteConfig { + iotAppKitPackage: { + /** + * Specify the name of the directory containing the package. + * + * @example __dirname + */ + dirname: string; + }; +} + +/** + * Use and extend the default iot-app-kit Vite configuration. + * + * // TODO: Document issue with importing TypeScript code + * // from different a monorepo package into vite.config.ts. + */ +export function definePackageConfig( + /** + * Define package-specific Vite config settings to recursively merge with the + * base configuration. + */ + { iotAppKitPackage: { dirname }, ...customViteConfig }: PackageViteConfig +): ViteConfig { + const packageJson = readPackageJson(resolve(dirname, './package.json')); + + const allPackages = listRegisteredPackages(); + const protectedPackages = listRegisteredPackages({ + filter: { scope: 'protected' }, + }); + + const packageAliases = protectedPackages.reduce( + (acc, protectedPackage) => { + const protectedPackageShortName = getShortName(protectedPackage.name); + + return { + ...acc, + [protectedPackage.name]: resolve( + dirname, + `../${protectedPackageShortName}/src` + ), + } satisfies ViteAliasOptions; + }, + {} + ); + + // Package-specific configuration is recursively merged with the base + // configuration defined here to provide packages flexibility in their + // build process within the constraints defined by the library. + const mergedConfig = mergeWith( + customViteConfig, + { + resolve: { + // Provide Vite the location of the source code of protected packages + // during development. This allows the compiler to optimize the import + // and transformation of shared packaged during development activities, + // such as unit testing and running Storybook, when the source code is + // used directly. + alias: { ...packageAliases }, + + // Provide Vite the flag used to signal it source reference the source + // code of dependent packages directly during development. The flag is + // also utilized in a package's package.json file to configure the + // `exports` setting to point to the source code during development, or + // the dist otherwise. This flag is additionally referenced in the base + // tsconfig.json used by all packages (i.e., tsconfig.base.json) to + // "activate" the flag during development. + conditions: ['@iot-app-kit/development'], + }, + + test: { + // Vitest must know the location of any aliases + alias: { ...packageAliases }, + // performance optimization + pool: 'threads', + // It is recommended to colocate Vitest tests with the source code. + include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], + // Do not require vitest to be imported into test files + globals: true, + // Do not process CSS files for tests. + css: false, + // Use happy-dom over jsdom for faster unit tests. + environment: 'happy-dom', + setupFiles: ['jest-extended/all'], + }, + + build: { + // Every package should be built into a `dist` directory contained + // within the package being built. + outDir: 'dist', + // Use library setting to avoid optimizations meant for applications. + lib: { + // Every package should define a root index file at the defined + // location. + // + // TODO: Enable packages to expose multiple entry points to enable + // consumers, including ourselves, to effectively perform + // code-splitting. + entry: './src/index.ts', + }, + // Vite does not respect the sourceMap setting defined in + // tsconfig.json. + sourcemap: true, + rollupOptions: { + // We bundle both ESM and CJS modules to ensure the maximum + // compatability with the majority of build tools and runtimes. + output: [ + { + dir: 'dist/esm', + format: 'esm', + // The directory and file structure is preserved during + // transpilation, instead of bundling the code into a single + // file. Some build tools are not able to effectively tree-shake + // unused library code when it is bundled into a single file. + // This results in the bundle size of the consumer being larger + // then necessary. By not bundling our code, the consumer is + // more in control of what they bundle from our library. + preserveModules: true, + preserveModulesRoot: 'src', + // Retain the actual name of the file during transpilation. + entryFileNames: '[name].js', + }, + { + dir: 'dist/cjs', + format: 'cjs', + preserveModules: true, + preserveModulesRoot: 'src', + entryFileNames: '[name].cjs.js', + }, + ], + external: [ + // Prevent node_modules from being compiled and included in the + // the package's dist. + /node_modules/, + + // Prevent the package from compiling the source code of aliased + // protected packages. + ...allPackages.map(({ name }) => name), + ], + }, + }, + + plugins: [ + // Vite doesn't generate declaration files automatically and does not + // care about what's defined in the package.json. we need to use a + // plugin to generate the types. + dts({ + tsconfigPath: resolve(dirname, './tsconfig.json'), + // The dts plugin does use all of the settings of the tsconfig.json + // file it is using to build the declaration files. The following + // options need to be set to be set. Consistency across packages + // enables us to avoid package-specific configuration of these + // options. + include: ['src'], + outDir: ['dist/esm', 'dist/cjs'], + // All of the code being distributed by a package should be contained + // within the package's `src` directory. + exclude: [ + './src/**/*.spec.*', + './src/**/*.test.*', + './src/**/__mocks__', + ], + }), + copyProtectedPackagesPlugin({ dir: dirname, packageJson }), + ], + } satisfies ViteConfig, + // _.merge does not concat arrays, so we use _.mergeWith instead with a + // custom resolver. + (baseConfigValue: unknown, customConfigValue: unknown) => { + if (Array.isArray(baseConfigValue)) { + return baseConfigValue.concat(customConfigValue); + } + } + ); + + return defineConfig(mergedConfig); +} diff --git a/configuration/vite-config/src/installedPackages.ts b/configuration/vite-config/src/installedPackages.ts new file mode 100644 index 000000000..1ec1d427b --- /dev/null +++ b/configuration/vite-config/src/installedPackages.ts @@ -0,0 +1,113 @@ +import { + type PackageConfig, + type PackageName, + type PackageScope, +} from './package'; +import { type LocalPackageJson } from './packageJson'; +import { packageRegistry } from './packageRegistry'; + +export interface InstalledPackage { + name: PackageName; + scope: PackageScope; + dependencyType: 'dependencies' | 'devDependencies'; +} + +export function listInstalledPackages( + packageJson: LocalPackageJson, + options?: { + filter?: { + dependencyType?: InstalledPackage['dependencyType']; + scope?: InstalledPackage['scope']; + }; + } +): readonly InstalledPackage[] { + const installedPackages: InstalledPackage[] = [ + ...Object.keys(packageJson.dependencies ?? {}) + .filter(isRegisteredPackage) + .map(createInstalledPackage({ dependencyType: 'dependencies' })), + ...Object.keys(packageJson.devDependencies ?? {}) + .filter(isRegisteredPackage) + .map(createInstalledPackage({ dependencyType: 'devDependencies' })), + ]; + return installedPackages + .filter((installedPackage) => { + const shouldListPackagesInDependencies = + options?.filter?.dependencyType == null || + options.filter.dependencyType === 'dependencies'; + + if ( + !shouldListPackagesInDependencies && + installedPackage.dependencyType === 'dependencies' + ) { + return false; + } else { + return true; + } + }) + .filter((installedPackage) => { + const shouldListPackagesInDevDependencies = + options?.filter?.dependencyType == null || + options.filter.dependencyType === 'devDependencies'; + + if ( + !shouldListPackagesInDevDependencies && + installedPackage.dependencyType === 'devDependencies' + ) { + return false; + } else { + return true; + } + }) + .filter((installedPackage) => { + const shouldListPublicScopePackages = + options?.filter?.scope == null || options.filter.scope === 'public'; + + if ( + !shouldListPublicScopePackages && + installedPackage.scope === 'public' + ) { + return false; + } else { + return true; + } + }) + .filter((installedPackage) => { + const shouldListProtectedScopePackages = + options?.filter?.scope == null || options.filter.scope === 'protected'; + + if ( + !shouldListProtectedScopePackages && + installedPackage.scope === 'protected' + ) { + return false; + } else { + return true; + } + }); +} + +function createInstalledPackage(options: { + dependencyType: InstalledPackage['dependencyType']; +}) { + return function createInstalledPackageWithOptions( + packageName: PackageName + ): InstalledPackage { + const packageConfig = getPackageConfig(packageName); + + return { + name: packageName, + scope: packageConfig.scope, + dependencyType: options.dependencyType, + }; + }; +} + +function isRegisteredPackage( + packageName: string | PackageName +): packageName is PackageName { + return packageRegistry[packageName as PackageName] != null; +} + +function getPackageConfig(packageName: PackageName): PackageConfig { + return packageRegistry[packageName]; +} diff --git a/configuration/vite-config/src/package.ts b/configuration/vite-config/src/package.ts new file mode 100644 index 000000000..252674e98 --- /dev/null +++ b/configuration/vite-config/src/package.ts @@ -0,0 +1,12 @@ +import type { Split } from 'type-fest'; + +export type PackageName = `@iot-app-kit/${string}`; +export type PackageShortName = Split[1]; +export type PackageScope = 'public' | 'protected'; +export interface PackageConfig { + scope: PackageScope; +} + +export function getShortName(packageName: PackageName): PackageShortName { + return packageName.split('/')[1]; +} diff --git a/configuration/vite-config/src/packageJson.ts b/configuration/vite-config/src/packageJson.ts new file mode 100644 index 000000000..36cdeb8bf --- /dev/null +++ b/configuration/vite-config/src/packageJson.ts @@ -0,0 +1,61 @@ +import fse from 'fs-extra'; +import invariant from 'tiny-invariant'; +import type { PackageJson as BasePackageJson } from 'type-fest'; +import { type PackageConfig } from './package'; + +export type LocalPackageJson = BasePackageJson & { + iotAppKit: PackageConfig; + // We validate these, so we override these to remove their default annoation. + name: string; + version: string; +}; + +export function readPackageJson(packageJsonPath: string): LocalPackageJson { + try { + // Casted to replace any type with strong typing + const packageJson = fse.readJSONSync(packageJsonPath) as + | BasePackageJson + | unknown; + + invariant( + isValidPackageJson(packageJson), + `[iot-app-kit] Expected valid package.json: ${packageJsonPath}` + ); + + return packageJson; + } catch (error) { + console.error( + `*** Failed to read package.json file from path: ${packageJsonPath} ***` + ); + + throw error; + } +} + +export function hasPackageJson(packageJsonPath: string): boolean { + try { + return fse.readJSONSync(`../${packageJsonPath}/package.json`) != null; + } catch (error) { + return false; + } +} + +function isValidPackageJson( + maybePackageJson: LocalPackageJson | unknown +): maybePackageJson is LocalPackageJson { + const asPackageJson = maybePackageJson as LocalPackageJson; + + // Protect ourselves from an exceptions when reading untrusted data. + try { + // TODO: Use more robust validation solution. + return ( + Boolean(asPackageJson.name) && + Boolean(asPackageJson.version) && + asPackageJson.iotAppKit != null && + (asPackageJson.iotAppKit.scope === 'public' || + asPackageJson.iotAppKit.scope === 'protected') + ); + } catch { + return false; + } +} diff --git a/configuration/vite-config/src/packageRegistry.ts b/configuration/vite-config/src/packageRegistry.ts new file mode 100644 index 000000000..9eaa93967 --- /dev/null +++ b/configuration/vite-config/src/packageRegistry.ts @@ -0,0 +1,102 @@ +// eslint-disable-next-line import/default +import fse from 'fs-extra'; +import { + type PackageConfig, + type PackageName, + type PackageScope, +} from './package'; +import { + hasPackageJson, + readPackageJson, + type LocalPackageJson, +} from './packageJson'; + +export interface PackageRegistry { + [name: PackageName]: PackageConfig; +} + +export const packageRegistry: PackageRegistry = createPackageRegistry(); + +function createPackageRegistry(): PackageRegistry { + const packageJsons = readAllPackageJsons(); + const packageRegistry: PackageRegistry = packageJsons.reduce( + (acc, current) => { + return { + ...acc, + [current.name]: current.iotAppKit, + }; + }, + {} + ); + + return packageRegistry; +} + +function readAllPackageJsons(): LocalPackageJson[] { + const packagePaths = fse.readdirSync('../../packages'); + const packageJsons = packagePaths + .filter(hasPackageJson) + .map((packagePath) => readPackageJson(`../${packagePath}/package.json`)); + + return packageJsons; +} + +export interface RegisteredPackage { + name: PackageName; + scope: PackageScope; +} + +export interface ListRegisteredPackagesOptions { + filter?: { + scope?: PackageScope; + }; +} + +export function listRegisteredPackages( + options: ListRegisteredPackagesOptions = {} +): readonly RegisteredPackage[] { + const registeredPackages = ( + Object.keys(packageRegistry) as PackageName[] + ).map(createRegisteredPackage); + + return registeredPackages + .filter((registeredPackage) => { + const shouldListPublicScopePackages = + options.filter?.scope == null || options.filter.scope === 'public'; + + if ( + !shouldListPublicScopePackages && + registeredPackage.scope === 'public' + ) { + return false; + } else { + return true; + } + }) + .filter((registeredPackage) => { + const shouldListProtectedScopePackages = + options.filter?.scope == null || options.filter.scope === 'protected'; + + if ( + !shouldListProtectedScopePackages && + registeredPackage.scope === 'protected' + ) { + return false; + } else { + return true; + } + }); +} + +function createRegisteredPackage(packageName: PackageName): RegisteredPackage { + const packageConfig = getPackageConfig(packageName); + + return { + name: packageName, + scope: packageConfig.scope, + }; +} + +function getPackageConfig(packageName: PackageName): PackageConfig { + return packageRegistry[packageName]; +} diff --git a/configuration/vite-config/src/scripts/postpack.ts b/configuration/vite-config/src/scripts/postpack.ts new file mode 100755 index 000000000..b1e8eece8 --- /dev/null +++ b/configuration/vite-config/src/scripts/postpack.ts @@ -0,0 +1,25 @@ +#!/usr/bin/env -S npx tsx +import fse from 'fs-extra'; +import { listRegisteredPackages } from '../packageRegistry'; + +function postpack() { + revertReferencesToCopiedProtectedPackages(); +} + +function revertReferencesToCopiedProtectedPackages() { + const packageJsonPath = './package.json'; + const packageJson = fse.readJSONSync(packageJsonPath); + const protectedPackageNames = listRegisteredPackages({ + filter: { scope: 'protected' }, + }).map((protectedPackage) => protectedPackage.name); + + protectedPackageNames.forEach((packageName) => { + if (packageJson.dependencies?.[packageName]) { + packageJson.dependencies[packageName] = '*'; + } + }); + + fse.writeJSONSync(packageJsonPath, packageJson, { spaces: 2 }); +} + +postpack(); diff --git a/configuration/vite-config/src/scripts/prepack.ts b/configuration/vite-config/src/scripts/prepack.ts new file mode 100755 index 000000000..362330e6c --- /dev/null +++ b/configuration/vite-config/src/scripts/prepack.ts @@ -0,0 +1,42 @@ +#!/usr/bin/env -S npx tsx +import fse from 'fs-extra'; +import { listRegisteredPackages } from '../packageRegistry'; +import { getShortName } from '../package'; +import type { PackageJson } from 'type-fest'; + +function prepack() { + referenceCopiedProtectedPackages(); +} + +/** + * @remarks + * + * Before we create a tarball of a package (i.e., run `npm pack`), if a package + * is consuming a protected package as a runtime dependency (i.e., in + * `dependencies` not `devDependencies`), we update the package's package.json + * file to reference the copied protected package with a file reference. When + * a consumer of the package runs `npm install`, the protected package will be + * installed using the copied files. + * + * This mutation of the package's package.json file is temporary and is + * reverted in ./postpack.ts. + */ +function referenceCopiedProtectedPackages() { + const packageJsonPath = './package.json'; + const packageJson = fse.readJSONSync(packageJsonPath) as PackageJson; + const protectedPackageNames = listRegisteredPackages({ + filter: { scope: 'protected' }, + }).map((protectedPackage) => protectedPackage.name); + + protectedPackageNames.forEach((packageName) => { + if (packageJson.dependencies?.[packageName]) { + packageJson.dependencies[packageName] = `file:./dist/${getShortName( + packageName + )}`; + } + }); + + fse.writeJSONSync(packageJsonPath, packageJson, { spaces: 2 }); +} + +prepack(); diff --git a/configuration/vite-config/tsconfig.json b/configuration/vite-config/tsconfig.json new file mode 100644 index 000000000..2ee437d64 --- /dev/null +++ b/configuration/vite-config/tsconfig.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@iot-app-kit/ts-config/tsconfig.base.json", + "include": ["src"] +} diff --git a/docs/DevEnv.md b/docs/DevEnv.md index 534b1bf39..261feb165 100644 --- a/docs/DevEnv.md +++ b/docs/DevEnv.md @@ -2,32 +2,20 @@ ### Useful commands -#### Run dev-env (no live packages) +#### Run dev-env (currently only supports the dashboard) ```sh -turbo dev --filter=@iot-app-kit/dev-env +npm start ``` -#### Run dev-env + live dashboard +#### Run react-components development env ```sh -turbo dev --filter=@iot-app-kit/dev-env --filter=@iot-app-kit/dashboard +npm start --workspace=@iot-app-kit/react-components ``` -#### Run dev-env + multiple live packages +#### Run scene-composer development env ```sh -turbo dev --filter=@iot-app-kit/dev-env --filter=@iot-app-kit/dashboard --filter=@iot-app-kit/react-components -``` - -#### Run react-components dev env (to be removed in favor of @iot-app-kit/dev-env) - -```sh -turbo dev:react-components --filter=@iot-app-kit/react-components -``` - -#### Run react-components dev env + live packages (to be removed in favor of @iot-app-kit/dev-env) - -```sh -turbo dev:react-components --filter=@iot-app-kit/react-components --filter=@iot-app-kit/source-iotsitewise +npm start --workspace=@iot-app-kit/scene-composer ``` diff --git a/examples/react-app/package.json b/examples/react-app/package.json index b1b261521..3953c5db9 100644 --- a/examples/react-app/package.json +++ b/examples/react-app/package.json @@ -22,8 +22,8 @@ "start": "vite", "build": "vite build", "serve": "vite preview", - "clean": "rimraf dist .turbo", - "clean:nuke": "rimraf dist .turbo node_modules" + "clean": "npx rimraf dist .turbo", + "clean:nuke": "npx rimraf dist .turbo node_modules" }, "eslintConfig": { "extends": [ diff --git a/package-lock.json b/package-lock.json index 4fbd57c1e..9c021c2e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,10 +18,9 @@ "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@playwright/test": "^1.48.2", - "husky": "^8.0.3", "rimraf": "^5.0.1", - "stylelint": "14.16.1", - "stylelint-config-standard": "25.0.0", + "stylelint": "^16.11.0", + "stylelint-config-standard": "^36.0.1", "turbo": "^2.2.3" }, "engines": { @@ -31,6 +30,7 @@ }, "apps/dev-env": { "name": "@iot-app-kit/dev-env", + "version": "12.2.1", "dependencies": { "@aws-sdk/client-iot-events": "^3.354.0", "@aws-sdk/client-iotsitewise": "^3.696.0", @@ -40,7 +40,9 @@ "@iot-app-kit/core-util": "*", "@iot-app-kit/dashboard": "*", "@iot-app-kit/data-mocked": "*", + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/helpers": "*", + "@iot-app-kit/react-components": "*", "@iot-app-kit/ts-config": "*", "@playwright/test": "^1.48.2", "@storybook/addon-essentials": "^8.4.5", @@ -52,7 +54,6 @@ "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@vitejs/plugin-react": "^4.3.3", - "eslint-config-iot-app-kit": "*", "lodash-es": "^4.17.21", "msw-storybook-addon": "^2.0.4", "react": "^18.2.0", @@ -73,7 +74,8 @@ "@iot-app-kit/react-components": "12.2.1" }, "devDependencies": { - "@iot-app-kit/testing-util": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/testing-util": "*", "@storybook/addon-essentials": "^8.4.5", "@storybook/addon-interactions": "^8.4.5", "@storybook/addon-links": "^8.4.5", @@ -84,7 +86,6 @@ "@storybook/theming": "^8.4.5", "@types/node": "^18.16.18", "@vitejs/plugin-react": "^4.3.3", - "eslint-config-iot-app-kit": "12.2.1", "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -95,7 +96,7 @@ } }, "configuration/eslint-config": { - "name": "eslint-config-iot-app-kit", + "name": "@iot-app-kit/eslint-config", "version": "12.2.1", "dependencies": { "@typescript-eslint/eslint-plugin": "^5.60.0", @@ -131,6 +132,43 @@ "typescript": "^5.5.4" } }, + "configuration/vite-config": { + "name": "@iot-app-kit/vite-config", + "version": "12.2.1", + "dependencies": { + "fs-extra": "^11.2.0", + "lodash-es": "^4.17.21", + "rollup-plugin-copy": "^3.5.0", + "tiny-invariant": "^1.3.1", + "type-fest": "^4.28.1", + "typescript": "^5.5.4", + "vite": "^5.4.11", + "vite-plugin-dts": "^4.3.0" + }, + "bin": { + "iot-postpack": "src/scripts/postpack.ts", + "iot-prepack": "src/scripts/prepack.ts" + }, + "devDependencies": { + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@types/fs-extra": "^11.0.4", + "@types/node": "^18.16.18", + "rimraf": "^5.0.1" + } + }, + "configuration/vite-config/node_modules/type-fest": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", + "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "examples/react-app": { "version": "0.1.0", "dependencies": { @@ -7921,6 +7959,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz", "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==", + "dev": true, "license": "ISC", "dependencies": { "cookie": "^0.7.2" @@ -7930,6 +7969,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, "license": "ISC", "dependencies": { "statuses": "^2.0.1" @@ -7939,6 +7979,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz", "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==", + "dev": true, "license": "ISC", "dependencies": { "@types/tough-cookie": "^4.0.5", @@ -7949,6 +7990,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", @@ -7964,6 +8006,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -8385,21 +8428,94 @@ "node": ">=v18" } }, - "node_modules/@csstools/selector-specificity": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", - "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", "dev": true, - "license": "CC0-1.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": "^14 || ^16 || >=18" + "node": ">=18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/csstools" + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" }, "peerDependencies": { - "postcss-selector-parser": "^6.0.10" + "postcss-selector-parser": "^7.0.0" } }, "node_modules/@dnd-kit/accessibility": { @@ -8455,6 +8571,17 @@ "react": ">=16.8.0" } }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/@emotion/is-prop-valid": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", @@ -8509,9 +8636,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], @@ -8521,13 +8648,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], @@ -8537,13 +8664,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], @@ -8553,13 +8680,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], @@ -8569,13 +8696,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], @@ -8585,13 +8712,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], @@ -8601,13 +8728,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], @@ -8617,13 +8744,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], @@ -8633,13 +8760,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], @@ -8649,13 +8776,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], @@ -8665,13 +8792,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], @@ -8681,13 +8808,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], @@ -8697,13 +8824,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], @@ -8713,13 +8840,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], @@ -8729,13 +8856,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], @@ -8745,13 +8872,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], @@ -8761,13 +8888,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], @@ -8777,13 +8904,29 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", "cpu": [ "x64" ], @@ -8793,13 +8936,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], @@ -8809,13 +8952,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], @@ -8825,13 +8968,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], @@ -8841,13 +8984,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], @@ -8857,7 +9000,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -8994,6 +9137,7 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.4.1.tgz", "integrity": "sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -9459,6 +9603,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/core": "^10.1.0", @@ -9475,6 +9620,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.0.tgz", "integrity": "sha512-I+ETk2AL+yAVbvuKx5AJpQmoaWhpiTFOg/UJb7ZkMAK4blmtG8ATh5ct+T/8xNld0CZG/2UhtkdMwpgvld92XQ==", + "dev": true, "license": "MIT", "dependencies": { "@inquirer/figures": "^1.0.8", @@ -9495,6 +9641,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -9510,12 +9657,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "license": "MIT" }, "node_modules/@inquirer/core/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -9530,6 +9679,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -9544,6 +9694,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -9553,6 +9704,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -9899,6 +10051,10 @@ "resolved": "apps/doc-site", "link": true }, + "node_modules/@iot-app-kit/eslint-config": { + "resolved": "configuration/eslint-config", + "link": true + }, "node_modules/@iot-app-kit/helpers": { "resolved": "packages/helpers", "link": true @@ -10046,6 +10202,10 @@ "resolved": "configuration/ts-config", "link": true }, + "node_modules/@iot-app-kit/vite-config": { + "resolved": "configuration/vite-config", + "link": true + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -10308,10 +10468,148 @@ "react": ">=16" } }, + "node_modules/@microsoft/api-extractor": { + "version": "7.48.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.48.0.tgz", + "integrity": "sha512-FMFgPjoilMUWeZXqYRlJ3gCVRhB7WU/HN88n8OLqEsmsG4zBdX/KQdtJfhq95LQTQ++zfu0Em1LLb73NqRCLYQ==", + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor-model": "7.30.0", + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.10.0", + "@rushstack/rig-package": "0.5.3", + "@rushstack/terminal": "0.14.3", + "@rushstack/ts-command-line": "4.23.1", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.4.2" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.0.tgz", + "integrity": "sha512-26/LJZBrsWDKAkOWRiQbdVgcfd1F3nyJnAiJzsAgpouPk7LtOIj7PK9aJtBaw/pUXrkotEg27RrT+Jm/q0bbug==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "~0.15.1", + "@microsoft/tsdoc-config": "~0.17.1", + "@rushstack/node-core-library": "5.10.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", + "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", + "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.15.1", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/@mswjs/interceptors": { "version": "0.37.1", "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.37.1.tgz", "integrity": "sha512-SvE+tSpcX884RJrPCskXxoS965Ky/pYABDEhWW6oeSRhpUDLrS5nTvT5n1LLSDVDYvty4imVmXsy+3/ROVuknA==", + "dev": true, "license": "MIT", "dependencies": { "@open-draft/deferred-promise": "^2.2.0", @@ -10374,12 +10672,14 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true, "license": "MIT" }, "node_modules/@open-draft/logger": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, "license": "MIT", "dependencies": { "is-node-process": "^1.2.0", @@ -10390,6 +10690,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true, "license": "MIT" }, "node_modules/@parcel/watcher": { @@ -12707,6 +13008,175 @@ "win32" ] }, + "node_modules/@rushstack/node-core-library": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.0.tgz", + "integrity": "sha512-2pPLCuS/3x7DCd7liZkqOewGM0OzLyCacdvOe8j6Yrx9LkETGnxul1t7603bIaB8nUAooORcct9fFDOQMbWAgw==", + "license": "MIT", + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", + "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "license": "MIT", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.3.tgz", + "integrity": "sha512-csXbZsAdab/v8DbU1sz7WC2aNaKArcdS/FPmXMOXEj/JBBZMvDK0+1b4Qao0kkG0ciB1Qe86/Mb68GjH6/TnMw==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.10.0", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.1.tgz", + "integrity": "sha512-40jTmYoiu/xlIpkkRsVfENtBq4CW3R4azbL0Vmda+fMwHWqss6wwf/Cy/UJmMqIzpfYc2OTnjYP1ZLD3CmyeCA==", + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.14.3", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -15295,23 +15765,6 @@ } } }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/plugin-formatjs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@swc/plugin-formatjs/-/plugin-formatjs-1.0.1.tgz", - "integrity": "sha512-y6FOwzWcq/HxMSBEj3HWxa77qW2vg0JqHo5jSxjacb98yQmioP3AWq+9j3uTUseyxxLsNNWRAv/G0HYmXKk7Cw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, "node_modules/@synchro-charts/core": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@synchro-charts/core/-/core-7.2.0.tgz", @@ -15973,6 +16426,12 @@ "integrity": "sha512-SYUe1UgY5HM05EB4+0B4arq2IPjvyzKXoklXKxSYrc2IFxGm1cBrqg5XbiB5uwbs0xY5j+rj986NAJMM0KZaUw==", "license": "MIT" }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "license": "MIT" + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -16099,6 +16558,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, "license": "MIT" }, "node_modules/@types/cytoscape": { @@ -16492,6 +16952,17 @@ "@types/send": "*" } }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, "node_modules/@types/geojson": { "version": "7946.0.14", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", @@ -16572,6 +17043,16 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "license": "MIT" }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/loader-utils": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@types/loader-utils/-/loader-utils-1.1.9.tgz", @@ -16685,13 +17166,6 @@ "@types/node": "*" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/picomatch": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-2.3.4.tgz", @@ -16845,6 +17319,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", + "dev": true, "license": "MIT" }, "node_modules/@types/styled-components": { @@ -16880,6 +17355,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, "license": "MIT" }, "node_modules/@types/trusted-types": { @@ -17753,6 +18229,101 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@volar/language-core": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.10.tgz", + "integrity": "sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==", + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.10" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.10.tgz", + "integrity": "sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==", + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.10.tgz", + "integrity": "sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.10", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz", + "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.1", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" + }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -17857,24 +18428,10 @@ "npm": ">=5" } }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -17887,6 +18444,37 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/animate.css": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", @@ -17897,6 +18485,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.21.3" @@ -17912,6 +18501,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" @@ -18233,13 +18823,6 @@ "node": ">=8" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -18950,34 +19533,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/camelize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", @@ -19380,6 +19935,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, "license": "ISC", "engines": { "node": ">= 12" @@ -19508,18 +20064,11 @@ "dev": true, "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "license": "MIT" }, "node_modules/comma-separated-tokens": { "version": "2.0.3", @@ -19541,16 +20090,6 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -19562,12 +20101,30 @@ "dot-prop": "^5.1.0" } }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "license": "MIT" + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -19642,6 +20199,7 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -20008,46 +20566,6 @@ "hyphenate-style-name": "^1.0.3" } }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/css-selector-tokenizer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz", @@ -20156,19 +20674,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/cssstyle": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.1.0.tgz", - "integrity": "sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==", - "dev": true, - "license": "MIT", - "dependencies": { - "rrweb-cssom": "^0.7.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -20537,30 +21042,6 @@ "node": ">=4" } }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -20643,6 +21124,12 @@ "date-fns": "2.x" } }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "license": "MIT" + }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -20703,13 +21190,6 @@ "node": ">=0.10.0" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true, - "license": "MIT" - }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -20817,16 +21297,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -20941,13 +21411,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, "node_modules/dnd-core": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", @@ -21179,7 +21642,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -21358,40 +21820,42 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "hasInstallScript": true, "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/esbuild-register": { @@ -21406,6 +21870,22 @@ "esbuild": ">=0.12 <1" } }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -21556,10 +22036,6 @@ "eslint-plugin-import": "^2.22.1" } }, - "node_modules/eslint-config-iot-app-kit": { - "resolved": "configuration/eslint-config", - "link": true - }, "node_modules/eslint-config-prettier": { "version": "8.8.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", @@ -22772,7 +23248,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { @@ -23034,21 +23509,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", - "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -23107,6 +23567,20 @@ "dev": true, "license": "MIT" }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -23479,7 +23953,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -23492,6 +23965,7 @@ "version": "16.9.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "dev": true, "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -23537,29 +24011,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -23734,10 +24185,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, "node_modules/headers-polyfill": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "dev": true, "license": "MIT" }, "node_modules/hmac-drbg": { @@ -23768,19 +24229,6 @@ "dev": true, "license": "ISC" }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -23811,20 +24259,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -23832,36 +24266,6 @@ "dev": true, "license": "MIT" }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, "node_modules/hyphenate-style-name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", @@ -23881,19 +24285,6 @@ "node": ">=0.10.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", @@ -23994,7 +24385,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -24660,13 +25050,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -25107,6 +25490,12 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "license": "MIT" + }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -25140,57 +25529,6 @@ "node": ">=12.0.0" } }, - "node_modules/jsdom": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", - "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssstyle": "^4.1.0", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.5", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.12", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.7.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.18.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^2.11.2" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -25227,7 +25565,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify": { @@ -25270,7 +25607,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -25372,12 +25708,18 @@ } }, "node_modules/known-css-properties": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", - "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", "dev": true, "license": "MIT" }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, "node_modules/ktx-parse": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.4.5.tgz", @@ -25490,6 +25832,22 @@ "node": ">= 12.13.0" } }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", @@ -25731,101 +26089,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loglevel-colored-level-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", - "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^1.1.3", - "loglevel": "^1.4.1" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -27018,29 +27281,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -27173,6 +27413,18 @@ "dev": true, "license": "MIT" }, + "node_modules/mlly": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", + "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^1.1.2", + "pkg-types": "^1.2.1", + "ufo": "^1.5.4" + } + }, "node_modules/mmd-parser": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz", @@ -27235,6 +27487,7 @@ "version": "2.6.6", "resolved": "https://registry.npmjs.org/msw/-/msw-2.6.6.tgz", "integrity": "sha512-npfIIVRHKQX3Lw4aLWX4wBh+lQwpqdZNyJYB5K/+ktK8NhtkdsTxGK7WDrgknozcVyRI7TOqY6yBS9j2FTR+YQ==", + "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -27291,6 +27544,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -27306,6 +27560,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -27322,6 +27577,7 @@ "version": "4.27.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.27.0.tgz", "integrity": "sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==", + "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" @@ -27330,6 +27586,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, "node_modules/multistream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/multistream/-/multistream-4.1.0.tgz", @@ -27374,6 +27636,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, "license": "ISC", "engines": { "node": "^18.17.0 || >=20.5.0" @@ -27396,20 +27659,6 @@ "npm": ">=5" } }, - "node_modules/mylas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/raouldeheer" - } - }, "node_modules/nano-css": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.2.tgz", @@ -28102,13 +28351,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", - "dev": true, - "license": "MIT" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -28340,6 +28582,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "dev": true, "license": "MIT" }, "node_modules/p-is-promise": { @@ -28384,16 +28627,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -28615,6 +28848,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, "license": "MIT" }, "node_modules/path-type": { @@ -28630,7 +28864,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true, "license": "MIT" }, "node_modules/pathval": { @@ -29037,6 +29270,17 @@ "node": ">=10" } }, + "node_modules/pkg-types": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", + "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.2", + "pathe": "^1.1.2" + } + }, "node_modules/pkg/node_modules/@babel/generator": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", @@ -29199,19 +29443,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/plimit-lit": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz", - "integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "queue-lit": "^1.5.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/polished": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", @@ -29282,76 +29513,6 @@ "postcss": "^8.0.0" } }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", - "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", @@ -29360,20 +29521,30 @@ "license": "MIT" }, "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=18.0" }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { @@ -29466,214 +29637,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-eslint": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.3.0.tgz", - "integrity": "sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/parser": "^6.7.5", - "common-tags": "^1.4.0", - "dlv": "^1.1.0", - "eslint": "^8.7.0", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.0", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^3.0.1", - "pretty-format": "^29.7.0", - "require-relative": "^0.8.7", - "typescript": "^5.2.2", - "vue-eslint-parser": "^9.1.0" - }, - "engines": { - "node": ">=16.10.0" - }, - "peerDependencies": { - "prettier-plugin-svelte": "^3.0.0", - "svelte-eslint-parser": "*" - }, - "peerDependenciesMeta": { - "prettier-plugin-svelte": { - "optional": true - }, - "svelte-eslint-parser": { - "optional": true - } - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prettier-eslint/node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-eslint/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/prettier-eslint/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/prettier-eslint/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", @@ -29782,6 +29745,7 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.13.0.tgz", "integrity": "sha512-BFwmFXiJoFqlUpZ5Qssolv15DMyc84gTBds1BjsV1BfXEo1UyyD7GsmN67n7J77uRhoSNW1AXtXKPLcBFQn9Aw==", + "dev": true, "license": "MIT", "dependencies": { "punycode": "^2.3.1" @@ -29865,17 +29829,8 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "license": "MIT" - }, - "node_modules/queue-lit": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz", - "integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -29897,16 +29852,6 @@ ], "license": "MIT" }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/ramda": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", @@ -30698,126 +30643,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/read-pkg/node_modules/path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -31246,17 +31071,11 @@ "node": ">=0.10.0" } }, - "node_modules/require-relative": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", - "dev": true, - "license": "MIT" - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, "license": "MIT" }, "node_modules/reselect": { @@ -31405,6 +31224,134 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-copy": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz", + "integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==", + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^8.0.1", + "colorette": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "10.0.1", + "is-plain-object": "^3.0.0" + }, + "engines": { + "node": ">=8.3" + } + }, + "node_modules/rollup-plugin-copy/node_modules/@types/fs-extra": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", + "integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/rollup-plugin-copy/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rollup-plugin-copy/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/rollup-plugin-copy/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup-plugin-copy/node_modules/globby": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-copy/node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup-plugin-copy/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/rollup-plugin-copy/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup-plugin-copy/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/rollup-plugin-inject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", @@ -31448,13 +31395,6 @@ "estree-walker": "^0.6.1" } }, - "node_modules/rrweb-cssom": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", - "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", - "dev": true, - "license": "MIT" - }, "node_modules/rtl-css-js": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", @@ -31677,19 +31617,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, "node_modules/scheduler": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", @@ -32186,6 +32113,12 @@ "node": ">= 10.x" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, "node_modules/stack-generator": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", @@ -32248,6 +32181,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -32465,6 +32399,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true, "license": "MIT" }, "node_modules/string_decoder": { @@ -32477,6 +32412,15 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-to-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", @@ -32754,13 +32698,6 @@ "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", "license": "MIT" }, - "node_modules/style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true, - "license": "ISC" - }, "node_modules/style-to-object": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", @@ -32822,83 +32759,115 @@ } }, "node_modules/stylelint": { - "version": "14.16.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", - "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.11.0.tgz", + "integrity": "sha512-zrl4IrKmjJQ+h9FoMp69UMCq5SxeHk0URhxUBj4d3ISzo/DplOFBJZc7t7Dr6otB+1bfbbKNLOmCDpzKSlW+Nw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "license": "MIT", "dependencies": { - "@csstools/selector-specificity": "^2.0.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^7.1.0", - "css-functions-list": "^3.1.0", - "debug": "^4.3.4", - "fast-glob": "^3.2.12", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.0.1", + "debug": "^4.3.7", + "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^9.1.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", - "html-tags": "^3.2.0", - "ignore": "^5.2.1", - "import-lazy": "^4.0.0", + "html-tags": "^3.3.1", + "ignore": "^6.0.2", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.26.0", + "known-css-properties": "^0.35.0", "mathml-tag-names": "^2.1.3", - "meow": "^9.0.0", - "micromatch": "^4.0.5", + "meow": "^13.2.0", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.19", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "picocolors": "^1.1.1", + "postcss": "^8.4.49", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", - "supports-hyperlinks": "^2.3.0", + "supports-hyperlinks": "^3.1.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", - "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^4.0.2" + "table": "^6.8.2", + "write-file-atomic": "^5.0.1" }, "bin": { - "stylelint": "bin/stylelint.js" + "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" + "node": ">=18.12.0" } }, "node_modules/stylelint-config-recommended": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", - "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", + "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, "peerDependencies": { - "stylelint": "^14.4.0" + "stylelint": "^16.1.0" } }, "node_modules/stylelint-config-standard": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", - "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "version": "36.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-36.0.1.tgz", + "integrity": "sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "license": "MIT", "dependencies": { - "stylelint-config-recommended": "^7.0.0" + "stylelint-config-recommended": "^14.0.1" + }, + "engines": { + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^14.4.0" + "stylelint": "^16.1.0" } }, "node_modules/stylelint/node_modules/balanced-match": { @@ -32908,21 +32877,18 @@ "dev": true, "license": "MIT" }, - "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/stylelint/node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", "dev": true, "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=10" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/stylelint/node_modules/emoji-regex": { @@ -32932,100 +32898,61 @@ "dev": true, "license": "MIT" }, - "node_modules/stylelint/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" + "flat-cache": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/stylelint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/stylelint/node_modules/flat-cache": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "flatted": "^3.3.1", + "keyv": "^4.5.4" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/stylelint/node_modules/meow": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", - "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "node_modules/stylelint/node_modules/ignore": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", + "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize": "^1.2.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4" } }, - "node_modules/stylelint/node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "node_modules/stylelint/node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } + "license": "CC0-1.0" }, - "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "node_modules/stylelint/node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=18" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stylelint/node_modules/string-width": { @@ -33043,36 +32970,6 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/stylis": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", @@ -33092,9 +32989,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz", + "integrity": "sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==", "dev": true, "license": "MIT", "dependencies": { @@ -33102,7 +32999,10 @@ "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -33782,13 +33682,6 @@ "dev": true, "license": "CC0-1.0" }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, "node_modules/synchronous-promise": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", @@ -34170,26 +34063,6 @@ "popper.js": "^1.16.0" } }, - "node_modules/tldts": { - "version": "6.1.63", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.63.tgz", - "integrity": "sha512-YWwhsjyn9sB/1rOkSRYxvkN/wl5LFM1QDv6F2pVR+pb/jFne4EOBxHfkKVWvDIBEAw9iGOwwubHtQTm0WRT5sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.63" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.63", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.63.tgz", - "integrity": "sha512-H1XCt54xY+QPbwhTgmxLkepX0MVHu3USfMmejiCOdkMbRcP22Pn2FVF127r/GWXVDmXTRezyF3Ckvhn4Fs6j7Q==", - "dev": true, - "license": "MIT" - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -34228,32 +34101,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tough-cookie": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", - "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -34264,16 +34111,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/troika-three-text": { "version": "0.47.2", "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.2.tgz", @@ -34494,24 +34331,6 @@ "node": ">=4.2.0" } }, - "node_modules/tsc-alias": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.10.tgz", - "integrity": "sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - }, - "bin": { - "tsc-alias": "dist/bin/index.js" - } - }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -34602,6 +34421,26 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, + "node_modules/tsx": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz", + "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.23.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -34845,6 +34684,12 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -35056,7 +34901,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -35142,6 +34986,7 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, "license": "MIT", "dependencies": { "querystringify": "^2.1.1", @@ -35311,13 +35156,6 @@ "node": ">=6" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true, - "license": "MIT" - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -35501,6 +35339,75 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-plugin-dts": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.3.0.tgz", + "integrity": "sha512-LkBJh9IbLwL6/rxh0C1/bOurDrIEmRE7joC+jFdOEEciAFPbpEKOLSAr5nNh5R7CJ45cMbksTrFfy52szzC5eA==", + "license": "MIT", + "dependencies": { + "@microsoft/api-extractor": "^7.47.11", + "@rollup/pluginutils": "^5.1.0", + "@volar/typescript": "^2.4.4", + "@vue/language-core": "2.1.6", + "compare-versions": "^6.1.1", + "debug": "^4.3.6", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.11" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite-plugin-dts/node_modules/@rollup/pluginutils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/vite-plugin-dts/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/vite-plugin-dts/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/vite-plugin-node-polyfills": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz", @@ -36023,56 +35930,11 @@ "dev": true, "license": "MIT" }, - "node_modules/vue-eslint-parser": { - "version": "9.4.3", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", - "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "license": "MIT" }, "node_modules/warning": { "version": "4.0.3", @@ -36145,20 +36007,6 @@ "node": ">=12" } }, - "node_modules/whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -36395,26 +36243,19 @@ "license": "ISC" }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -36436,23 +36277,6 @@ } } }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -36478,16 +36302,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "license": "ISC" }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -36552,6 +36366,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -36629,6 +36444,7 @@ "version": "12.2.1", "license": "Apache-2.0", "dependencies": { + "@iot-app-kit/helpers": "*", "d3-array": "^3.2.4", "intervals-fn": "^3.0.3", "parse-duration": "^1.0.3", @@ -36637,15 +36453,17 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/d3-array": "^3.0.5", "@types/node": "^18.16.18", "@types/uuid": "^9.0.2", "@vitest/coverage-v8": "^2.1.5", - "eslint-config-iot-app-kit": "12.2.1", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", + "tsx": "^4.19.2", "typescript": "^5.5.4", "vite": "^5.4.11", "vitest": "^2.1.5" @@ -36659,19 +36477,20 @@ "version": "12.2.1", "license": "Apache-2.0", "dependencies": { - "@iot-app-kit/core": "12.2.1", + "@iot-app-kit/core": "*", "lodash-es": "^4.17.21", "pako": "^2.1.0", "zustand": "^4.5.2" }, "devDependencies": { "@aws-sdk/types": "^3.696.0", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@types/pako": "^2.0.3", "@vitest/coverage-v8": "^2.1.5", - "eslint-config-iot-app-kit": "12.2.1", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", "typescript": "^5.5.4", @@ -36728,10 +36547,10 @@ "@cloudscape-design/components": "3.0.693", "@cloudscape-design/design-tokens": "3.0.42", "@cloudscape-design/global-styles": "1.0.32", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/core-util": "12.2.1", - "@iot-app-kit/react-components": "12.2.1", - "@iot-app-kit/source-iotsitewise": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/core-util": "*", + "@iot-app-kit/react-components": "*", + "@iot-app-kit/source-iotsitewise": "*", "@popperjs/core": "^2.11.8", "@reduxjs/toolkit": "^1.9.5", "@tanstack/react-query": "^5.40.1", @@ -36759,8 +36578,10 @@ }, "devDependencies": { "@iot-app-kit/data-mocked": "*", - "@iot-app-kit/testing-util": "12.2.1", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/testing-util": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@tanstack/eslint-plugin-query": "^5.40.1", "@tanstack/react-query-devtools": "^5.40.1", "@testing-library/jest-dom": "^6.6.3", @@ -36776,16 +36597,13 @@ "@vitejs/plugin-react": "^4.3.3", "@vitest/coverage-v8": "^2.1.5", "copyfiles": "^2.4.1", - "css-loader": "6.8.1", "dotenv": "^16.3.1", - "eslint-config-iot-app-kit": "12.2.1", "eslint-plugin-jsx-a11y": "^6.8.0", "jest-extended": "^3.2.4", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "^5.0.1", "sass": "1.63.6", - "tsc-alias": "^1.8.10", "tslib": "^2.5.3", "type-fest": "^4.28.1", "typescript": "^5.5.4", @@ -36941,12 +36759,13 @@ }, "packages/data-mocked": { "name": "@iot-app-kit/data-mocked", - "dependencies": { + "version": "12.2.1", + "devDependencies": { "@aws-sdk/client-iotsitewise": "^3.696.0", "@faker-js/faker": "^8.2.0", + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/ts-config": "*", "@types/node": "^18.16.18", - "eslint-config-iot-app-kit": "*", "msw": "^2.6.2", "rimraf": "^5.0.1", "typescript": "^5.5.4", @@ -36955,11 +36774,15 @@ }, "packages/helpers": { "name": "@iot-app-kit/helpers", - "dependencies": { + "version": "12.2.1", + "devDependencies": { + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/ts-config": "*", - "eslint-config-iot-app-kit": "*", + "@iot-app-kit/vite-config": "*", "rimraf": "^5.0.1", - "typescript": "^5.5.4" + "tsx": "^4.19.2", + "typescript": "^5.5.4", + "vite": "^5.4.11" } }, "packages/react-components": { @@ -36974,9 +36797,10 @@ "@cloudscape-design/global-styles": "1.0.32", "@iot-app-kit/charts": "^2.1.2", "@iot-app-kit/charts-core": "^2.1.2", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/core-util": "12.2.1", - "@iot-app-kit/source-iottwinmaker": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/core-util": "*", + "@iot-app-kit/source-iotsitewise": "*", + "@iot-app-kit/source-iottwinmaker": "*", "@tanstack/react-query": "^5.32.1", "autosize": "^6.0.1", "color": "^4.2.3", @@ -37007,10 +36831,12 @@ "zustand": "^4.5.2" }, "devDependencies": { - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/source-iotsitewise": "12.2.1", - "@iot-app-kit/testing-util": "12.2.1", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/helpers": "*", + "@iot-app-kit/testing-util": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@playwright/test": "^1.48.2", "@storybook/addon-essentials": "^8.4.5", "@storybook/addon-links": "^8.4.5", @@ -37043,7 +36869,6 @@ "babel-plugin-formatjs": "10.5.3", "copyfiles": "^2.4.1", "cytoscape": "^3.25.0", - "eslint-config-iot-app-kit": "12.2.1", "eslint-plugin-jsx-a11y": "^6.8.0", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", @@ -37228,9 +37053,9 @@ "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/react-components": "12.2.1", - "@iot-app-kit/source-iottwinmaker": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/react-components": "*", + "@iot-app-kit/source-iottwinmaker": "*", "@matterport/r3f": "0.2.7", "@matterport/webcomponent": "0.1.35", "@react-three/drei": "9.56.27", @@ -37278,7 +37103,10 @@ "@cloudscape-design/design-tokens": "^3.0.35", "@cloudscape-design/global-styles": "^1.0.25", "@formatjs/cli": "^6.3.8", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/helpers": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@playwright/test": "^1.48.2", "@react-spring/three": "^9.7.2", "@storybook/addon-essentials": "^8.4.5", @@ -37288,7 +37116,6 @@ "@storybook/react-vite": "^8.4.5", "@storybook/test": "^8.4.5", "@svgr/cli": "^8.1.0", - "@swc/plugin-formatjs": "^1.0.1", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", @@ -37304,16 +37131,10 @@ "@vitest/coverage-v8": "^2.1.5", "babel-plugin-formatjs": "10.5.3", "copyfiles": "^2.4.1", - "eslint-config-iot-app-kit": "12.2.1", "happy-dom": "^15.11.6", - "husky": "8.0.3", "jest-extended": "^3.2.4", - "jsdom": "^25.0.1", - "nodemon": "^2.0.22", "npm-run-all": "^4.1.5", "postcss": "^8.4.31", - "prettier": "^2.8.8", - "prettier-eslint": "^16.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-intl": "^6.8.7", @@ -39020,8 +38841,8 @@ "version": "12.2.1", "license": "Apache-2.0", "dependencies": { - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/core-util": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/core-util": "*", "@synchro-charts/core": "7.2.0", "dataloader": "^2.2.2", "lodash-es": "^4.17.21", @@ -39029,12 +38850,13 @@ }, "devDependencies": { "@aws-sdk/types": "^3.696.0", - "@iot-app-kit/testing-util": "12.2.1", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/testing-util": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@vitest/coverage-v8": "^2.1.5", - "eslint-config-iot-app-kit": "12.2.1", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", @@ -39059,19 +38881,20 @@ "@aws-sdk/client-s3": "3.335.0", "@aws-sdk/client-secrets-manager": "3.353.0", "@aws-sdk/url-parser": "3.374.0", - "@iot-app-kit/core": "12.2.1", + "@iot-app-kit/core": "*", "@tanstack/query-core": "^4.29.15", "lodash-es": "^4.17.21", "rxjs": "^7.8.1" }, "devDependencies": { "@aws-sdk/types": "^3.696.0", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@vitest/coverage-v8": "^2.1.5", "aws-sdk-client-mock": "^1.0.0", - "eslint-config-iot-app-kit": "12.2.1", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", @@ -39948,16 +39771,14 @@ "name": "@iot-app-kit/testing-util", "version": "12.2.1", "license": "Apache-2.0", - "dependencies": { + "devDependencies": { "@aws-sdk/client-iot-events": "3.354.0", "@aws-sdk/client-iotsitewise": "3.696.0", - "@iot-app-kit/core": "12.2.1", - "parse-duration": "^1.1.0" - }, - "devDependencies": { - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", "@types/node": "^18.16.18", - "eslint-config-iot-app-kit": "12.2.1", + "parse-duration": "^1.1.0", "rimraf": "^5.0.1", "typescript": "^5.5.4" } @@ -39980,7 +39801,9 @@ "tmdt": "dist/cjs/cli.js" }, "devDependencies": { - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/node": "^18.16.18", "@types/prompts": "^2.4.4", "@types/yargs": "^17.0.24", diff --git a/package.json b/package.json index 84c6fe277..a1c3cceaf 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,10 @@ "node": ">=18.0.0", "npm": ">=10.7.0" }, + "volta": { + "node": "18.20.5", + "npm": "10.8.2" + }, "workspaces": [ "apps/*", "configuration/*", @@ -18,48 +22,35 @@ "packages/*" ], "scripts": { - "install-ws": "npm install --prefer-offline --no-audit --workspaces --include-workspace-root", - "bootstrap": "npm run install-ws && npm run build", - "start": "cd packages/components && npm start", - "build": "turbo run build", - "build:core": "turbo run build --filter=@iot-app-kit/core", - "build:core-util": "turbo run build --filter=@iot-app-kit/core-util", - "build:dashboard": "turbo run build --filter=@iot-app-kit/dashboard", - "build:doc-site": "turbo run build --filter=@iot-app-kit/doc-site", - "build:react-components": "turbo run build --filter=@iot-app-kit/react-components", - "build:scene-composer": "turbo run build --filter=@iot-app-kit/scene-composer", - "build:source-iotsitewise": "turbo run build --filter=@iot-app-kit/source-iotsitewise", - "build:source-iottwinmaker": "turbo run build --filter=@iot-app-kit/source-iottwinmaker", - "build:testing-util": "turbo run build --filter=@iot-app-kit/testing-util", - "build:tools-iottwinmaker": "turbo run build --filter=@iot-app-kit/tools-iottwinmaker", - "clean": "turbo run clean && rimraf .turbo", - "clean:nuke": "turbo run clean:nuke && rimraf .turbo node_modules", - "fix": "turbo run fix && npm run fix:stylelint", - "fix:stylelint": "stylelint '**/*.css' --fix", - "test": "turbo run test", - "test:ui": "turbo run test:ui", - "test:ui:update": "turbo run test:ui:update", - "test:ui:ci": "turbo run test:ui:ci", - "test:reliability": "turbo run test:ui:reliability", - "test:stylelint": "stylelint '**/*.css' --max-warnings 0", + "install-ws": "npm install --no-audit --workspaces --include-workspace-root", + "start": "npm run dev", + "dev": "turbo dev -F @iot-app-kit/dev-env", + "build": "turbo build", + "clean": "npx rimraf .turbo .vscode", + "clean:nuke": "npx rimraf .turbo node_modules", + "fix": "turbo fix && npm run fix:stylelint", + "fix:stylelint": "stylelint '**/*.css' --fix --ignore-path .gitignore", + "test": "turbo test", + "test:ui": "turbo test:ui", + "test:ui:update": "turbo test:ui:update", + "test:ui:ci": "turbo test:ui:ci", + "test:reliability": "turbo test:ui:reliability", + "test:stylelint": "stylelint '**/*.css' --max-warnings 0 --ignore-path .gitignore", "test:git": "git diff --exit-code", "release": "npm run build", - "pack": "turbo run pack", - "publish-packages": "npm run install-ws && turbo run build", - "versionup:patch": "turbo run version --no-git-tag-version patch", - "versionup:minor": "turbo run version --no-git-tag-version minor", - "versionup:major": "turbo run version --no-git-tag-version major", - "prepare": "husky install", - "test:ci": "if test \"$NODE_ENV\" = \"production\"; then echo \"Yes!\"; fi" + "pack": "turbo pack", + "publish-packages": "npm run install-ws && turbo build", + "versionup:patch": "turbo version --no-git-tag-version patch", + "versionup:minor": "turbo version --no-git-tag-version minor", + "versionup:major": "turbo version --no-git-tag-version major" }, "devDependencies": { "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@playwright/test": "^1.48.2", - "husky": "^8.0.3", "rimraf": "^5.0.1", - "stylelint": "14.16.1", - "stylelint-config-standard": "25.0.0", + "stylelint": "^16.11.0", + "stylelint-config-standard": "^36.0.1", "turbo": "^2.2.3" }, "npm-pretty-much": { @@ -73,9 +64,5 @@ "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", "fast-xml-parser": "^4.2.5" - }, - "volta": { - "node": "18.20.5", - "npm": "10.8.2" } } diff --git a/packages/core-util/.eslintrc.cjs b/packages/core-util/.eslintrc.cjs index 5b89c5273..236dba6b3 100644 --- a/packages/core-util/.eslintrc.cjs +++ b/packages/core-util/.eslintrc.cjs @@ -1,4 +1,19 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, - extends: ['iot-app-kit'], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['packages/core-util/tsconfig.json'], + }, + node: { + project: ['packages/core-util/tsconfig.json'], + }, + }, + }, }; diff --git a/packages/core-util/package.json b/packages/core-util/package.json index 50f173c7e..247283f11 100644 --- a/packages/core-util/package.json +++ b/packages/core-util/package.json @@ -1,57 +1,58 @@ { "name": "@iot-app-kit/core-util", + "version": "12.2.1", "license": "Apache-2.0", "publishConfig": { "access": "public" }, - "version": "12.2.1", + "files": [ + "dist" + ], "type": "module", - "main": "dist/cjs/index.js", + "main": "dist/cjs/index.cjs.js", "module": "dist/esm/index.js", "types": "dist/esm/index.d.ts", "exports": { ".": { - "types": "./dist/esm/index.d.ts", - "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", - "default": "./dist/esm/index.js" + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } } }, - "directories": { - "dist": "dist" - }, - "files": [ - "dist" - ], "scripts": { - "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json", - "build:cjs": "tsc -b ./tsconfig.cjs.json", - "build:es": "tsc -b ./tsconfig.esm.json", - "clean": "rimraf dist coverage .turbo .cache", - "clean:nuke": "npm run clean && rimraf node_modules", - "dev": "tsc -b ./tsconfig.esm.json --watch", - "dev:react-components": "npm run dev", + "build": "NODE_OPTIONS='--import tsx/esm' vite build", + "clean": "npx rimraf dist coverage .turbo .cache *.tgz", + "clean:nuke": "npm run clean && npx rimraf node_modules", "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/", "fix": "eslint --fix . --cache --cache-location .cache/eslint/", - "test": "TZ=UTC vitest run --coverage", - "test:watch": "TZ=UTC vitest", + "test": "NODE_OPTIONS='--import tsx/esm' TZ=UTC vitest run", + "test:watch": "NODE_OPTIONS='--import tsx/esm' TZ=UTC vitest", "test:typescript": "tsc --noEmit", - "pack": "npm pack" + "copy:license": "cp ../../LICENSE LICENSE", + "copy:notice": "cp ../../NOTICE NOTICE", + "prepack": "npm run copy:license && npm run copy:notice && iot-prepack", + "pack": "npm pack", + "postpack": "iot-postpack" }, "dependencies": { - "@iot-app-kit/core": "12.2.1", + "@iot-app-kit/core": "*", "lodash-es": "^4.17.21", "pako": "^2.1.0", "zustand": "^4.5.2" }, "devDependencies": { "@aws-sdk/types": "^3.696.0", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/lodash-es": "^4.17.12", "@types/node": "^18.16.18", "@types/pako": "^2.0.3", "@vitest/coverage-v8": "^2.1.5", - "eslint-config-iot-app-kit": "12.2.1", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", "typescript": "^5.5.4", @@ -61,5 +62,8 @@ "peerDependencies": { "@aws-sdk/client-iot-events": "^3.354.0", "@aws-sdk/client-iotsitewise": "^3.696.0" + }, + "iotAppKit": { + "scope": "public" } } diff --git a/packages/core-util/src/index.ts b/packages/core-util/src/index.ts index fce4b7d62..3a498115a 100644 --- a/packages/core-util/src/index.ts +++ b/packages/core-util/src/index.ts @@ -1,14 +1,13 @@ -export { getSiteWiseClient } from './sdks/sitewise'; -export { getIotEventsClient } from './sdks/events'; -export { colorPalette } from './sdks/colorPalette'; -export { round } from './sdks/number'; -export { isNumeric } from './sdks/number'; export { Colorizer } from './sdks/colorizer'; +export { colorPalette } from './sdks/colorPalette'; +export { getIotEventsClient } from './sdks/events'; +export * from './sdks/IotSitewiseAssistant'; +export { isNumeric, round } from './sdks/number'; +export { rangeValidator } from './sdks/rangeValidator'; +export { getSiteWiseClient } from './sdks/sitewise'; export { - viewportToDateRange, - relativeViewportOptions, dateRangeToViewport, getViewportDateRelativeToAbsolute, + relativeViewportOptions, + viewportToDateRange, } from './sdks/viewportAdapters'; -export { rangeValidator } from './sdks/rangeValidator'; -export * from './sdks/IotSitewiseAssistant'; diff --git a/packages/core-util/tsconfig.cjs.json b/packages/core-util/tsconfig.cjs.json deleted file mode 100644 index a9a853bd9..000000000 --- a/packages/core-util/tsconfig.cjs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.cjs.json", - "include": ["src"], - "exclude": ["./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/cjs", - "tsBuildInfoFile": "./dist/cjs/.tsbuildinfo" - } -} diff --git a/packages/core-util/tsconfig.esm.json b/packages/core-util/tsconfig.esm.json deleted file mode 100644 index 2675f98ab..000000000 --- a/packages/core-util/tsconfig.esm.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.esm.json", - "include": ["src"], - "exclude": ["./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/esm", - "tsBuildInfoFile": "./dist/esm/.tsbuildinfo" - } -} diff --git a/packages/core-util/tsconfig.json b/packages/core-util/tsconfig.json index 0d54de403..ca1e38efd 100644 --- a/packages/core-util/tsconfig.json +++ b/packages/core-util/tsconfig.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/tsconfig", "extends": "@iot-app-kit/ts-config/tsconfig.base.json", - "include": ["src", "vitest.config.ts"], + "include": ["src", "vite.config.ts"], "compilerOptions": { "types": ["vitest/globals", "jest-extended"] } diff --git a/packages/core-util/vite.config.ts b/packages/core-util/vite.config.ts new file mode 100644 index 000000000..0850d4c73 --- /dev/null +++ b/packages/core-util/vite.config.ts @@ -0,0 +1,7 @@ +import { definePackageConfig } from '@iot-app-kit/vite-config/definePackageConfig'; + +export default definePackageConfig({ + iotAppKitPackage: { + dirname: __dirname, + }, +}); diff --git a/packages/core-util/vitest.config.ts b/packages/core-util/vitest.config.ts deleted file mode 100644 index b44319c24..000000000 --- a/packages/core-util/vitest.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -// https://vitejs.dev/config/ -export default defineConfig({ - test: { - pool: 'threads', - include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], - globals: true, - css: false, - environment: 'happy-dom', - setupFiles: ['jest-extended/all'], - coverage: { - thresholds: { - statements: 80, - branches: 70, - functions: 80, - lines: 80, - }, - }, - }, -}); diff --git a/packages/core/.eslintrc.cjs b/packages/core/.eslintrc.cjs index 5b89c5273..f918b28ad 100644 --- a/packages/core/.eslintrc.cjs +++ b/packages/core/.eslintrc.cjs @@ -1,4 +1,19 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, - extends: ['iot-app-kit'], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['packages/core/tsconfig.json'], + }, + node: { + project: ['packages/core/tsconfig.json'], + }, + }, + }, }; diff --git a/packages/core/package.json b/packages/core/package.json index 5d127a62b..76e655ee1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,48 +1,46 @@ { "name": "@iot-app-kit/core", + "description": "IoT Application Kit core", + "version": "12.2.1", "license": "Apache-2.0", "publishConfig": { "access": "public" }, - "version": "12.2.1", - "description": "IoT Application Kit core", + "files": [ + "dist" + ], "type": "module", - "main": "./dist/cjs/index.js", + "main": "./dist/cjs/index.cjs.js", "module": "./dist/esm/index.js", "types": "./dist/esm/index.d.ts", "exports": { ".": { - "types": "./dist/esm/index.d.ts", - "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", - "default": "./dist/esm/index.js" + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } } }, - "files": [ - "dist", - "CHANGELOG.md", - "*NOTICE", - "package.json" - ], "scripts": { - "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json", - "build:cjs": "tsc -b ./tsconfig.cjs.json", - "build:es": "tsc -b ./tsconfig.esm.json", - "clean": "rimraf dist coverage .turbo .cache", - "clean:nuke": "npm run clean && rimraf node_modules", - "dev": "tsc -b ./tsconfig.esm.json --watch", - "dev:react-components": "npm run dev", + "build": "NODE_OPTIONS='--import tsx/esm' vite build", + "clean": "npx rimraf dist coverage .turbo .cache *.tgz LICENSE NOTICE", + "clean:nuke": "npm run clean && npx rimraf node_modules", "lint": "eslint . --max-warnings=2 --cache --cache-location .cache/eslint/", "fix": "eslint --fix . --cache --cache-location .cache/eslint/", - "test": "TZ=UTC vitest run --coverage", - "test:watch": "TZ=UTC vitest", + "test": "NODE_OPTIONS='--import tsx/esm' TZ=UTC vitest run", + "test:watch": "NODE_OPTIONS='--import tsx/esm' TZ=UTC vitest", "test:typescript": "tsc --noEmit", "copy:license": "cp ../../LICENSE LICENSE", "copy:notice": "cp ../../NOTICE NOTICE", - "prepack": "npm run copy:license && npm run copy:notice", - "pack": "npm pack" + "prepack": "npm run copy:license && npm run copy:notice && iot-prepack", + "pack": "npm pack", + "postpack": "iot-postpack" }, "dependencies": { + "@iot-app-kit/helpers": "*", "d3-array": "^3.2.4", "intervals-fn": "^3.0.3", "parse-duration": "^1.0.3", @@ -51,15 +49,17 @@ "uuid": "^9.0.0" }, "devDependencies": { - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@types/d3-array": "^3.0.5", "@types/node": "^18.16.18", "@types/uuid": "^9.0.2", "@vitest/coverage-v8": "^2.1.5", - "eslint-config-iot-app-kit": "12.2.1", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", "rimraf": "^5.0.1", + "tsx": "^4.19.2", "typescript": "^5.5.4", "vite": "^5.4.11", "vitest": "^2.1.5" @@ -79,5 +79,8 @@ }, "bugs": { "url": "https://github.com/awslabs/iot-app-kit/issues" + }, + "iotAppKit": { + "scope": "public" } } diff --git a/packages/core/src/common/time.ts b/packages/core/src/common/time.ts index 7c061587b..13b8aa0d6 100644 --- a/packages/core/src/common/time.ts +++ b/packages/core/src/common/time.ts @@ -1,10 +1,13 @@ +import { + DAY_IN_MS, + HOUR_IN_MS, + MINUTE_IN_MS, + NANO_SECOND_IN_MS, + SECOND_IN_MS, +} from '@iot-app-kit/helpers'; import parse from 'parse-duration'; -export const NANO_SECOND_IN_MS = 1 / 1000000; -export const SECOND_IN_MS = 1000; -export const MINUTE_IN_MS = 60 * SECOND_IN_MS; -export const HOUR_IN_MS = 60 * MINUTE_IN_MS; -export const DAY_IN_MS = 24 * HOUR_IN_MS; +export { DAY_IN_MS, HOUR_IN_MS, MINUTE_IN_MS, NANO_SECOND_IN_MS, SECOND_IN_MS }; // Not precisely accurate, only estimates. exact duration depends on start date. use with care. export const MONTH_IN_MS = 30 * DAY_IN_MS; export const YEAR_IN_MS = 12 * MONTH_IN_MS; diff --git a/packages/core/src/data-module/request-scheduler/requestScheduler.ts b/packages/core/src/data-module/request-scheduler/requestScheduler.ts index bba2647ba..0c6f35c70 100644 --- a/packages/core/src/data-module/request-scheduler/requestScheduler.ts +++ b/packages/core/src/data-module/request-scheduler/requestScheduler.ts @@ -1,4 +1,4 @@ -import { SECOND_IN_MS } from '../../common/time'; +import { SECOND_IN_MS } from '@iot-app-kit/helpers'; const DEFAULT_REFRESH_RATE = 5 * SECOND_IN_MS; diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index ff1b77085..82a1e059e 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,3 +1,10 @@ +export { + DAY_IN_MS, + HOUR_IN_MS, + MINUTE_IN_MS, + NANO_SECOND_IN_MS, + SECOND_IN_MS, +} from './common/time'; export * from './common/types'; export * from './data-module/data-cache/requestTypes'; export * from './data-module/types'; @@ -32,12 +39,6 @@ export { STREAM_TYPE, } from './common/constants'; -export const NANO_SECOND_IN_MS = 1 / 1000000; -export const SECOND_IN_MS = 1000; -export const MINUTE_IN_MS = 60 * SECOND_IN_MS; -export const HOUR_IN_MS = 60 * MINUTE_IN_MS; -export const DAY_IN_MS = 24 * HOUR_IN_MS; - export type { Log, Logger } from './logger/logger.interface'; export type { Metric, diff --git a/packages/core/tsconfig.cjs.json b/packages/core/tsconfig.cjs.json deleted file mode 100644 index 22ff9b9c3..000000000 --- a/packages/core/tsconfig.cjs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.cjs.json", - "include": ["src"], - "exclude": ["./src/__mocks__", "./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/cjs", - "tsBuildInfoFile": "./dist/cjs/.tsbuildinfo" - } -} diff --git a/packages/core/tsconfig.esm.json b/packages/core/tsconfig.esm.json deleted file mode 100644 index 0054b1f9d..000000000 --- a/packages/core/tsconfig.esm.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.esm.json", - "include": ["src"], - "exclude": ["./src/__mocks__", "./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/esm", - "tsBuildInfoFile": "./dist/esm/.tsbuildinfo" - } -} diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 6c9c7a421..ca1e38efd 100755 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -1,9 +1,8 @@ { "$schema": "https://json.schemastore.org/tsconfig", "extends": "@iot-app-kit/ts-config/tsconfig.base.json", - "include": ["src", "vitest.config.ts"], + "include": ["src", "vite.config.ts"], "compilerOptions": { - "types": ["vitest/globals", "jest-extended"], - "moduleResolution": "bundler" + "types": ["vitest/globals", "jest-extended"] } } diff --git a/packages/core/vite.config.ts b/packages/core/vite.config.ts new file mode 100644 index 000000000..0850d4c73 --- /dev/null +++ b/packages/core/vite.config.ts @@ -0,0 +1,7 @@ +import { definePackageConfig } from '@iot-app-kit/vite-config/definePackageConfig'; + +export default definePackageConfig({ + iotAppKitPackage: { + dirname: __dirname, + }, +}); diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts deleted file mode 100644 index bd118af86..000000000 --- a/packages/core/vitest.config.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { defineConfig } from 'vitest/config'; - -// https://vitejs.dev/config/ -export default defineConfig({ - test: { - pool: 'threads', - include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], - globals: true, - css: false, - environment: 'happy-dom', - setupFiles: ['jest-extended/all'], - coverage: { - thresholds: { - statements: 80, - branches: 80, - functions: 80, - lines: 80, - }, - }, - }, -}); diff --git a/packages/dashboard/.eslintrc.cjs b/packages/dashboard/.eslintrc.cjs index 52a309743..6fb8ccbfb 100644 --- a/packages/dashboard/.eslintrc.cjs +++ b/packages/dashboard/.eslintrc.cjs @@ -1,14 +1,20 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, extends: [ - 'iot-app-kit', + ...base.extends, 'plugin:react-hooks/recommended', 'plugin:jsx-a11y/recommended', ], - plugins: ['jsx-a11y'], + plugins: [...base.plugins, 'jsx-a11y'], settings: { + ...base.settings, 'import/resolver': { + ...base.settings['import/resolver'], typescript: { + ...base.settings['import/resolver'].typescript, project: ['packages/dashboard/tsconfig.json'], }, node: { diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 1572f5f4f..d8eca75e0 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -20,36 +20,43 @@ "url": "https://github.com/awslabs/iot-app-kit/issues" }, "type": "module", - "main": "./dist/cjs/index.js", + "main": "./dist/cjs/index.cjs.js", "module": "./dist/esm/index.js", "types": "./dist/esm/index.d.ts", "exports": { ".": { - "types": "./dist/esm/index.d.ts", - "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", - "default": "./dist/esm/index.js" + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } } }, "scripts": { - "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json && tsc-alias -p ./tsconfig.cjs.json && tsc-alias -p ./tsconfig.esm.json && npm run copy-assets:es && npm run copy-assets:cjs", - "build:cjs": "tsc -b ./tsconfig.cjs.json && tsc-alias -p ./tsconfig.cjs.json && npm run copy-assets:cjs", - "build:es": "tsc -b ./tsconfig.esm.json && tsc-alias -p ./tsconfig.esm.json && npm run copy-assets:es", - "clean": "rimraf dist .turbo .cache test-results", - "clean:nuke": "npm run clean && rimraf node_modules", + "build": "NODE_OPTIONS='--import tsx/esm' vite build && npm run copy-assets:es && npm run copy-assets:cjs", + "clean": "npx rimraf dist .turbo .cache *.tgz LICENSE NOTICE", + "clean:nuke": "npm run clean && npx rimraf node_modules", "copy-assets:es": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/esm/", "copy-assets:cjs": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/cjs/", - "dev": "tsc -b ./tsconfig.esm.json --watch", - "test": "vitest run --coverage", - "test:watch": "vitest", + "test": "NODE_OPTIONS='--import tsx/esm' vitest run", + "test:watch": "NODE_OPTIONS='--import tsx/esm' vitest", + "test:typescript": "tsc --noEmit", "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/", "fix": "eslint --fix . --cache --cache-location ./cache/eslint/", - "pack": "npm pack" + "copy:license": "cp ../../LICENSE LICENSE", + "copy:notice": "cp ../../NOTICE NOTICE", + "prepack": "npm run copy:license && npm run copy:notice && iot-prepack", + "pack": "npm pack", + "postpack": "iot-postpack" }, "devDependencies": { "@iot-app-kit/data-mocked": "*", - "@iot-app-kit/testing-util": "12.2.1", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/testing-util": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@tanstack/eslint-plugin-query": "^5.40.1", "@tanstack/react-query-devtools": "^5.40.1", "@testing-library/jest-dom": "^6.6.3", @@ -65,16 +72,13 @@ "@vitejs/plugin-react": "^4.3.3", "@vitest/coverage-v8": "^2.1.5", "copyfiles": "^2.4.1", - "css-loader": "6.8.1", "dotenv": "^16.3.1", - "eslint-config-iot-app-kit": "12.2.1", "eslint-plugin-jsx-a11y": "^6.8.0", "jest-extended": "^3.2.4", "react": "^18.2.0", "react-dom": "^18.2.0", "rimraf": "^5.0.1", "sass": "1.63.6", - "tsc-alias": "^1.8.10", "tslib": "^2.5.3", "type-fest": "^4.28.1", "typescript": "^5.5.4", @@ -85,10 +89,10 @@ "@cloudscape-design/components": "3.0.693", "@cloudscape-design/design-tokens": "3.0.42", "@cloudscape-design/global-styles": "1.0.32", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/core-util": "12.2.1", - "@iot-app-kit/react-components": "12.2.1", - "@iot-app-kit/source-iotsitewise": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/core-util": "*", + "@iot-app-kit/react-components": "*", + "@iot-app-kit/source-iotsitewise": "*", "@popperjs/core": "^2.11.8", "@reduxjs/toolkit": "^1.9.5", "@tanstack/react-query": "^5.40.1", @@ -120,5 +124,8 @@ "@aws-sdk/client-iottwinmaker": "^3.354.0", "react": "^18", "react-dom": "^18" + }, + "iotAppKit": { + "scope": "public" } } diff --git a/packages/dashboard/src/components/actions/index.tsx b/packages/dashboard/src/components/actions/index.tsx index 51eecb7fb..c2784d65b 100644 --- a/packages/dashboard/src/components/actions/index.tsx +++ b/packages/dashboard/src/components/actions/index.tsx @@ -11,13 +11,13 @@ import { spaceScaledXxxl, spaceScaledXxxs, } from '@cloudscape-design/design-tokens'; -import { onSelectWidgetsAction, onToggleReadOnly } from '~/store/actions'; -import { type DashboardSave } from '~/types'; +import { onSelectWidgetsAction, onToggleReadOnly } from '../../store/actions'; +import { type DashboardSave } from '../../types'; import CustomOrangeButton from '../customOrangeButton'; import { RefreshRateDropDown } from '../refreshRate/refreshRateDropdown'; import DashboardSettings from './settings'; -import { convertToDashboardConfiguration } from '~/util/convertToDashbaoardConfiguration'; +import { convertToDashboardConfiguration } from '../../util/convertToDashbaoardConfiguration'; export type ActionsProps = { readOnly: boolean; diff --git a/packages/dashboard/src/components/actions/settings.tsx b/packages/dashboard/src/components/actions/settings.tsx index 913c2ed80..d51828c27 100644 --- a/packages/dashboard/src/components/actions/settings.tsx +++ b/packages/dashboard/src/components/actions/settings.tsx @@ -9,7 +9,7 @@ import { useEffect, useState } from 'react'; import { type Viewport } from '@iot-app-kit/core'; import { isNumeric } from '@iot-app-kit/core-util'; -import { numberFromDetail } from '~/util/inputEvent'; +import { numberFromDetail } from '../../util/inputEvent'; import DecimalPlaces from '../decimalPlaces'; import { DefaultViewport } from '../defaultViewport'; import { useDefaultViewport } from '../defaultViewport/useDefaultViewport'; diff --git a/packages/dashboard/src/components/actions/useGridSettings.spec.tsx b/packages/dashboard/src/components/actions/useGridSettings.spec.tsx index 99748f2c0..bd42f7ce1 100644 --- a/packages/dashboard/src/components/actions/useGridSettings.spec.tsx +++ b/packages/dashboard/src/components/actions/useGridSettings.spec.tsx @@ -2,8 +2,8 @@ import { act, renderHook } from '@testing-library/react'; import { Provider } from 'react-redux'; import type { ReactNode } from 'react'; -import { configureDashboardStore } from '~/store'; -import { initialState } from '~/store/state'; +import { configureDashboardStore } from '../../store'; +import { initialState } from '../../store/state'; import { useGridSettings } from './useGridSettings'; const TestProvider: React.FC<{ diff --git a/packages/dashboard/src/components/actions/useGridSettings.ts b/packages/dashboard/src/components/actions/useGridSettings.ts index d28abdbb8..7de74237f 100644 --- a/packages/dashboard/src/components/actions/useGridSettings.ts +++ b/packages/dashboard/src/components/actions/useGridSettings.ts @@ -1,12 +1,12 @@ import { useDispatch, useSelector } from 'react-redux'; -import { type DashboardState } from '~/store/state'; import { onChangeDashboardCellSizeAction, onChangeDashboardHeightAction, onChangeDashboardWidthAction, -} from '~/store/actions'; -import { onUpdateSignificantDigitsAction } from '~/store/actions/updateSignificantDigits'; +} from '../../store/actions'; +import { onUpdateSignificantDigitsAction } from '../../store/actions/updateSignificantDigits'; +import { type DashboardState } from '../../store/state'; export const useGridSettings = () => { const dispatch = useDispatch(); diff --git a/packages/dashboard/src/components/assistant/assistantFloatingMenu.spec.tsx b/packages/dashboard/src/components/assistant/assistantFloatingMenu.spec.tsx index 9e2713f98..fd298ac9e 100644 --- a/packages/dashboard/src/components/assistant/assistantFloatingMenu.spec.tsx +++ b/packages/dashboard/src/components/assistant/assistantFloatingMenu.spec.tsx @@ -2,20 +2,20 @@ import { act, render } from '@testing-library/react'; import ue from '@testing-library/user-event'; import { type ReactNode } from 'react'; import { Provider } from 'react-redux'; -import { DefaultDashboardMessages } from '~/messages'; -import { configureDashboardStore } from '~/store'; -import { - onAssistantCleanWidgetsSelectionAction, - onAssistantSelectWidgetsAction, - onToggleAssistantModeAction, -} from '~/store/actions'; -import { initialState } from '~/store/state'; import { MOCK_KPI_WIDGET, MOCK_LINE_CHART_WIDGET, MOCK_SCATTER_CHART_WIDGET, MOCK_STATUS_TIMELINE_WIDGET, } from '../../../testing/mocks'; +import { DefaultDashboardMessages } from '../../messages'; +import { configureDashboardStore } from '../../store'; +import { + onAssistantCleanWidgetsSelectionAction, + onAssistantSelectWidgetsAction, + onToggleAssistantModeAction, +} from '../../store/actions'; +import { initialState } from '../../store/state'; import { AssistantFloatingMenu } from './assistantFloatingMenu'; const user = ue.setup(); diff --git a/packages/dashboard/src/components/assistant/assistantFloatingMenu.tsx b/packages/dashboard/src/components/assistant/assistantFloatingMenu.tsx index ccb8f16e6..344afc304 100644 --- a/packages/dashboard/src/components/assistant/assistantFloatingMenu.tsx +++ b/packages/dashboard/src/components/assistant/assistantFloatingMenu.tsx @@ -1,33 +1,33 @@ -import { type CSSProperties, useEffect, useState } from 'react'; -import { AssistantButton } from './assistantButton'; +import Box from '@cloudscape-design/components/box'; +import Popover from '@cloudscape-design/components/popover'; +import StatusIndicator from '@cloudscape-design/components/status-indicator'; import { borderRadiusButton, + colorBackgroundCellShaded, + colorBorderDividerDefault, colorChartsPurple1200, fontSizeBodyM, + fontWeightHeadingM, spaceStaticM, - spaceStaticXxl, spaceStaticS, - fontWeightHeadingM, - colorBorderDividerDefault, - colorBackgroundCellShaded, spaceStaticXs, + spaceStaticXxl, } from '@cloudscape-design/design-tokens'; -import { VerticalDivider } from '../divider/verticalDivider'; -import { AssistantFloatingMenuRightButton } from './assistantFloatingMenuRigthButton'; -import { AssistantFloatingMenuCenterButton } from './assistantFloatingMenuCenterButton'; +import { useAssistant } from '@iot-app-kit/react-components'; +import { type CSSProperties, useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; +import { type DashboardMessages } from '../../messages'; import { onAssistantCleanWidgetsSelectionAction, onToggleAssistantModeAction, onToggleChatbotAction, -} from '~/store/actions'; -import type { DashboardState } from '~/store/state'; -import { type DashboardMessages } from '~/messages'; -import { useAssistant } from '@iot-app-kit/react-components'; -import Popover from '@cloudscape-design/components/popover'; -import StatusIndicator from '@cloudscape-design/components/status-indicator'; -import Box from '@cloudscape-design/components/box'; +} from '../../store/actions'; +import type { DashboardState } from '../../store/state'; +import { VerticalDivider } from '../divider/verticalDivider'; +import { AssistantButton } from './assistantButton'; import './assistantFloatingMenu.css'; +import { AssistantFloatingMenuCenterButton } from './assistantFloatingMenuCenterButton'; +import { AssistantFloatingMenuRightButton } from './assistantFloatingMenuRigthButton'; const MAX_ITEMS_SELECTED = 3; const CHATBOT_OPENED_WIDTH = 500; diff --git a/packages/dashboard/src/components/assistant/assistantFloatingMenuRigthButton.tsx b/packages/dashboard/src/components/assistant/assistantFloatingMenuRigthButton.tsx index 23951952a..cd2f92e2e 100644 --- a/packages/dashboard/src/components/assistant/assistantFloatingMenuRigthButton.tsx +++ b/packages/dashboard/src/components/assistant/assistantFloatingMenuRigthButton.tsx @@ -1,4 +1,4 @@ -import { type HTMLAttributes } from 'react'; +import Popover from '@cloudscape-design/components/popover'; import { borderRadiusButton, colorTextButtonNormalDisabled, @@ -8,9 +8,9 @@ import { spaceStaticXxl, spaceStaticXxs, } from '@cloudscape-design/design-tokens'; +import { type HTMLAttributes } from 'react'; +import type { DashboardMessages } from '../../messages'; import { AssistantIcon } from './assistantIcon'; -import Popover from '@cloudscape-design/components/popover'; -import type { DashboardMessages } from '~/messages'; interface AssistantFloatingMenuRightButtonProps extends HTMLAttributes { diff --git a/packages/dashboard/src/components/assistant/chatbot.spec.tsx b/packages/dashboard/src/components/assistant/chatbot.spec.tsx index 87d6f389d..d2fb7b611 100644 --- a/packages/dashboard/src/components/assistant/chatbot.spec.tsx +++ b/packages/dashboard/src/components/assistant/chatbot.spec.tsx @@ -2,10 +2,10 @@ import { render, renderHook, waitFor } from '@testing-library/react'; import ue from '@testing-library/user-event'; import { type ReactNode } from 'react'; import { Provider, useDispatch } from 'react-redux'; -import { DefaultDashboardMessages } from '~/messages'; -import { configureDashboardStore } from '~/store'; -import { onToggleChatbotAction } from '~/store/actions'; -import { initialState } from '~/store/state'; +import { DefaultDashboardMessages } from '../../messages'; +import { configureDashboardStore } from '../../store'; +import { onToggleChatbotAction } from '../../store/actions'; +import { initialState } from '../../store/state'; import { Chatbot } from './chatbot'; const user = ue.setup(); diff --git a/packages/dashboard/src/components/assistant/chatbot.tsx b/packages/dashboard/src/components/assistant/chatbot.tsx index 0df22ef58..b347e0350 100644 --- a/packages/dashboard/src/components/assistant/chatbot.tsx +++ b/packages/dashboard/src/components/assistant/chatbot.tsx @@ -1,22 +1,25 @@ -import { type FC, useEffect } from 'react'; -import { v4 as uuid } from 'uuid'; import { IoTSitewiseAssistantClient } from '@iot-app-kit/core-util'; import { AssistantChatbot, - useAssistant, - MessageType, - useAssistantContext, + EVENT_SUMMARY_DEFAULT_UTTERANCE, type IMessage, + MessageType, SITUATION_SUMMARY_DEFAULT_UTTERANCE, - EVENT_SUMMARY_DEFAULT_UTTERANCE, + useAssistant, + useAssistantContext, } from '@iot-app-kit/react-components'; -import { useClients } from '../dashboard/clientContext'; import 'animate.css'; -import './assistant.css'; +import { type FC, useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { onCleanAssistantAction, onToggleChatbotAction } from '~/store/actions'; -import { type DashboardState } from '~/store/state'; -import { type DashboardMessages } from '~/messages'; +import { v4 as uuid } from 'uuid'; +import { type DashboardMessages } from '../../messages'; +import { + onCleanAssistantAction, + onToggleChatbotAction, +} from '../../store/actions'; +import { type DashboardState } from '../../store/state'; +import { useClients } from '../dashboard/clientContext'; +import './assistant.css'; export interface AssistantChatbotProps { height: number; diff --git a/packages/dashboard/src/components/contextMenu/contextMenuOptions.ts b/packages/dashboard/src/components/contextMenu/contextMenuOptions.ts index 5b13e5f3f..362acce46 100644 --- a/packages/dashboard/src/components/contextMenu/contextMenuOptions.ts +++ b/packages/dashboard/src/components/contextMenu/contextMenuOptions.ts @@ -1,5 +1,4 @@ -import { keyboardShortcuts } from '~/messages'; -import type { ContextMenuMessages } from '~/messages'; +import { keyboardShortcuts, type ContextMenuMessages } from '../../messages'; type ContextMenuOptionConfiguration = { id: string; diff --git a/packages/dashboard/src/components/contextMenu/index.test.tsx b/packages/dashboard/src/components/contextMenu/index.test.tsx index 261e51cb6..a883d919c 100644 --- a/packages/dashboard/src/components/contextMenu/index.test.tsx +++ b/packages/dashboard/src/components/contextMenu/index.test.tsx @@ -3,8 +3,8 @@ import { Provider } from 'react-redux'; import { act, render, screen, waitFor } from '@testing-library/react'; import ue from '@testing-library/user-event'; -import { DefaultDashboardMessages } from '~/messages'; -import { configureDashboardStore } from '~/store'; +import { DefaultDashboardMessages } from '../../messages'; +import { configureDashboardStore } from '../../store'; import { DASHBOARD_CONTAINER_ID } from '../grid/getDashboardPosition'; import type { ContextMenuProps } from './index'; import ContextMenu from './index'; diff --git a/packages/dashboard/src/components/contextMenu/index.tsx b/packages/dashboard/src/components/contextMenu/index.tsx index 0776ad504..957e2104f 100644 --- a/packages/dashboard/src/components/contextMenu/index.tsx +++ b/packages/dashboard/src/components/contextMenu/index.tsx @@ -1,8 +1,8 @@ import { spaceScaledXxxs } from '@cloudscape-design/design-tokens'; import { useCallback, useEffect, useState } from 'react'; -import { useKeyPress } from '~/hooks/useKeyPress'; -import type { DashboardMessages } from '~/messages'; -import type { Position } from '~/types'; +import { useKeyPress } from '../../hooks/useKeyPress'; +import type { DashboardMessages } from '../../messages'; +import type { Position } from '../../types'; import { DASHBOARD_CONTAINER_ID, getDashboardPosition, diff --git a/packages/dashboard/src/components/contextMenu/menu.css b/packages/dashboard/src/components/contextMenu/menu.css index a559233b1..e76c6712f 100644 --- a/packages/dashboard/src/components/contextMenu/menu.css +++ b/packages/dashboard/src/components/contextMenu/menu.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url('../../styles/variables.css'); .iot-context-menu-placement { position: absolute; diff --git a/packages/dashboard/src/components/contextMenu/menu.tsx b/packages/dashboard/src/components/contextMenu/menu.tsx index f30452e2c..610d8675d 100644 --- a/packages/dashboard/src/components/contextMenu/menu.tsx +++ b/packages/dashboard/src/components/contextMenu/menu.tsx @@ -10,8 +10,8 @@ import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow'; import type { ReactNode } from 'react'; import { useState } from 'react'; import { usePopper } from 'react-popper'; -import { useClickOutside } from '~/hooks/useClickOutside'; -import type { Position } from '~/types'; +import { useClickOutside } from '../../hooks/useClickOutside'; +import type { Position } from '../../types'; import './menu.css'; export type MenuProps = { diff --git a/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.test.tsx b/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.test.tsx index 79a769646..b2b0cb29b 100644 --- a/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.test.tsx +++ b/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.test.tsx @@ -1,15 +1,15 @@ -import { type DataStream, type DataType } from '@iot-app-kit/core'; -import { convertToCSVObject } from './convertToCSVObject'; -import { - type StyledAssetQuery, - type StyledSiteWiseQueryConfig, -} from '~/customization/widgets/types'; -import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; import { type IoTSiteWiseClient, type PropertyDataType, Quality, } from '@aws-sdk/client-iotsitewise'; +import { type DataStream, type DataType } from '@iot-app-kit/core'; +import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; +import { + type StyledAssetQuery, + type StyledSiteWiseQueryConfig, +} from '../../customization/widgets/types'; +import { convertToCSVObject } from './convertToCSVObject'; const ASSET_ID_1 = 'some-asset-id-1'; const PROPERTY_ID_1 = 'some-property-id-1'; diff --git a/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.ts b/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.ts index e6261efb0..6d4992c7d 100644 --- a/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.ts +++ b/packages/dashboard/src/components/csvDownloadButton/convertToCSVObject.ts @@ -1,14 +1,14 @@ +import { type IoTSiteWiseClient, Quality } from '@aws-sdk/client-iotsitewise'; import { type DataPoint, type DataStream, type HistoricalViewport, toSiteWiseAssetProperty, } from '@iot-app-kit/core'; -import { type CSVDownloadObject } from './types'; -import { type StyledSiteWiseQueryConfig } from '~/customization/widgets/types'; +import { type StyledSiteWiseQueryConfig } from '../../customization/widgets/types'; +import { type AssetSummary } from '../../hooks/useAssetDescriptionQueries'; import { getDescribedTimeSeries } from './getDescribedTimeSeries'; -import { type IoTSiteWiseClient, Quality } from '@aws-sdk/client-iotsitewise'; -import { type AssetSummary } from '~/hooks/useAssetDescriptionQueries'; +import { type CSVDownloadObject } from './types'; // Check if time is within passed in viewport OR within last x amount of time from request const isTimeWithinViewport = ( diff --git a/packages/dashboard/src/components/csvDownloadButton/emptyDownload.test.tsx b/packages/dashboard/src/components/csvDownloadButton/emptyDownload.test.tsx index e9f9bc736..efe6bddc8 100644 --- a/packages/dashboard/src/components/csvDownloadButton/emptyDownload.test.tsx +++ b/packages/dashboard/src/components/csvDownloadButton/emptyDownload.test.tsx @@ -1,4 +1,12 @@ import { QueryClient } from '@tanstack/react-query'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; +import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; +import { + type StyledAssetQuery, + type StyledSiteWiseQueryConfig, +} from '../../customization/widgets/types'; +import { CSVDownloadButton } from './index'; vi.mock('../../data/query-client', () => ({ queryClient: new QueryClient({ @@ -10,16 +18,6 @@ vi.mock('../../data/query-client', () => ({ }), })); -import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; - -import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; -import { CSVDownloadButton } from './index'; -import { - type StyledAssetQuery, - type StyledSiteWiseQueryConfig, -} from '~/customization/widgets/types'; - const assetId1 = 'some-asset-id-1'; const propertyId1 = 'some-property-id-1'; const alias1 = 'some-asset-alias-1'; diff --git a/packages/dashboard/src/components/csvDownloadButton/errorDownload.test.tsx b/packages/dashboard/src/components/csvDownloadButton/errorDownload.test.tsx index 971d70a13..6477b60fa 100644 --- a/packages/dashboard/src/components/csvDownloadButton/errorDownload.test.tsx +++ b/packages/dashboard/src/components/csvDownloadButton/errorDownload.test.tsx @@ -1,4 +1,11 @@ +import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; +import { type DataStream } from '@iot-app-kit/core'; +import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; import { QueryClient } from '@tanstack/react-query'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { CSVDownloadButton } from './index'; +import { useFetchTimeSeriesData } from '../dashboard/queryContext'; +import { type StyledAssetQuery } from '../../customization/widgets/types'; vi.mock('../../data/query-client', () => ({ queryClient: new QueryClient({ @@ -10,15 +17,6 @@ vi.mock('../../data/query-client', () => ({ }), })); -import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; - -import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; -import { CSVDownloadButton } from './index'; -import { useFetchTimeSeriesData } from '../dashboard/queryContext'; -import { type StyledAssetQuery } from '~/customization/widgets/types'; -import { type DataStream } from '@iot-app-kit/core'; - const assetId1 = 'some-asset-id-1'; const propertyId1 = 'some-property-id-1'; const alias1 = 'some-asset-alias-1'; diff --git a/packages/dashboard/src/components/csvDownloadButton/index.tsx b/packages/dashboard/src/components/csvDownloadButton/index.tsx index ecb2778ae..7b9e4e3bf 100644 --- a/packages/dashboard/src/components/csvDownloadButton/index.tsx +++ b/packages/dashboard/src/components/csvDownloadButton/index.tsx @@ -1,22 +1,20 @@ import { useState } from 'react'; - import { Button, type ButtonProps } from '@cloudscape-design/components'; - -import { unparse } from 'papaparse'; -import { type StyledSiteWiseQueryConfig } from '~/customization/widgets/types'; import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; -import { useFetchTimeSeriesData } from '../dashboard/queryContext'; import { useViewport } from '@iot-app-kit/react-components'; -import { assetModelQueryToSiteWiseAssetQuery } from '~/customization/widgets/utils/assetModelQueryToAssetQuery'; import { convertToCSVObject } from './convertToCSVObject'; -import { fetchListAssetPropertiesMap } from '~/data/listAssetPropertiesMap/fetchListAssetPropertiesMap'; +import { unparse } from 'papaparse'; +import { type StyledSiteWiseQueryConfig } from '../../customization/widgets/types'; +import { assetModelQueryToSiteWiseAssetQuery } from '../../customization/widgets/utils/assetModelQueryToAssetQuery'; +import { fetchListAssetPropertiesMap } from '../../data/listAssetPropertiesMap/fetchListAssetPropertiesMap'; +import { useFetchTimeSeriesData } from '../dashboard/queryContext'; +import { convertViewportToHistoricalViewport } from '../util/dateTimeUtil'; import { BAR_CHART_RESOLUTIONS, DEFAULT_VIEWPORT, EMPTY_DATA, } from './constants'; -import { convertViewportToHistoricalViewport } from '../util/dateTimeUtil'; -import { queryClient } from '~/data/query-client'; +import { queryClient } from '../../data/query-client'; export const canOnlyDownloadLiveMode: readonly string[] = [ 'table', diff --git a/packages/dashboard/src/components/csvDownloadButton/succesfulDownload.test.tsx b/packages/dashboard/src/components/csvDownloadButton/succesfulDownload.test.tsx index a7140d574..a5e783f53 100644 --- a/packages/dashboard/src/components/csvDownloadButton/succesfulDownload.test.tsx +++ b/packages/dashboard/src/components/csvDownloadButton/succesfulDownload.test.tsx @@ -1,4 +1,13 @@ import { QueryClient } from '@tanstack/react-query'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; +import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; +import { CSVDownloadButton } from './index'; +import { type DataStream, type DataType } from '@iot-app-kit/core'; +import { + type StyledAssetQuery, + type StyledSiteWiseQueryConfig, +} from '../../customization/widgets/types'; vi.mock('../../data/query-client', () => ({ queryClient: new QueryClient({ @@ -10,17 +19,6 @@ vi.mock('../../data/query-client', () => ({ }), })); -import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { createMockSiteWiseSDK } from '@iot-app-kit/testing-util'; - -import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; -import { CSVDownloadButton } from './index'; -import { - type StyledAssetQuery, - type StyledSiteWiseQueryConfig, -} from '~/customization/widgets/types'; -import { type DataStream, type DataType } from '@iot-app-kit/core'; - const assetId1 = 'some-asset-id-1'; const propertyId1 = 'some-property-id-1'; const alias1 = 'some-asset-alias-1'; diff --git a/packages/dashboard/src/components/dashboard/clientContext.ts b/packages/dashboard/src/components/dashboard/clientContext.ts index fcad0a29f..9a48b3eca 100644 --- a/packages/dashboard/src/components/dashboard/clientContext.ts +++ b/packages/dashboard/src/components/dashboard/clientContext.ts @@ -1,6 +1,6 @@ import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; import { createContext, useContext } from 'react'; -import { type DashboardIotSiteWiseClients } from '~/types'; +import { type DashboardIotSiteWiseClients } from '../../types'; export interface DashboardClientContext extends DashboardIotSiteWiseClients { iotSiteWise: IoTSiteWise; diff --git a/packages/dashboard/src/components/dashboard/getClients.ts b/packages/dashboard/src/components/dashboard/getClients.ts index c699c7db9..406ab9f45 100644 --- a/packages/dashboard/src/components/dashboard/getClients.ts +++ b/packages/dashboard/src/components/dashboard/getClients.ts @@ -1,9 +1,9 @@ import { IoTEventsClient } from '@aws-sdk/client-iot-events'; -import { IoTSiteWiseClient, IoTSiteWise } from '@aws-sdk/client-iotsitewise'; +import { IoTSiteWise, IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; import { IoTTwinMakerClient } from '@aws-sdk/client-iottwinmaker'; -import { type DashboardClientConfiguration } from '~/types'; +import { isCredentials } from '../../hooks/useAWSRegion'; +import { type DashboardClientConfiguration } from '../../types'; import { type DashboardClientContext } from './clientContext'; -import { isCredentials } from '~/hooks/useAWSRegion'; export const getClients = ( dashboardClientConfiguration: DashboardClientConfiguration diff --git a/packages/dashboard/src/components/dashboard/getQueries.ts b/packages/dashboard/src/components/dashboard/getQueries.ts index 10192a7d7..bade8f632 100644 --- a/packages/dashboard/src/components/dashboard/getQueries.ts +++ b/packages/dashboard/src/components/dashboard/getQueries.ts @@ -1,10 +1,10 @@ +import { type EdgeMode } from '@iot-app-kit/core'; +import { initialize } from '@iot-app-kit/source-iotsitewise'; import { type DashboardClientConfiguration, type DashboardIotSiteWiseQueries, -} from '~/types'; -import { initialize } from '@iot-app-kit/source-iotsitewise'; +} from '../../types'; import { getClients } from './getClients'; -import { type EdgeMode } from '@iot-app-kit/core'; export const getQueries = ( dashboardClientConfiguration: DashboardClientConfiguration, diff --git a/packages/dashboard/src/components/dashboard/index.tsx b/packages/dashboard/src/components/dashboard/index.tsx index 059ba1a7c..29235cf0b 100644 --- a/packages/dashboard/src/components/dashboard/index.tsx +++ b/packages/dashboard/src/components/dashboard/index.tsx @@ -9,9 +9,11 @@ import { DndProvider } from 'react-dnd'; import { TouchBackend } from 'react-dnd-touch-backend'; import { FpsView } from 'react-fps'; import { Provider } from 'react-redux'; -import { useDashboardPlugins } from '~/customization/api'; -import { PropertiesPanel } from '~/customization/propertiesSections'; -import { configureDashboardStore, toDashboardState } from '~/store'; +import { useDashboardPlugins } from '../../customization/api'; +import { PropertiesPanel } from '../../customization/propertiesSections'; +import { queryClient } from '../../data/query-client'; +import { configureDashboardStore, toDashboardState } from '../../store'; +import '../../styles/variables.css'; import type { AssistantConfiguration, DashboardClientConfiguration, @@ -20,14 +22,12 @@ import type { DashboardSave, DashboardToolbar, ViewportChange, -} from '~/types'; -import '../../styles/variables.css'; +} from '../../types'; import InternalDashboard from '../internalDashboard'; import { ClientContext } from './clientContext'; import { getClients } from './getClients'; import { getQueries } from './getQueries'; import { QueryContext } from './queryContext'; -import { queryClient } from '~/data/query-client'; export type DashboardProperties = { onDashboardConfigurationChange?: DashboardConfigurationChange; diff --git a/packages/dashboard/src/components/dashboard/queryContext.ts b/packages/dashboard/src/components/dashboard/queryContext.ts index 30a874e44..c6a2c52a6 100644 --- a/packages/dashboard/src/components/dashboard/queryContext.ts +++ b/packages/dashboard/src/components/dashboard/queryContext.ts @@ -1,7 +1,7 @@ import { createContext, useContext } from 'react'; -import { useRefreshRate } from '~/customization/hooks/useRefreshRate'; -import { alarmModelQueryToSiteWiseAssetQuery } from '~/customization/widgets/utils/alarmModelQueryToAlarmQuery'; -import { assetModelQueryToSiteWiseAssetQuery } from '~/customization/widgets/utils/assetModelQueryToAssetQuery'; +import { useRefreshRate } from '../../customization/hooks/useRefreshRate'; +import { alarmModelQueryToSiteWiseAssetQuery } from '../../customization/widgets/utils/alarmModelQueryToAlarmQuery'; +import { assetModelQueryToSiteWiseAssetQuery } from '../../customization/widgets/utils/assetModelQueryToAssetQuery'; import type { DataStream, @@ -10,14 +10,14 @@ import type { } from '@iot-app-kit/core'; import type { AlarmDataQuery, + SiteWiseAlarmDataStreamQuery, SiteWiseDataStreamQuery, SiteWiseQuery, - SiteWiseAlarmDataStreamQuery, } from '@iot-app-kit/source-iotsitewise'; import type { DashboardIotSiteWiseQueries, IoTSiteWiseDataStreamQuery, -} from '~/types'; +} from '../../types'; const createTimeSeriesDataQuery = ( iotSiteWiseQuery: SiteWiseQuery, diff --git a/packages/dashboard/src/components/dashboard/view.tsx b/packages/dashboard/src/components/dashboard/view.tsx index 52897ec7d..84bf2beca 100644 --- a/packages/dashboard/src/components/dashboard/view.tsx +++ b/packages/dashboard/src/components/dashboard/view.tsx @@ -7,16 +7,16 @@ import { useMemo } from 'react'; import { DndProvider } from 'react-dnd'; import { TouchBackend } from 'react-dnd-touch-backend'; import { Provider } from 'react-redux'; -import { useDashboardPlugins } from '~/customization/api'; -import { configureDashboardStore, toDashboardState } from '~/store'; +import { useDashboardPlugins } from '../../customization/api'; +import { configureDashboardStore, toDashboardState } from '../../store'; +import '../../styles/variables.css'; import type { AssistantConfiguration, DashboardClientConfiguration, DashboardConfiguration, DashboardToolbar, ViewportChange, -} from '~/types'; -import '../../styles/variables.css'; +} from '../../types'; import InternalDashboard from '../internalDashboard'; import { ClientContext } from './clientContext'; import { getClients } from './getClients'; diff --git a/packages/dashboard/src/components/dashboard/viewOnlyWrapper.tsx b/packages/dashboard/src/components/dashboard/viewOnlyWrapper.tsx index 266f0277f..eb12d4f61 100644 --- a/packages/dashboard/src/components/dashboard/viewOnlyWrapper.tsx +++ b/packages/dashboard/src/components/dashboard/viewOnlyWrapper.tsx @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { useStableDashboardConfiguration } from '~/hooks/useStableDashboardConfiguration'; +import { useStableDashboardConfiguration } from '../../hooks/useStableDashboardConfiguration'; import DashboardView, { type DashboardViewProperties } from './view'; export const DashboardViewWrapper: React.FC = ({ diff --git a/packages/dashboard/src/components/dashboard/wrapper.tsx b/packages/dashboard/src/components/dashboard/wrapper.tsx index 76223b192..c5c421fc1 100644 --- a/packages/dashboard/src/components/dashboard/wrapper.tsx +++ b/packages/dashboard/src/components/dashboard/wrapper.tsx @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { useStableDashboardConfiguration } from '~/hooks/useStableDashboardConfiguration'; +import { useStableDashboardConfiguration } from '../../hooks/useStableDashboardConfiguration'; import Dashboard, { type DashboardProperties } from './index'; export const DashboardWrapper: React.FC = ({ diff --git a/packages/dashboard/src/components/defaultViewport/useDefaultViewport.ts b/packages/dashboard/src/components/defaultViewport/useDefaultViewport.ts index 4bf4f0fbd..a3566c495 100644 --- a/packages/dashboard/src/components/defaultViewport/useDefaultViewport.ts +++ b/packages/dashboard/src/components/defaultViewport/useDefaultViewport.ts @@ -1,7 +1,7 @@ import { useDispatch, useSelector } from 'react-redux'; -import { onUpdateDefaultViewportAction } from '~/store/actions/updateDefaultViewport'; -import { type DashboardState } from '~/store/state'; -import { parseViewport } from '~/util/parseViewport'; +import { onUpdateDefaultViewportAction } from '../../store/actions/updateDefaultViewport'; +import { type DashboardState } from '../../store/state'; +import { parseViewport } from '../../util/parseViewport'; export const useDefaultViewport = () => { const dispatch = useDispatch(); diff --git a/packages/dashboard/src/components/dragLayer/components/widget.css b/packages/dashboard/src/components/dragLayer/components/widget.css index 76b076cd8..ca3b12d38 100644 --- a/packages/dashboard/src/components/dragLayer/components/widget.css +++ b/packages/dashboard/src/components/dragLayer/components/widget.css @@ -1,4 +1,4 @@ -@import "../../../styles/variables.css"; +@import url("../../../styles/variables.css"); .drag-layer-widget { background-color: var(--selection-bg-color); diff --git a/packages/dashboard/src/components/dragLayer/components/widget.tsx b/packages/dashboard/src/components/dragLayer/components/widget.tsx index 3faed5843..3754d8745 100644 --- a/packages/dashboard/src/components/dragLayer/components/widget.tsx +++ b/packages/dashboard/src/components/dragLayer/components/widget.tsx @@ -1,12 +1,12 @@ import { useSelector } from 'react-redux'; -import { widgetCreator } from '~/store/actions/createWidget/presets'; +import { widgetCreator } from '../../../store/actions/createWidget/presets'; import DynamicWidgetComponent, { getDragLayerProps, } from '../../widgets/dynamicWidget'; import type { CSSProperties } from 'react'; -import type { DashboardMessages } from '~/messages'; -import type { DashboardState } from '~/store/state'; +import type { DashboardMessages } from '../../../messages'; +import type { DashboardState } from '../../../store/state'; import './widget.css'; export type DragLayerWidgetProps = { diff --git a/packages/dashboard/src/components/dragLayer/index.css b/packages/dashboard/src/components/dragLayer/index.css index 6d3e8b8cc..838b38e94 100644 --- a/packages/dashboard/src/components/dragLayer/index.css +++ b/packages/dashboard/src/components/dragLayer/index.css @@ -1,11 +1,8 @@ -@import "../../styles/variables.css"; +@import url('../../styles/variables.css'); .custom-drag-layer { position: fixed; pointer-events: none; z-index: var(--stack-order-drag-layer); - top: 0; - right: 0; - bottom: 0; - left: 0; + inset: 0; } diff --git a/packages/dashboard/src/components/dragLayer/index.tsx b/packages/dashboard/src/components/dragLayer/index.tsx index 215360512..045afc56b 100644 --- a/packages/dashboard/src/components/dragLayer/index.tsx +++ b/packages/dashboard/src/components/dragLayer/index.tsx @@ -5,7 +5,7 @@ import { useDragLayer } from 'react-dnd'; import DashboardWidget from './components/widget'; import { ItemTypes } from './itemTypes'; -import { DefaultDashboardMessages } from '~/messages'; +import { DefaultDashboardMessages } from '../../messages'; import './index.css'; const getItemStyles = ( diff --git a/packages/dashboard/src/components/grid/gestureable.tsx b/packages/dashboard/src/components/grid/gestureable.tsx index 7e0f2e697..0bccf380e 100644 --- a/packages/dashboard/src/components/grid/gestureable.tsx +++ b/packages/dashboard/src/components/grid/gestureable.tsx @@ -1,5 +1,5 @@ import type { PropsWithChildren } from 'react'; -import type { DashboardState } from '~/store/state'; +import type { DashboardState } from '../../store/state'; import { gestureable } from '../internalDashboard/gestures/determineTargetGestures'; import { type DragEvent, diff --git a/packages/dashboard/src/components/grid/gestures/constrainPosition.ts b/packages/dashboard/src/components/grid/gestures/constrainPosition.ts index b7cdec573..260420c55 100644 --- a/packages/dashboard/src/components/grid/gestures/constrainPosition.ts +++ b/packages/dashboard/src/components/grid/gestures/constrainPosition.ts @@ -1,4 +1,4 @@ -import { type Position } from '~/types'; +import { type Position } from '../../../types'; /** * diff --git a/packages/dashboard/src/components/grid/gestures/positionTracker.ts b/packages/dashboard/src/components/grid/gestures/positionTracker.ts index ec1f57cc6..89a5a0834 100644 --- a/packages/dashboard/src/components/grid/gestures/positionTracker.ts +++ b/packages/dashboard/src/components/grid/gestures/positionTracker.ts @@ -1,4 +1,4 @@ -import { type Position } from '~/types'; +import { type Position } from '../../../types'; /** * diff --git a/packages/dashboard/src/components/grid/gestures/types.ts b/packages/dashboard/src/components/grid/gestures/types.ts index 790d3fb43..b9f74ac9f 100644 --- a/packages/dashboard/src/components/grid/gestures/types.ts +++ b/packages/dashboard/src/components/grid/gestures/types.ts @@ -1,4 +1,4 @@ -import { type Position } from '~/types'; +import { type Position } from '../../../types'; export type DragEvent = { target?: EventTarget; diff --git a/packages/dashboard/src/components/grid/gestures/useDragMonitor.ts b/packages/dashboard/src/components/grid/gestures/useDragMonitor.ts index 7fac0381b..e749b7f1a 100644 --- a/packages/dashboard/src/components/grid/gestures/useDragMonitor.ts +++ b/packages/dashboard/src/components/grid/gestures/useDragMonitor.ts @@ -1,5 +1,5 @@ import { useDrag } from 'react-dnd'; -import { ItemTypes } from '~/components/dragLayer/itemTypes'; +import { ItemTypes } from '../../../components/dragLayer/itemTypes'; import { type DragEvent } from './types'; import { defaultDelta, @@ -9,7 +9,7 @@ import { } from './positionTracker'; import { constrainPosition } from './constrainPosition'; import { useEffect, useMemo } from 'react'; -import { Animator } from '~/util/animate'; +import { Animator } from '../../../util/animate'; export type DragMonitorProps = { dragStart: (e: DragEvent) => void; diff --git a/packages/dashboard/src/components/grid/gestures/useDropMonitor.ts b/packages/dashboard/src/components/grid/gestures/useDropMonitor.ts index 5223a8307..585a92de3 100644 --- a/packages/dashboard/src/components/grid/gestures/useDropMonitor.ts +++ b/packages/dashboard/src/components/grid/gestures/useDropMonitor.ts @@ -1,7 +1,7 @@ import { useDrop } from 'react-dnd'; import { type DropEvent } from './types'; -import { type ComponentPaletteDraggable } from '~/components/palette/types'; -import { ItemTypes } from '~/components/dragLayer/itemTypes'; +import { type ComponentPaletteDraggable } from '../../../components/palette/types'; +import { ItemTypes } from '../../../components/dragLayer/itemTypes'; import { DASHBOARD_CONTAINER_ID } from '../getDashboardPosition'; export type DropMonitorProps = { diff --git a/packages/dashboard/src/components/grid/gestures/useGridDragAndDrop.ts b/packages/dashboard/src/components/grid/gestures/useGridDragAndDrop.ts index 44fbd2f28..7e3d7f2f0 100644 --- a/packages/dashboard/src/components/grid/gestures/useGridDragAndDrop.ts +++ b/packages/dashboard/src/components/grid/gestures/useGridDragAndDrop.ts @@ -1,4 +1,4 @@ -import { useKeyPress } from '~/hooks/useKeyPress'; +import { useKeyPress } from '../../../hooks/useKeyPress'; import { type PointClickEvent, type DragEvent, type DropEvent } from './types'; import { usePointerTracker } from './usePointerTracker'; import { useDragMonitor } from './useDragMonitor'; diff --git a/packages/dashboard/src/components/grid/gestures/usePointerTracker.ts b/packages/dashboard/src/components/grid/gestures/usePointerTracker.ts index 19ff0503e..5bf2420f7 100644 --- a/packages/dashboard/src/components/grid/gestures/usePointerTracker.ts +++ b/packages/dashboard/src/components/grid/gestures/usePointerTracker.ts @@ -5,7 +5,7 @@ import { getDashboardPosition, } from '../getDashboardPosition'; import { endTracker, startTracker } from './positionTracker'; -import { MouseClick } from '~/types'; +import { MouseClick } from '../../../types'; export type PointerTrackerProps = { readOnly: boolean; diff --git a/packages/dashboard/src/components/grid/getDashboardPosition.ts b/packages/dashboard/src/components/grid/getDashboardPosition.ts index 864f0dfee..e2e48fed2 100644 --- a/packages/dashboard/src/components/grid/getDashboardPosition.ts +++ b/packages/dashboard/src/components/grid/getDashboardPosition.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { Position } from '~/types'; +import type { Position } from '../../types'; export const DASHBOARD_CONTAINER_ID = 'container'; diff --git a/packages/dashboard/src/components/grid/grid.css b/packages/dashboard/src/components/grid/grid.css index 6bb6e4373..12b3ebfe2 100644 --- a/packages/dashboard/src/components/grid/grid.css +++ b/packages/dashboard/src/components/grid/grid.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url('../../styles/variables.css'); .container { position: absolute; @@ -18,7 +18,7 @@ /** Offset to make the dot fall in the top left corner */ background-position: top left; - background-image: url("./grid-dot.svg"); + background-image: url('./grid-dot.svg'); background-repeat: repeat; width: 100%; height: 100%; diff --git a/packages/dashboard/src/components/internalDashboard/collapsiblePanel.tsx b/packages/dashboard/src/components/internalDashboard/collapsiblePanel.tsx index 47e13de59..fd0b995ac 100644 --- a/packages/dashboard/src/components/internalDashboard/collapsiblePanel.tsx +++ b/packages/dashboard/src/components/internalDashboard/collapsiblePanel.tsx @@ -1,6 +1,8 @@ import { type ReactNode } from 'react'; -import './index.css'; +import Box, { type BoxProps } from '@cloudscape-design/components/box'; +import Button from '@cloudscape-design/components/button'; +import { type IconProps } from '@cloudscape-design/components/icon'; import { colorBackgroundLayoutMain, colorBackgroundSegmentActive, @@ -10,11 +12,9 @@ import { spaceStaticXs, spaceStaticXxxs, } from '@cloudscape-design/design-tokens'; -import Box, { type BoxProps } from '@cloudscape-design/components/box'; -import Button from '@cloudscape-design/components/button'; -import { type IconProps } from '@cloudscape-design/components/icon'; -import { DEFAULT_COLLAPSED_SIDE_PANE_WIDTH } from '../resizablePanes/constants'; import { Tooltip } from '@iot-app-kit/react-components'; +import { DEFAULT_COLLAPSED_SIDE_PANE_WIDTH } from '../resizablePanes/constants'; +import './index.css'; type CollapsiblePanelProps = { isPanelCollapsed: boolean; @@ -105,7 +105,7 @@ export function CollapsiblePanel(props: CollapsiblePanelProps) { : colorBackgroundSegmentActive, margin: spaceContainerHorizontal, }} - className='side_panels_collapsed_style' + className='side-panels-collapsed-style' onClick={props.onCollapsedPanelClick} data-testid={`collapsed-${props.side}-panel-icon`} > diff --git a/packages/dashboard/src/components/internalDashboard/dashboardHeader.spec.tsx b/packages/dashboard/src/components/internalDashboard/dashboardHeader.spec.tsx index c2866f621..f15e783eb 100644 --- a/packages/dashboard/src/components/internalDashboard/dashboardHeader.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/dashboardHeader.spec.tsx @@ -1,8 +1,8 @@ -import { type PropsWithChildren } from 'react'; import { render } from '@testing-library/react'; -import DashboardHeader from './dashboardHeader'; -import { configureDashboardStore } from '~/store'; +import { type PropsWithChildren } from 'react'; import { Provider } from 'react-redux'; +import { configureDashboardStore } from '../../store'; +import DashboardHeader from './dashboardHeader'; describe('DashboardHeader', () => { const ProviderWrapper = ({ children }: PropsWithChildren) => ( diff --git a/packages/dashboard/src/components/internalDashboard/dashboardHeader.tsx b/packages/dashboard/src/components/internalDashboard/dashboardHeader.tsx index d0cd6118c..838662a90 100644 --- a/packages/dashboard/src/components/internalDashboard/dashboardHeader.tsx +++ b/packages/dashboard/src/components/internalDashboard/dashboardHeader.tsx @@ -5,9 +5,9 @@ import { TimeSelection, useViewport } from '@iot-app-kit/react-components'; import isEqual from 'lodash-es/isEqual'; import { useSelector } from 'react-redux'; -import { type DashboardState } from '~/store/state'; -import type { DashboardSave, DashboardToolbar } from '~/types'; -import { convertToDashboardConfiguration } from '~/util/convertToDashbaoardConfiguration'; +import { type DashboardState } from '../../store/state'; +import type { DashboardSave, DashboardToolbar } from '../../types'; +import { convertToDashboardConfiguration } from '../../util/convertToDashbaoardConfiguration'; import Actions from '../actions'; type DashboardHeaderProps = { diff --git a/packages/dashboard/src/components/internalDashboard/gestures/determineTargetGestures.ts b/packages/dashboard/src/components/internalDashboard/gestures/determineTargetGestures.ts index 01621cc5f..e41489160 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/determineTargetGestures.ts +++ b/packages/dashboard/src/components/internalDashboard/gestures/determineTargetGestures.ts @@ -1,4 +1,4 @@ -import type { Anchor } from '~/store/actions'; +import type { Anchor } from '../../../store/actions'; import type { DragEvent } from '../../grid'; const GESTURE_ATTRIBUTE = 'data-gesture'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/index.spec.tsx b/packages/dashboard/src/components/internalDashboard/gestures/index.spec.tsx index 5d2ff2b27..301cefbaf 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/index.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/gestures/index.spec.tsx @@ -2,8 +2,8 @@ import { act, renderHook } from '@testing-library/react'; import type { ReactNode } from 'react'; import { Provider } from 'react-redux'; import type { PartialDeep } from 'type-fest'; -import { configureDashboardStore } from '~/store'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import type { DashboardState } from '../../../store/state'; import { MockDashboardFactory } from '../../../../testing/mocks'; import { anchorable, gestureable, idable } from './determineTargetGestures'; import { useGestures } from './index'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/index.ts b/packages/dashboard/src/components/internalDashboard/gestures/index.ts index 8af036c03..a10e9995c 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/index.ts +++ b/packages/dashboard/src/components/internalDashboard/gestures/index.ts @@ -3,8 +3,8 @@ import { determineTargetGestures } from './determineTargetGestures'; import { useMoveGestures } from './useMove'; import { useResizeGestures } from './useResize'; import { useSelectionGestures } from './useSelection'; -import type { DashboardState } from '~/store/state'; -import type { DashboardWidget } from '~/types'; +import type { DashboardState } from '../../../store/state'; +import type { DashboardWidget } from '../../../types'; import type { DragEvent, PointClickEvent } from '../../grid'; import type { Gesture } from './types'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useMove.spec.tsx b/packages/dashboard/src/components/internalDashboard/gestures/useMove.spec.tsx index bb0c2fd63..6126331a8 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useMove.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/gestures/useMove.spec.tsx @@ -3,9 +3,9 @@ import type { ReactNode } from 'react'; import { Provider } from 'react-redux'; import type { PartialDeep } from 'type-fest'; import type { Mock } from 'vitest'; -import { configureDashboardStore } from '~/store'; -import { onMoveWidgetsAction } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import { onMoveWidgetsAction } from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; import { useMoveGestures } from './useMove'; vi.mock('../../../store/actions', async () => { diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useMove.ts b/packages/dashboard/src/components/internalDashboard/gestures/useMove.ts index ebbf76f20..e254033c1 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useMove.ts +++ b/packages/dashboard/src/components/internalDashboard/gestures/useMove.ts @@ -1,10 +1,10 @@ import { useCallback } from 'react'; import type * as React from 'react'; import { useDispatch } from 'react-redux'; -import { onMoveWidgetsAction } from '~/store/actions'; -import { toGridPosition } from '~/util/position'; -import type { DashboardState } from '~/store/state'; -import type { Position, DashboardWidget } from '~/types'; +import { onMoveWidgetsAction } from '../../../store/actions'; +import { toGridPosition } from '../../../util/position'; +import type { DashboardState } from '../../../store/state'; +import type { Position, DashboardWidget } from '../../../types'; import type { DragEvent } from '../../grid'; import type { Gesture } from './types'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useResize.spec.tsx b/packages/dashboard/src/components/internalDashboard/gestures/useResize.spec.tsx index 5dd0ed95b..fffb21166 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useResize.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/gestures/useResize.spec.tsx @@ -3,9 +3,9 @@ import type { ReactNode } from 'react'; import { Provider } from 'react-redux'; import type { PartialDeep } from 'type-fest'; import type { Mock } from 'vitest'; -import { configureDashboardStore } from '~/store'; -import { onResizeWidgetsAction } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import { onResizeWidgetsAction } from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; import { useResizeGestures } from './useResize'; vi.mock('../../../store/actions', async () => { diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useResize.ts b/packages/dashboard/src/components/internalDashboard/gestures/useResize.ts index bcd012278..0a593900b 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useResize.ts +++ b/packages/dashboard/src/components/internalDashboard/gestures/useResize.ts @@ -1,11 +1,11 @@ import { useCallback, useState } from 'react'; import type * as React from 'react'; import { useDispatch } from 'react-redux'; -import { onResizeWidgetsAction } from '~/store/actions'; -import { toGridPosition } from '~/util/position'; -import type { Anchor } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; -import type { Position, DashboardWidget } from '~/types'; +import { onResizeWidgetsAction } from '../../../store/actions'; +import { toGridPosition } from '../../../util/position'; +import type { Anchor } from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; +import type { Position, DashboardWidget } from '../../../types'; import type { DragEvent } from '../../grid'; import type { Gesture } from './types'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useSelection.spec.tsx b/packages/dashboard/src/components/internalDashboard/gestures/useSelection.spec.tsx index 8e9b8b55a..b4edc8aca 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useSelection.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/gestures/useSelection.spec.tsx @@ -2,8 +2,8 @@ import { act, renderHook } from '@testing-library/react'; import type { ReactNode } from 'react'; import { Provider } from 'react-redux'; import type { PartialDeep } from 'type-fest'; -import { configureDashboardStore } from '~/store'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import type { DashboardState } from '../../../store/state'; import { MockDashboardFactory } from '../../../../testing/mocks'; import { useSelectionGestures } from './useSelection'; diff --git a/packages/dashboard/src/components/internalDashboard/gestures/useSelection.ts b/packages/dashboard/src/components/internalDashboard/gestures/useSelection.ts index 171d3af68..0fb6fb0f1 100644 --- a/packages/dashboard/src/components/internalDashboard/gestures/useSelection.ts +++ b/packages/dashboard/src/components/internalDashboard/gestures/useSelection.ts @@ -1,10 +1,14 @@ import { useCallback, useState } from 'react'; import type * as React from 'react'; import { useDispatch } from 'react-redux'; -import { onSelectWidgetsAction } from '~/store/actions'; -import { getSelectedWidgets, pointSelect, selectedRect } from '~/util/select'; -import type { DashboardState } from '~/store/state'; -import type { Position, Selection, DashboardWidget } from '~/types'; +import { onSelectWidgetsAction } from '../../../store/actions'; +import { + getSelectedWidgets, + pointSelect, + selectedRect, +} from '../../../util/select'; +import type { DashboardState } from '../../../store/state'; +import type { Position, Selection, DashboardWidget } from '../../../types'; import type { DragEvent } from '../../grid'; import type { Gesture } from './types'; diff --git a/packages/dashboard/src/components/internalDashboard/index.css b/packages/dashboard/src/components/internalDashboard/index.css index be2ac3648..73c9fd8e4 100644 --- a/packages/dashboard/src/components/internalDashboard/index.css +++ b/packages/dashboard/src/components/internalDashboard/index.css @@ -1,4 +1,4 @@ -@import '../../styles/variables.css'; +@import url('../../styles/variables.css'); .dashboard { height: calc(100vh - var(--dashboard-header-height)); @@ -28,13 +28,14 @@ position: relative; } -.dashboard .dashboard-toolbar .dashboard-toolbar-read-only, dashboard-toolbar-readonly-assistant { +.dashboard .dashboard-toolbar .dashboard-toolbar-read-only, +dashboard-toolbar-readonly-assistant { display: grid; grid-template-columns: auto max-content; grid-template-rows: auto; } -.side_panels_collapsed_style { +.side-panels-collapsed-style { display: flex; justify-content: center; align-items: center; @@ -62,16 +63,13 @@ flex-direction: column; height: 100%; min-height: 200px; + position: relative; } .collapsible-panel-header-container { border-bottom: 2px solid; } -.collapsible-panel { - position: relative; -} - /* subtract the collapsed right panel width plus the drag handle */ .collapsible-panel-left { max-width: calc(100vw - 94px); @@ -80,6 +78,7 @@ /* subtract the collapsed left panel width */ .collapsible-panel-right { max-width: calc(100vw - 84px); + border-left: 2px solid var(--colors-grey-border); } .collapsible-panel-left, @@ -90,7 +89,3 @@ max-height: calc(100vh - var(--toolbar-overlay-height)); z-index: var(--stack-order-grid-inputs); } - -.collapsible-panel-right { - border-left: 2px solid var(--colors-grey-border); -} diff --git a/packages/dashboard/src/components/internalDashboard/index.test.tsx b/packages/dashboard/src/components/internalDashboard/index.test.tsx index add204b2c..a4fbc5c3a 100644 --- a/packages/dashboard/src/components/internalDashboard/index.test.tsx +++ b/packages/dashboard/src/components/internalDashboard/index.test.tsx @@ -3,10 +3,10 @@ import { DndProvider } from 'react-dnd'; import { TouchBackend } from 'react-dnd-touch-backend'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import { initialState } from '~/store/state'; -import { type DashboardWidgetsConfiguration } from '~/types'; import { useDashboardPlugins } from '../../customization/api'; +import { configureDashboardStore } from '../../store'; +import { initialState } from '../../store/state'; +import { type DashboardWidgetsConfiguration } from '../../types'; import InternalDashboard from './index'; import { AppKitConfig } from '@iot-app-kit/react-components'; diff --git a/packages/dashboard/src/components/internalDashboard/index.tsx b/packages/dashboard/src/components/internalDashboard/index.tsx index 6a17f3152..aeab5728a 100644 --- a/packages/dashboard/src/components/internalDashboard/index.tsx +++ b/packages/dashboard/src/components/internalDashboard/index.tsx @@ -15,7 +15,7 @@ import { type CSSProperties, type ReactNode, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { PropertiesPaneIcon } from '../resizablePanes/assets/propertiesPaneIcon'; -import { selectedRect } from '~/util/select'; +import { selectedRect } from '../../util/select'; /** * Component imports @@ -41,23 +41,23 @@ import { onDeleteWidgetsAction, onPasteWidgetsAction, onSendWidgetsToBackAction, -} from '~/store/actions'; -import { widgetCreator } from '~/store/actions/createWidget/presets'; +} from '../../store/actions'; +import { widgetCreator } from '../../store/actions/createWidget/presets'; -import { toGridPosition } from '~/util/position'; +import { toGridPosition } from '../../util/position'; import { useGestures } from './gestures'; import { useKeyboardShortcuts } from './keyboardShortcuts'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; -import { DefaultDashboardMessages } from '~/messages'; -import type { DashboardState } from '~/store/state'; import type { DashboardConfigurationChange, DashboardSave, DashboardToolbar, DashboardWidget, Position, -} from '~/types'; +} from '../../types'; +import { useSelectedWidgets } from '../../hooks/useSelectedWidgets'; +import { DefaultDashboardMessages } from '../../messages'; +import type { DashboardState } from '../../store/state'; import { AssetModelSelection } from '../assetModelSelection/assetModelSelection'; import ConfirmDeleteModal from '../confirmDeleteModal'; import type { ContextMenuProps } from '../contextMenu'; @@ -67,10 +67,10 @@ import type { UserSelectionProps } from '../userSelection'; import type { WidgetsProps } from '../widgets/list'; import DashboardHeader from './dashboardHeader'; -import { useChatbotPosition } from '~/hooks/useChatbotPosition'; -import { useDashboardViewport } from '~/hooks/useDashboardViewport'; -import { useSyncDashboardConfiguration } from '~/hooks/useSyncDashboardConfiguration'; -import { parseViewport } from '~/util/parseViewport'; +import { useChatbotPosition } from '../../hooks/useChatbotPosition'; +import { useDashboardViewport } from '../../hooks/useDashboardViewport'; +import { useSyncDashboardConfiguration } from '../../hooks/useSyncDashboardConfiguration'; +import { parseViewport } from '../../util/parseViewport'; import Actions from '../actions'; import { AssistantFloatingMenu } from '../assistant/assistantFloatingMenu'; import { AssistantIcon } from '../assistant/assistantIcon'; diff --git a/packages/dashboard/src/components/internalDashboard/keyboardShortcuts.ts b/packages/dashboard/src/components/internalDashboard/keyboardShortcuts.ts index b3c618238..9004e8de3 100644 --- a/packages/dashboard/src/components/internalDashboard/keyboardShortcuts.ts +++ b/packages/dashboard/src/components/internalDashboard/keyboardShortcuts.ts @@ -1,7 +1,7 @@ import isFunction from 'lodash-es/isFunction'; import { useCallback } from 'react'; import { useDispatch } from 'react-redux'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; +import { useSelectedWidgets } from '../../hooks/useSelectedWidgets'; import { useKeyPress } from '../../hooks/useKeyPress'; import { onBringWidgetsToFrontAction, diff --git a/packages/dashboard/src/components/internalDashboard/useLayers.spec.tsx b/packages/dashboard/src/components/internalDashboard/useLayers.spec.tsx index 2fd5e3866..672088f07 100644 --- a/packages/dashboard/src/components/internalDashboard/useLayers.spec.tsx +++ b/packages/dashboard/src/components/internalDashboard/useLayers.spec.tsx @@ -2,8 +2,8 @@ import { renderHook } from '@testing-library/react'; import type { ReactNode } from 'react'; import { Provider } from 'react-redux'; import type { PartialDeep } from 'type-fest'; -import { configureDashboardStore } from '~/store'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../store'; +import type { DashboardState } from '../../store/state'; import { MockDashboardFactory, MockWidgetFactory, diff --git a/packages/dashboard/src/components/internalDashboard/useLayers.ts b/packages/dashboard/src/components/internalDashboard/useLayers.ts index 217755207..8e942c34a 100644 --- a/packages/dashboard/src/components/internalDashboard/useLayers.ts +++ b/packages/dashboard/src/components/internalDashboard/useLayers.ts @@ -1,7 +1,7 @@ import max from 'lodash-es/max'; import min from 'lodash-es/min'; import { useSelector } from 'react-redux'; -import type { DashboardState } from '~/store/state'; +import type { DashboardState } from '../../store/state'; type Layers = { userSelectionLayer: number; diff --git a/packages/dashboard/src/components/palette/index.tsx b/packages/dashboard/src/components/palette/index.tsx index feea654d7..3df6dfecd 100644 --- a/packages/dashboard/src/components/palette/index.tsx +++ b/packages/dashboard/src/components/palette/index.tsx @@ -9,7 +9,7 @@ import { import { ComponentLibraryComponentMap, ComponentLibraryComponentOrdering, -} from '~/customization/componentLibraryComponentMap'; +} from '../../customization/componentLibraryComponentMap'; import PaletteComponent from './component'; import './index.css'; diff --git a/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.spec.ts b/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.spec.ts index 196cde80f..9a45af169 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.spec.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.spec.ts @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; import { getCorrectSelectionMode } from './getCorrectSelectionMode'; const createMockWidget = (widgetType: string): DashboardWidget => { diff --git a/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.ts b/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.ts index 490d5fdbc..801214789 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/getCorrectSelectionMode.ts @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; export const getCorrectSelectionMode = (selectedWidgets: DashboardWidget[]) => { return selectedWidgets.at(0)?.type === 'kpi' || diff --git a/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.spec.ts b/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.spec.ts index 133b05f57..cdf35a21f 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.spec.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.spec.ts @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; import { propertySelectionLabel } from './propertySelectionLabel'; const createMockWidget = (widgetType: string): DashboardWidget => { diff --git a/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.ts b/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.ts index 3bbcd846c..edad8602d 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/propertySelectionLabel.ts @@ -3,7 +3,7 @@ import { type AssetPropertyResource, } from '@iot-app-kit/react-components'; import { isModeledPropertyInvalid } from './isModeledPropertyInvalid'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; export function propertySelectionLabel( selectedItems: AssetPropertyExplorerProps['selectedAssetProperties'], diff --git a/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.spec.ts b/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.spec.ts index c7fb8c80d..6fc301da5 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.spec.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.spec.ts @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; import { useIsAddButtonDisabled } from './useIsAddButtonDisabled'; import * as hooks from '../useQuery'; diff --git a/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.ts b/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.ts index fb855e109..5e8eb892b 100644 --- a/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.ts +++ b/packages/dashboard/src/components/queryEditor/helpers/useIsAddButtonDisabled.ts @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; import { useQuery } from '../useQuery'; export const useIsAddButtonDisabled = (selectedWidgets: DashboardWidget[]) => { diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelDataStreamExplorer.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelDataStreamExplorer.tsx index 79d483880..36132a5d2 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelDataStreamExplorer.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelDataStreamExplorer.tsx @@ -9,7 +9,7 @@ import { createInitialAssetModelResource, useSelectedAssetModel, } from './useSelectedAssetModel'; -import { HorizontalDivider } from '~/components/divider/horizontalDivider'; +import { HorizontalDivider } from '../../../../components/divider/horizontalDivider'; import { createInitialAssetModelProperties, useSelectedAssetModelProperties, @@ -23,8 +23,8 @@ import { useModelBasedQuerySelection } from './modelBasedQuery/useModelBasedQuer import { createAssetModelQuery } from './createAssetModelQuery'; import { getPlugin } from '@iot-app-kit/core'; import { ResourceExplorerFooter } from '../footer/footer'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; -import { type DashboardWidget } from '~/types'; +import { createNonNullableList } from '../../../../helpers/lists/createNonNullableList'; +import { type DashboardWidget } from '../../../../types'; import { AlarmExplorer, type AlarmExplorerProps, diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelected.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelected.tsx index 67904d375..322ef48d9 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelected.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelected.tsx @@ -3,7 +3,7 @@ import Button from '@cloudscape-design/components/button'; import { spaceScaledXxs } from '@cloudscape-design/design-tokens'; -import { VerticalDivider } from '~/components/divider/verticalDivider'; +import { VerticalDivider } from '../../../../../../components/divider/verticalDivider'; import { type SelectedAssetModel } from '../../useSelectedAssetModel'; import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; import { AssetForAssetModelSelectForm } from '../../assetsForAssetModelSelect/assetForAssetModelSelectForm'; @@ -12,13 +12,13 @@ import { type UpdateSelectedAsset, } from '../../useSelectedAsset'; -import { useModalVisibility } from '~/hooks/useModalVisibility'; +import { useModalVisibility } from '../../../../../../hooks/useModalVisibility'; import { ResetAssetModelModal } from './resetAssetModel/resetAssetModelModal'; import { default as assetModelSvg } from './assetModelIcon.svg'; import './assetModelSelected.css'; -import { useAssetModel } from '~/hooks/useAssetModel/useAssetModel'; +import { useAssetModel } from '../../../../../../hooks/useAssetModel/useAssetModel'; type AssetModelSelectedOptions = { selectedAssetModel: SelectedAssetModel; diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelection.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelection.tsx index d7b7bfa3d..e7d5c7f65 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelection.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/assetModelSelection.tsx @@ -3,7 +3,7 @@ import Box from '@cloudscape-design/components/box'; import Link from '@cloudscape-design/components/link'; import { AssetModelSelect } from './assetModelSelect'; -import { HorizontalDivider } from '~/components/divider/horizontalDivider'; +import { HorizontalDivider } from '../../../../../../components/divider/horizontalDivider'; import { AssetModelSave } from './assetModelSave'; import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; import { diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/resetAssetModel/resetAssetModelModal.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/resetAssetModel/resetAssetModelModal.tsx index 3656cd193..4264e8612 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/resetAssetModel/resetAssetModelModal.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelExplorer/assetModelSelection/resetAssetModel/resetAssetModelModal.tsx @@ -4,7 +4,7 @@ import Button from '@cloudscape-design/components/button'; import Modal from '@cloudscape-design/components/modal'; import SpaceBetween from '@cloudscape-design/components/space-between'; -import CustomOrangeButton from '~/components/customOrangeButton'; +import CustomOrangeButton from '../../../../../../../components/customOrangeButton'; export const ResetAssetModelModal = ({ visible, diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelPropertiesExplorer/assetModelPropertiesExplorer.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelPropertiesExplorer/assetModelPropertiesExplorer.tsx index 1659a032d..f597ffb97 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelPropertiesExplorer/assetModelPropertiesExplorer.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetModelPropertiesExplorer/assetModelPropertiesExplorer.tsx @@ -5,9 +5,9 @@ import { } from '../useSelectedAssetModelProperties'; import { AssetPropertyExplorer } from '@iot-app-kit/react-components'; import { type SelectedAsset } from '../useSelectedAsset'; -import { isModeledPropertyInvalid } from '~/components/queryEditor/helpers/isModeledPropertyInvalid'; -import { propertySelectionLabel } from '~/components/queryEditor/helpers/propertySelectionLabel'; -import { type DashboardWidget } from '~/types'; +import { isModeledPropertyInvalid } from '../../../../../components/queryEditor/helpers/isModeledPropertyInvalid'; +import { propertySelectionLabel } from '../../../../../components/queryEditor/helpers/propertySelectionLabel'; +import { type DashboardWidget } from '../../../../../types'; export interface AssetExplorerProps { selectedAssetModelProperties: SelectedAssetModelProperties; diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetsForAssetModelSelect/useAssetsForAssetModel/useAssetsForAssetModel.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetsForAssetModelSelect/useAssetsForAssetModel/useAssetsForAssetModel.ts index 59b63a5b1..881666c21 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetsForAssetModelSelect/useAssetsForAssetModel/useAssetsForAssetModel.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetsForAssetModelSelect/useAssetsForAssetModel/useAssetsForAssetModel.ts @@ -3,11 +3,11 @@ import { type QueryFunctionContext, useInfiniteQuery, } from '@tanstack/react-query'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; +import { createNonNullableList } from '../../../../../../helpers/lists/createNonNullableList'; import { AssetsForAssetModelCacheKeyFactory } from './assetsForAssetModelQueryKeyFactory'; import invariant from 'tiny-invariant'; import { GetAssetsForAssetModelRequest } from './getAssetsForAssetModelRequest'; -import { queryClient } from '~/data/query-client'; +import { queryClient } from '../../../../../../data/query-client'; export interface UseAssetModelsOptions { iotSiteWiseClient: IoTSiteWiseClient; diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/findModelBasedQueryWidgets.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/findModelBasedQueryWidgets.ts index 9735cbf72..75e3569d9 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/findModelBasedQueryWidgets.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/findModelBasedQueryWidgets.ts @@ -1,6 +1,6 @@ -import { type QueryProperties } from '~/customization/widgets/types'; -import { type DashboardState } from '~/store/state'; -import { type DashboardWidget } from '~/types'; +import { type QueryProperties } from '../../../../../customization/widgets/types'; +import { type DashboardState } from '../../../../../store/state'; +import { type DashboardWidget } from '../../../../../types'; export type QueryConfigWidget = DashboardWidget; export const isQueryWidget = (w: DashboardWidget): w is QueryConfigWidget => diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuery.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuery.ts index 7dbe0247c..612452613 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuery.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuery.ts @@ -2,8 +2,8 @@ import { type AssetResource } from '@iot-app-kit/react-components'; import isEqual from 'lodash-es/isEqual'; import { useCallback, useMemo } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { onUpdateWidgetsAction } from '~/store/actions'; -import { type DashboardState } from '~/store/state'; +import { onUpdateWidgetsAction } from '../../../../../store/actions'; +import { type DashboardState } from '../../../../../store/state'; import { type QueryConfigWidget, findModelBasedQueryWidgets, diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuerySelection.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuerySelection.ts index 50f4d48c3..17ae3343b 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuerySelection.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/assetModelDataStreamExplorer/modelBasedQuery/useModelBasedQuerySelection.ts @@ -3,12 +3,12 @@ import { type AssetModelQuery, } from '@iot-app-kit/source-iotsitewise'; import noop from 'lodash-es/noop'; -import { styledQueryWidgetOnDrop } from '~/components/queryEditor/useQuery'; -import { useSelection } from '~/customization/propertiesSection'; -import { type QueryProperties } from '~/customization/widgets/types'; -import { assignDefaultStyles } from '~/customization/widgets/utils/assignDefaultStyleSettings'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; -import { isJust, maybeWithDefault } from '~/util/maybe'; +import { styledQueryWidgetOnDrop } from '../../../../../components/queryEditor/useQuery'; +import { useSelection } from '../../../../../customization/propertiesSection'; +import { type QueryProperties } from '../../../../../customization/widgets/types'; +import { assignDefaultStyles } from '../../../../../customization/widgets/utils/assignDefaultStyleSettings'; +import { type IoTSiteWiseDataStreamQuery } from '../../../../../types'; +import { isJust, maybeWithDefault } from '../../../../../util/maybe'; import { type QueryConfigWidget, isQueryWidget, diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.spec.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.spec.tsx index 20fd73a98..5ca36ca56 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.spec.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.spec.tsx @@ -1,5 +1,5 @@ -import { disableAdd } from '~/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd'; -import { type SiteWiseQueryConfig } from '~/customization/widgets/types'; +import { disableAdd } from '../../../../components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd'; +import { type SiteWiseQueryConfig } from '../../../../customization/widgets/types'; const commonTests = ({ objectWithoutProperties, diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.ts index 523b83c99..6886f1722 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/footer/disableAdd.ts @@ -1,5 +1,5 @@ import get from 'lodash-es/get'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../../types'; export const disableAdd = ( selectedWidgets: DashboardWidget>[], diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.spec.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.spec.tsx index 3bf29ac5d..27e4ea746 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.spec.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.spec.tsx @@ -11,7 +11,7 @@ import { resourceExplorerQueryClient } from '@iot-app-kit/react-components'; import { render, screen, waitFor } from '@testing-library/react'; import ue from '@testing-library/user-event'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; +import { configureDashboardStore } from '../../../store'; import { IoTSiteWiseQueryEditor } from './iotSiteWiseQueryEditor'; const user = ue.setup(); diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.tsx index 46b536f33..f2eaa9a21 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/iotSiteWiseQueryEditor.tsx @@ -4,11 +4,11 @@ import { } from '@aws-sdk/client-iotsitewise'; import Tabs from '@cloudscape-design/components/tabs'; import { useSelector } from 'react-redux'; -import type { DashboardState } from '~/store/state'; +import type { DashboardState } from '../../../store/state'; import { type useQuery } from '../useQuery'; import { AssetModelDataStreamExplorer } from './assetModelDataStreamExplorer/assetModelDataStreamExplorer'; import { ModeledExplorer } from './modeledExplorer/modeledExplorer'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../types'; import { UnmodeledExplorer } from './timeSeriesExplorer/timeSeriesExplorer'; export interface IoTSiteWiseQueryEditorProps { diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/modeledExplorer/modeledExplorer.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/modeledExplorer/modeledExplorer.tsx index 00a64a636..53ae6e2b4 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/modeledExplorer/modeledExplorer.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/modeledExplorer/modeledExplorer.tsx @@ -18,7 +18,7 @@ import { QueryExtender } from '../queryExtender'; import { getPlugin } from '@iot-app-kit/core'; import { type useQuery } from '../../useQuery'; import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../../types'; import { propertySelectionLabel } from '../../helpers/propertySelectionLabel'; import { alarmSelectionLabel } from '../../helpers/alarmSelectionLabel'; import { ExpandableSectionHeading } from '../components/expandableSectionHeading'; diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/queryExtender/queryExtender.ts b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/queryExtender/queryExtender.ts index e782afe7b..81439b339 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/queryExtender/queryExtender.ts +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/queryExtender/queryExtender.ts @@ -3,7 +3,7 @@ import { type AssetPropertyResource, type TimeSeriesResource, } from '@iot-app-kit/react-components'; -import type { IoTSiteWiseDataStreamQuery } from '~/types'; +import type { IoTSiteWiseDataStreamQuery } from '../../../../types'; type Query = IoTSiteWiseDataStreamQuery; diff --git a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/timeSeriesExplorer/timeSeriesExplorer.tsx b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/timeSeriesExplorer/timeSeriesExplorer.tsx index 3bc313c0b..94aa19ff4 100644 --- a/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/timeSeriesExplorer/timeSeriesExplorer.tsx +++ b/packages/dashboard/src/components/queryEditor/iotSiteWiseQueryEditor/timeSeriesExplorer/timeSeriesExplorer.tsx @@ -4,7 +4,7 @@ import { ResourceExplorerFooter } from '../footer/footer'; import { QueryExtender } from '../queryExtender'; import { type useQuery } from '../../useQuery'; import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../../../types'; import { TimeSeriesExplorer, type TimeSeriesExplorerProps, diff --git a/packages/dashboard/src/components/queryEditor/queryEditor.tsx b/packages/dashboard/src/components/queryEditor/queryEditor.tsx index e162b706a..b286737e0 100644 --- a/packages/dashboard/src/components/queryEditor/queryEditor.tsx +++ b/packages/dashboard/src/components/queryEditor/queryEditor.tsx @@ -2,7 +2,7 @@ import { IoTSiteWiseQueryEditor } from './iotSiteWiseQueryEditor'; import { QueryEditorErrorBoundary } from './queryEditorErrorBoundary'; import { useQuery } from './useQuery'; import { type IoTSiteWise } from '@aws-sdk/client-iotsitewise'; -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../../types'; import { useIsAddButtonDisabled } from './helpers/useIsAddButtonDisabled'; import { getCorrectSelectionMode } from './helpers/getCorrectSelectionMode'; import { useAssetsForAssetModel } from './iotSiteWiseQueryEditor/assetModelDataStreamExplorer/assetsForAssetModelSelect/useAssetsForAssetModel/useAssetsForAssetModel'; diff --git a/packages/dashboard/src/components/queryEditor/useQuery.ts b/packages/dashboard/src/components/queryEditor/useQuery.ts index e9338c0fc..26a0a6163 100644 --- a/packages/dashboard/src/components/queryEditor/useQuery.ts +++ b/packages/dashboard/src/components/queryEditor/useQuery.ts @@ -1,14 +1,17 @@ -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; +import { useSelectedWidgets } from '../../hooks/useSelectedWidgets'; import { useDispatch } from 'react-redux'; -import { onUpdateWidgetsAction } from '~/store/actions'; -import { type DashboardWidget, type IoTSiteWiseDataStreamQuery } from '~/types'; -import { applyDefaultStylesToQuery } from '~/customization/widgets/utils/assetQuery/applyDefaultStylesToQuery'; -import { assignDefaultStyles } from '~/customization/widgets/utils/assignDefaultStyleSettings'; -import { type QueryWidget } from '~/customization/widgets/types'; -import { assignDefaultRefId } from '~/customization/widgets/utils/assetQuery/assignDefaultRefId'; -import { applyAggregationToQuery } from '~/customization/widgets/utils/assetQuery/applyAggregationToQuery'; -import { applyResolutionToQuery } from '~/customization/widgets/utils/assetQuery/applyResolutionToQuery'; -import { getCurrentAggregationResolution } from '~/customization/widgets/utils/widgetAggregationUtils'; +import { onUpdateWidgetsAction } from '../../store/actions'; +import { + type DashboardWidget, + type IoTSiteWiseDataStreamQuery, +} from '../../types'; +import { applyDefaultStylesToQuery } from '../../customization/widgets/utils/assetQuery/applyDefaultStylesToQuery'; +import { assignDefaultStyles } from '../../customization/widgets/utils/assignDefaultStyleSettings'; +import { type QueryWidget } from '../../customization/widgets/types'; +import { assignDefaultRefId } from '../../customization/widgets/utils/assetQuery/assignDefaultRefId'; +import { applyAggregationToQuery } from '../../customization/widgets/utils/assetQuery/applyAggregationToQuery'; +import { applyResolutionToQuery } from '../../customization/widgets/utils/assetQuery/applyResolutionToQuery'; +import { getCurrentAggregationResolution } from '../../customization/widgets/utils/widgetAggregationUtils'; type WidgetWithQuery = DashboardWidget<{ queryConfig: { query: IoTSiteWiseDataStreamQuery }; diff --git a/packages/dashboard/src/components/refreshRate/refreshRateDropdown.spec.tsx b/packages/dashboard/src/components/refreshRate/refreshRateDropdown.spec.tsx index 0535196ee..c3559a5be 100644 --- a/packages/dashboard/src/components/refreshRate/refreshRateDropdown.spec.tsx +++ b/packages/dashboard/src/components/refreshRate/refreshRateDropdown.spec.tsx @@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react'; import ue from '@testing-library/user-event'; import { RefreshRateDropDown } from './refreshRateDropdown'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; +import { configureDashboardStore } from '../../store'; const user = ue.setup(); diff --git a/packages/dashboard/src/components/refreshRate/refreshRateDropdown.tsx b/packages/dashboard/src/components/refreshRate/refreshRateDropdown.tsx index dd1157f16..b4a4cc97c 100644 --- a/packages/dashboard/src/components/refreshRate/refreshRateDropdown.tsx +++ b/packages/dashboard/src/components/refreshRate/refreshRateDropdown.tsx @@ -5,7 +5,7 @@ import { REFRESH_RATE_OPTIONS, REFRESH_RATE_OPTION_MAP, } from './constants'; -import { useRefreshRate } from '~/customization/hooks/useRefreshRate'; +import { useRefreshRate } from '../../customization/hooks/useRefreshRate'; import { SECOND_IN_MS } from '@iot-app-kit/core'; import invariant from 'tiny-invariant'; import { type RefreshRate } from './types'; diff --git a/packages/dashboard/src/components/resizablePanes/assets/ResourceExplorerIcon.tsx b/packages/dashboard/src/components/resizablePanes/assets/ResourceExplorerIcon.tsx index af404f296..96ed0b12f 100644 --- a/packages/dashboard/src/components/resizablePanes/assets/ResourceExplorerIcon.tsx +++ b/packages/dashboard/src/components/resizablePanes/assets/ResourceExplorerIcon.tsx @@ -1,7 +1,7 @@ import { SVGWrapper, type SVGWrapperAriaProps, -} from '~/components/svg/svgWrapper'; +} from '../../../components/svg/svgWrapper'; export const ResourceExplorerIcon = (props: SVGWrapperAriaProps) => { return ( diff --git a/packages/dashboard/src/components/resizablePanes/assets/propertiesPaneIcon.tsx b/packages/dashboard/src/components/resizablePanes/assets/propertiesPaneIcon.tsx index 76e1caf3e..72158a410 100644 --- a/packages/dashboard/src/components/resizablePanes/assets/propertiesPaneIcon.tsx +++ b/packages/dashboard/src/components/resizablePanes/assets/propertiesPaneIcon.tsx @@ -1,7 +1,7 @@ import { SVGWrapper, type SVGWrapperAriaProps, -} from '~/components/svg/svgWrapper'; +} from '../../../components/svg/svgWrapper'; export const PropertiesPaneIcon = (props: SVGWrapperAriaProps) => { return ( diff --git a/packages/dashboard/src/components/resizablePanes/index.test.tsx b/packages/dashboard/src/components/resizablePanes/index.test.tsx index a97f12371..c5e3e997c 100644 --- a/packages/dashboard/src/components/resizablePanes/index.test.tsx +++ b/packages/dashboard/src/components/resizablePanes/index.test.tsx @@ -2,8 +2,8 @@ import { render } from '@testing-library/react'; import { type FC, type ReactNode } from 'react'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import { initialState } from '~/store/state'; +import { configureDashboardStore } from '../../store'; +import { initialState } from '../../store/state'; import { PropertiesPaneIcon } from './assets/propertiesPaneIcon'; import { ResizablePanes } from './index'; diff --git a/packages/dashboard/src/components/resizablePanes/index.tsx b/packages/dashboard/src/components/resizablePanes/index.tsx index 4ddcd3149..19c45cbd5 100644 --- a/packages/dashboard/src/components/resizablePanes/index.tsx +++ b/packages/dashboard/src/components/resizablePanes/index.tsx @@ -17,8 +17,8 @@ import './index.css'; import { CollapsiblePanel } from '../internalDashboard/collapsiblePanel'; import { ResourceExplorerIcon } from './assets/ResourceExplorerIcon'; import { useDispatch, useSelector } from 'react-redux'; -import type { DashboardState } from '~/store/state'; -import { onToggleChatbotAction } from '~/store/actions/toggleChatbot'; +import type { DashboardState } from '../../store/state'; +import { onToggleChatbotAction } from '../../store/actions/toggleChatbot'; import { useResizeObserver } from 'usehooks-ts'; const getSessionStorageNumber = (key: string, fallback: number) => { diff --git a/packages/dashboard/src/components/userSelection/index.css b/packages/dashboard/src/components/userSelection/index.css index 53611cacd..b06142258 100644 --- a/packages/dashboard/src/components/userSelection/index.css +++ b/packages/dashboard/src/components/userSelection/index.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url("../../styles/variables.css"); .select-rect { border: var(--selection-border-width) solid var(--selection-color); diff --git a/packages/dashboard/src/components/userSelection/index.tsx b/packages/dashboard/src/components/userSelection/index.tsx index 546e31acd..e2ff82d2b 100644 --- a/packages/dashboard/src/components/userSelection/index.tsx +++ b/packages/dashboard/src/components/userSelection/index.tsx @@ -1,6 +1,6 @@ import { useLayers } from '../internalDashboard/useLayers'; -import type { Rect } from '~/types'; +import type { Rect } from '../../types'; import './index.css'; export type UserSelectionProps = { diff --git a/packages/dashboard/src/components/widgets/dynamicWidget.tsx b/packages/dashboard/src/components/widgets/dynamicWidget.tsx index bba2d5b62..d6b92ad92 100644 --- a/packages/dashboard/src/components/widgets/dynamicWidget.tsx +++ b/packages/dashboard/src/components/widgets/dynamicWidget.tsx @@ -1,9 +1,9 @@ import type { FC } from 'react'; import { createElement } from 'react'; -import { WidgetComponentMap } from '~/customization/widgetComponentMap'; -import { useAssistantConfiguration } from '~/hooks/useAssistantConfiguration'; -import type { WidgetsMessages } from '~/messages'; -import type { DashboardWidget } from '~/types'; +import { WidgetComponentMap } from '../../customization/widgetComponentMap'; +import { useAssistantConfiguration } from '../../hooks/useAssistantConfiguration'; +import type { WidgetsMessages } from '../../messages'; +import type { DashboardWidget } from '../../types'; import './dynamicWidget.css'; const IconX: FC = () => ( diff --git a/packages/dashboard/src/components/widgets/list.tsx b/packages/dashboard/src/components/widgets/list.tsx index 7db569b17..401b5342d 100644 --- a/packages/dashboard/src/components/widgets/list.tsx +++ b/packages/dashboard/src/components/widgets/list.tsx @@ -1,9 +1,9 @@ import type { SiteWiseQuery } from '@iot-app-kit/source-iotsitewise'; import includes from 'lodash-es/includes'; import map from 'lodash-es/map'; -import type { DashboardMessages } from '~/messages'; -import { type DashboardState } from '~/store/state'; -import type { DashboardWidget } from '~/types'; +import type { DashboardMessages } from '../../messages'; +import { type DashboardState } from '../../store/state'; +import type { DashboardWidget } from '../../types'; import './list.css'; import SelectionBox from './selectionBox'; import WidgetComponent from './widget'; diff --git a/packages/dashboard/src/components/widgets/selectionBox.css b/packages/dashboard/src/components/widgets/selectionBox.css index 2ec9f49f9..b7fa0b2d1 100644 --- a/packages/dashboard/src/components/widgets/selectionBox.css +++ b/packages/dashboard/src/components/widgets/selectionBox.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url("../../styles/variables.css"); .selection-box { pointer-events: none; diff --git a/packages/dashboard/src/components/widgets/selectionBox.tsx b/packages/dashboard/src/components/widgets/selectionBox.tsx index 657c5ccd2..3048f5bf2 100644 --- a/packages/dashboard/src/components/widgets/selectionBox.tsx +++ b/packages/dashboard/src/components/widgets/selectionBox.tsx @@ -1,7 +1,7 @@ -import { getSelectionBox } from '~/util/getSelectionBox'; +import { getSelectionBox } from '../../util/getSelectionBox'; import SelectionBoxAnchor from './selectionBoxAnchor'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../types'; import { gestureable } from '../internalDashboard/gestures/determineTargetGestures'; import { useLayers } from '../internalDashboard/useLayers'; import './selectionBox.css'; diff --git a/packages/dashboard/src/components/widgets/selectionBoxAnchor.css b/packages/dashboard/src/components/widgets/selectionBoxAnchor.css index 5d5bf9e52..6d58be587 100644 --- a/packages/dashboard/src/components/widgets/selectionBoxAnchor.css +++ b/packages/dashboard/src/components/widgets/selectionBoxAnchor.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url("../../styles/variables.css"); /** * Draggable corners for the selection box diff --git a/packages/dashboard/src/components/widgets/selectionBoxAnchor.tsx b/packages/dashboard/src/components/widgets/selectionBoxAnchor.tsx index 396fb2a96..212ab94a7 100644 --- a/packages/dashboard/src/components/widgets/selectionBoxAnchor.tsx +++ b/packages/dashboard/src/components/widgets/selectionBoxAnchor.tsx @@ -1,5 +1,5 @@ import { colorBackgroundContainerContent } from '@cloudscape-design/design-tokens'; -import type { Anchor } from '~/store/actions'; +import type { Anchor } from '../../store/actions'; import { anchorable, gestureable, diff --git a/packages/dashboard/src/components/widgets/tile/tile.spec.tsx b/packages/dashboard/src/components/widgets/tile/tile.spec.tsx index 1ef43ff28..7c55bf7a7 100644 --- a/packages/dashboard/src/components/widgets/tile/tile.spec.tsx +++ b/packages/dashboard/src/components/widgets/tile/tile.spec.tsx @@ -1,6 +1,6 @@ import { render, screen } from '@testing-library/react'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; +import { configureDashboardStore } from '../../../store'; import { MOCK_BAR_WIDGET, MOCK_LINE_CHART_WIDGET, diff --git a/packages/dashboard/src/components/widgets/tile/tile.tsx b/packages/dashboard/src/components/widgets/tile/tile.tsx index e35f36dd2..52351ecb4 100644 --- a/packages/dashboard/src/components/widgets/tile/tile.tsx +++ b/packages/dashboard/src/components/widgets/tile/tile.tsx @@ -8,13 +8,13 @@ import { import type { AssistantProperty } from '@iot-app-kit/react-components'; import { type PropsWithChildren } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { HorizontalDivider } from '~/components/divider/horizontalDivider'; +import { HorizontalDivider } from '../../../components/divider/horizontalDivider'; import { onAssistantDeselectWidgetsAction, onAssistantSelectWidgetsAction, -} from '~/store/actions'; -import type { DashboardState } from '~/store/state'; -import { type DashboardWidget } from '~/types'; +} from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; +import { type DashboardWidget } from '../../../types'; import './tile.css'; export type WidgetTileProps = PropsWithChildren<{ diff --git a/packages/dashboard/src/components/widgets/widget.css b/packages/dashboard/src/components/widgets/widget.css index 4de5bcd8b..532dbe340 100644 --- a/packages/dashboard/src/components/widgets/widget.css +++ b/packages/dashboard/src/components/widgets/widget.css @@ -1,4 +1,4 @@ -@import "../../styles/variables.css"; +@import url("../../styles/variables.css"); .widget { position: absolute; diff --git a/packages/dashboard/src/components/widgets/widget.tsx b/packages/dashboard/src/components/widgets/widget.tsx index 666f5294f..fdf3ad7a5 100644 --- a/packages/dashboard/src/components/widgets/widget.tsx +++ b/packages/dashboard/src/components/widgets/widget.tsx @@ -7,8 +7,8 @@ import DynamicWidgetComponent from './dynamicWidget'; import WidgetActions from './widgetActions'; import type { SiteWiseQuery } from '@iot-app-kit/source-iotsitewise'; -import type { DashboardMessages } from '~/messages'; -import type { DashboardWidget } from '~/types'; +import type { DashboardMessages } from '../../messages'; +import type { DashboardWidget } from '../../types'; import './widget.css'; export type WidgetProps = { diff --git a/packages/dashboard/src/components/widgets/widgetActions.test.tsx b/packages/dashboard/src/components/widgets/widgetActions.test.tsx index 78bcc8569..6084c98c1 100644 --- a/packages/dashboard/src/components/widgets/widgetActions.test.tsx +++ b/packages/dashboard/src/components/widgets/widgetActions.test.tsx @@ -1,7 +1,7 @@ import wrapper from '@cloudscape-design/components/test-utils/dom'; import { act, render, screen } from '@testing-library/react'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; +import { configureDashboardStore } from '../../store'; import { MOCK_KPI_WIDGET, MOCK_LINE_CHART_WIDGET, diff --git a/packages/dashboard/src/components/widgets/widgetActions.tsx b/packages/dashboard/src/components/widgets/widgetActions.tsx index 172f3341b..de3e538ca 100644 --- a/packages/dashboard/src/components/widgets/widgetActions.tsx +++ b/packages/dashboard/src/components/widgets/widgetActions.tsx @@ -10,9 +10,9 @@ import { import { getPlugin } from '@iot-app-kit/core'; import { useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { type StyledSiteWiseQueryConfig } from '~/customization/widgets/types'; -import { useDeleteWidgets } from '~/hooks/useDeleteWidgets'; -import { type DashboardWidget } from '~/types'; +import { type StyledSiteWiseQueryConfig } from '../../customization/widgets/types'; +import { useDeleteWidgets } from '../../hooks/useDeleteWidgets'; +import { type DashboardWidget } from '../../types'; import ConfirmDeleteModal from '../confirmDeleteModal'; import { CSVDownloadButton, @@ -24,8 +24,8 @@ import { useClients } from '../dashboard/clientContext'; import { onChangeDashboardGridEnabledAction, onSelectWidgetsAction, -} from '~/store/actions'; -import { type DashboardState } from '~/store/state'; +} from '../../store/actions'; +import { type DashboardState } from '../../store/state'; import './widgetActions.css'; diff --git a/packages/dashboard/src/customization/api.ts b/packages/dashboard/src/customization/api.ts index 3789a9cd9..fa9454449 100644 --- a/packages/dashboard/src/customization/api.ts +++ b/packages/dashboard/src/customization/api.ts @@ -1,6 +1,6 @@ import type * as React from 'react'; -import plugins from '~/customization/pluginsConfiguration'; -import type { DashboardWidget } from '~/types'; +import plugins from '../customization/pluginsConfiguration'; +import type { DashboardWidget } from '../types'; import { ComponentLibraryComponentMap, ComponentLibraryComponentOrdering, diff --git a/packages/dashboard/src/customization/hooks/useIsSelected.ts b/packages/dashboard/src/customization/hooks/useIsSelected.ts index 79bd9d6ef..8006720cf 100644 --- a/packages/dashboard/src/customization/hooks/useIsSelected.ts +++ b/packages/dashboard/src/customization/hooks/useIsSelected.ts @@ -1,8 +1,8 @@ import includes from 'lodash-es/includes'; import map from 'lodash-es/map'; import { useCallback } from 'react'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; -import type { DashboardWidget } from '~/types'; +import { useSelectedWidgets } from '../../hooks/useSelectedWidgets'; +import type { DashboardWidget } from '../../types'; /** * Helper hook that can be exposed to consumers making their own widget components diff --git a/packages/dashboard/src/customization/hooks/useRefreshRate.ts b/packages/dashboard/src/customization/hooks/useRefreshRate.ts index fe55a9ed6..64d68df81 100644 --- a/packages/dashboard/src/customization/hooks/useRefreshRate.ts +++ b/packages/dashboard/src/customization/hooks/useRefreshRate.ts @@ -1,7 +1,7 @@ -import { type RefreshRate } from '~/components/refreshRate/types'; +import { type RefreshRate } from '../../components/refreshRate/types'; import { useDispatch, useSelector } from 'react-redux'; -import { onUpdateRefreshRateAction } from '~/store/actions'; -import { type DashboardState } from '~/store/state'; +import { onUpdateRefreshRateAction } from '../../store/actions'; +import { type DashboardState } from '../../store/state'; export const useRefreshRate = () => { const dispatch = useDispatch(); diff --git a/packages/dashboard/src/customization/hooks/useWidgetActions.ts b/packages/dashboard/src/customization/hooks/useWidgetActions.ts index 8e5416ab0..21576b06b 100644 --- a/packages/dashboard/src/customization/hooks/useWidgetActions.ts +++ b/packages/dashboard/src/customization/hooks/useWidgetActions.ts @@ -1,7 +1,7 @@ import { useDispatch } from 'react-redux'; -import { onUpdateWidgetsAction } from '~/store/actions'; -import type { DashboardWidget } from '~/types'; +import { onUpdateWidgetsAction } from '../../store/actions'; +import type { DashboardWidget } from '../../types'; /** * Helper hook that can be exposed to consumers making their own widget components diff --git a/packages/dashboard/src/customization/propertiesSection.ts b/packages/dashboard/src/customization/propertiesSection.ts index 3bbba5721..f7c5b29ec 100644 --- a/packages/dashboard/src/customization/propertiesSection.ts +++ b/packages/dashboard/src/customization/propertiesSection.ts @@ -1,16 +1,16 @@ import isEqual from 'lodash-es/isEqual'; import type * as React from 'react'; import { useDispatch } from 'react-redux'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; +import { useSelectedWidgets } from '../hooks/useSelectedWidgets'; import { onMoveWidgetsAction, onResizeWidgetsAction, onUpdateWidgetsAction, -} from '~/store/actions'; -import { type DashboardWidget, type Rect } from '~/types'; -import { getSelectionBox } from '~/util/getSelectionBox'; -import { Just, type Maybe, Nothing } from '~/util/maybe'; -import { trimRectPosition } from '~/util/trimRectPosition'; +} from '../store/actions'; +import { type DashboardWidget, type Rect } from '../types'; +import { getSelectionBox } from '../util/getSelectionBox'; +import { Just, type Maybe, Nothing } from '../util/maybe'; +import { trimRectPosition } from '../util/trimRectPosition'; /** * Predicate function type for dashboard widgets diff --git a/packages/dashboard/src/customization/propertiesSectionComponent.tsx b/packages/dashboard/src/customization/propertiesSectionComponent.tsx index 527b0064b..2f46fa90e 100644 --- a/packages/dashboard/src/customization/propertiesSectionComponent.tsx +++ b/packages/dashboard/src/customization/propertiesSectionComponent.tsx @@ -1,4 +1,4 @@ -import { type DashboardWidget } from '~/types'; +import { type DashboardWidget } from '../types'; import { type FilterPredicate, type RenderSection, diff --git a/packages/dashboard/src/customization/propertiesSections/aggregationSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/aggregationSettings/index.tsx index d6d646efd..39e4ed9e3 100644 --- a/packages/dashboard/src/customization/propertiesSections/aggregationSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/aggregationSettings/index.tsx @@ -3,16 +3,16 @@ import { type AggregateType } from '@aws-sdk/client-iotsitewise'; import { type FilterPredicate, type PropertyLens, -} from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; -import { type LineScatterChartWidget } from '~/customization/widgets/types'; -import { applyAggregationToQuery } from '~/customization/widgets/utils/assetQuery/applyAggregationToQuery'; -import { applyResolutionToQuery } from '~/customization/widgets/utils/assetQuery/applyResolutionToQuery'; -import { type DashboardWidget } from '~/types'; +} from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; +import { type LineScatterChartWidget } from '../../../customization/widgets/types'; +import { applyAggregationToQuery } from '../../../customization/widgets/utils/assetQuery/applyAggregationToQuery'; +import { applyResolutionToQuery } from '../../../customization/widgets/utils/assetQuery/applyResolutionToQuery'; +import { type DashboardWidget } from '../../../types'; import { AggregationAndResolutionSection } from '../lineAndScatterStyleSettings/aggregationAndResolutionSection'; import { type SelectProps } from '@cloudscape-design/components'; -import { isJust, maybeWithDefault } from '~/util/maybe'; +import { isJust, maybeWithDefault } from '../../../util/maybe'; import { AGGREGATE_ONLY_AGGREGATION_OPTIONS, AGGREGATE_ONLY_RESOLUTION_OPTIONS, diff --git a/packages/dashboard/src/customization/propertiesSections/axisSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/axisSettings/index.tsx index 1e191a05a..21ee76ed5 100644 --- a/packages/dashboard/src/customization/propertiesSections/axisSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/axisSettings/index.tsx @@ -1,11 +1,11 @@ -import { type PropertyLens } from '~/customization/propertiesSection'; +import { type PropertyLens } from '../../../customization/propertiesSection'; import { PropertiesSection, type PropertiesSectionProps, -} from '~/customization/propertiesSectionComponent'; -import { type AxisSettings } from '~/customization/settings'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/propertiesSectionComponent'; +import { type AxisSettings } from '../../../customization/settings'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import AxisSection from './section'; const axisWidgetTypes: readonly string[] = [ diff --git a/packages/dashboard/src/customization/propertiesSections/axisSettings/section.spec.tsx b/packages/dashboard/src/customization/propertiesSections/axisSettings/section.spec.tsx index 2d240e3b7..01fbe394c 100644 --- a/packages/dashboard/src/customization/propertiesSections/axisSettings/section.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/axisSettings/section.spec.tsx @@ -1,9 +1,9 @@ import { MOCK_LINE_CHART_WIDGET } from '../../../../testing/mocks'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import { DefaultDashboardMessages } from '~/messages'; +import { configureDashboardStore } from '../../../store'; +import { DefaultDashboardMessages } from '../../../messages'; import { render } from '@testing-library/react'; -import type { DashboardState } from '~/store/state'; +import type { DashboardState } from '../../../store/state'; import { AxisSettingsConfiguration } from './index'; const state: Partial = { diff --git a/packages/dashboard/src/customization/propertiesSections/components/dataStreamLabelComponent.tsx b/packages/dashboard/src/customization/propertiesSections/components/dataStreamLabelComponent.tsx index fa7a46338..1a1c09ef0 100644 --- a/packages/dashboard/src/customization/propertiesSections/components/dataStreamLabelComponent.tsx +++ b/packages/dashboard/src/customization/propertiesSections/components/dataStreamLabelComponent.tsx @@ -6,7 +6,7 @@ import { Input, ExpandableSection, } from '@cloudscape-design/components'; -import { type PropertySummary } from '~/hooks/useAssetDescriptionQueries'; +import { type PropertySummary } from '../../../hooks/useAssetDescriptionQueries'; type DataStreamTextBoxProps = { name?: string; diff --git a/packages/dashboard/src/customization/propertiesSections/components/legendDisplaySection.tsx b/packages/dashboard/src/customization/propertiesSections/components/legendDisplaySection.tsx index cce6bf151..e77debc49 100644 --- a/packages/dashboard/src/customization/propertiesSections/components/legendDisplaySection.tsx +++ b/packages/dashboard/src/customization/propertiesSections/components/legendDisplaySection.tsx @@ -3,7 +3,7 @@ import Checkbox, { } from '@cloudscape-design/components/checkbox'; import FormField from '@cloudscape-design/components/form-field'; import type { FC } from 'react'; -import { type ChartLegend } from '~/customization/widgets/types'; +import { type ChartLegend } from '../../../customization/widgets/types'; import { dropdownConsts } from '../constants'; type LegendDisplaySectionProps = { diff --git a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/gaugeDisplaySettings.tsx b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/gaugeDisplaySettings.tsx index 1883a3b35..acc80eec7 100644 --- a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/gaugeDisplaySettings.tsx +++ b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/gaugeDisplaySettings.tsx @@ -1,9 +1,9 @@ import { Box, Checkbox, FormField } from '@cloudscape-design/components'; import { StyledExpandableSection } from '../components/styledComponents'; -import { type PropertyLens } from '~/customization/propertiesSection'; -import { type GaugeProperties } from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { type GaugeProperties } from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; export const RenderGaugeDisplaySettingsSection = ({ useProperty, diff --git a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/index.tsx b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/index.tsx index dac75fe5d..03c70f4e6 100644 --- a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/index.tsx @@ -1,9 +1,9 @@ -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; import { type GaugeWidget, type KPIWidget, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; import { RenderGaugeDisplaySettingsSection } from './gaugeDisplaySettings'; import { RenderDisplaySettingsSection } from './kpiDisplaySettings'; diff --git a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/kpiDisplaySettings.tsx b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/kpiDisplaySettings.tsx index 1bc3b77a8..e7e11c060 100644 --- a/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/kpiDisplaySettings.tsx +++ b/packages/dashboard/src/customization/propertiesSections/displaySettingsSection/kpiDisplaySettings.tsx @@ -1,12 +1,12 @@ import { Box, Checkbox, FormField } from '@cloudscape-design/components'; import { StyledExpandableSection } from '../components/styledComponents'; -import { type PropertyLens } from '~/customization/propertiesSection'; +import { type PropertyLens } from '../../../customization/propertiesSection'; import { type KPIProperties, type StatusProperties, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; export const RenderDisplaySettingsSection = ({ useProperty, diff --git a/packages/dashboard/src/customization/propertiesSections/fontsSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/fontsSettings/index.tsx index 0131b940b..b27ade783 100644 --- a/packages/dashboard/src/customization/propertiesSections/fontsSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/fontsSettings/index.tsx @@ -11,14 +11,14 @@ import { type FilterPredicate, type PropertyLens, useSelection, -} from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; +} from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; import { type GaugeProperties, type GaugeWidget, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import { StyledExpandableSection } from '../components/styledComponents'; const widgetWithCustomDisplaySettings: readonly string[] = ['gauge']; diff --git a/packages/dashboard/src/customization/propertiesSections/formatDataSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/formatDataSettings/index.tsx index 93fd4a9dd..a269d1dd7 100644 --- a/packages/dashboard/src/customization/propertiesSections/formatDataSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/formatDataSettings/index.tsx @@ -1,9 +1,9 @@ -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; -import { type CommonChartProperties } from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; -import { nonNegative } from '~/util/number'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; +import { type CommonChartProperties } from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; +import { nonNegative } from '../../../util/number'; import { DecimalPlacesSection } from './section'; const isSettingsWidget = ( diff --git a/packages/dashboard/src/customization/propertiesSections/formatDataSettings/section.tsx b/packages/dashboard/src/customization/propertiesSections/formatDataSettings/section.tsx index d6cdb61cb..77f2a6d57 100644 --- a/packages/dashboard/src/customization/propertiesSections/formatDataSettings/section.tsx +++ b/packages/dashboard/src/customization/propertiesSections/formatDataSettings/section.tsx @@ -4,8 +4,8 @@ import './section.css'; import { spaceScaledS } from '@cloudscape-design/design-tokens'; import { isNumeric } from '@iot-app-kit/core'; -import DecimalPlaces from '~/components/decimalPlaces'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; +import DecimalPlaces from '../../../components/decimalPlaces'; +import { useSelectedWidgets } from '../../../hooks/useSelectedWidgets'; import { FormLabel, StyledExpandableSection, diff --git a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/legendSection.tsx b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/legendSection.tsx index 6c1f27b80..602b69ebb 100644 --- a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/legendSection.tsx +++ b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/legendSection.tsx @@ -4,7 +4,7 @@ import StyleExpandableSection from '../shared/styleExpandableSection/styleExpand import { AlignmentDropdown } from '../components/alignmentDropdown'; import Box from '@cloudscape-design/components/box'; import SpaceBetween from '@cloudscape-design/components/space-between'; -import { type ChartLegend } from '~/customization/widgets/types'; +import { type ChartLegend } from '../../../customization/widgets/types'; import { LegendDisplaySection } from '../components/legendDisplaySection'; type LegendSectionOptions = { diff --git a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.spec.tsx b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.spec.tsx index 0b038ec17..e0e679ed8 100644 --- a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.spec.tsx @@ -1,6 +1,6 @@ import { render } from '@testing-library/react'; -import { type ChartLegend } from '~/customization/widgets/types'; +import { type ChartLegend } from '../../../customization/widgets/types'; import { LegendSection } from './legendSection'; import { YAxisSection } from './yAxis'; diff --git a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.tsx b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.tsx index 1288bd055..0aa52bd52 100644 --- a/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.tsx +++ b/packages/dashboard/src/customization/propertiesSections/lineAndScatterStyleSettings/section.tsx @@ -1,14 +1,14 @@ import { getPlugin } from '@iot-app-kit/core'; -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; import { type ChartLegend, type LineScatterChartWidget, type LineStyles, type SymbolStyles, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import { YAxisSection } from '../yAxisSettings'; import { LegendSection } from './legendSection'; import { LineStyleSection } from './lineStyleSection'; diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/getPropertyDisplay.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/getPropertyDisplay.tsx index 48b36f866..a31ca9eaf 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/getPropertyDisplay.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/getPropertyDisplay.tsx @@ -1,7 +1,7 @@ import { type AssetSummary, type PropertySummary, -} from '~/hooks/useAssetDescriptionQueries'; +} from '../../../hooks/useAssetDescriptionQueries'; type DisplayType = 'property' | 'alarm' | 'none'; export const getPropertyDisplay = ( diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/handleDeleteAssetModelProperty.ts b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/handleDeleteAssetModelProperty.ts index d5cec6c60..e65971286 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/handleDeleteAssetModelProperty.ts +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/handleDeleteAssetModelProperty.ts @@ -1,5 +1,5 @@ import { type SiteWiseAssetModelQuery } from '@iot-app-kit/source-iotsitewise'; -import { type StyledAssetQuery } from '~/customization/widgets/types'; +import { type StyledAssetQuery } from '../../../customization/widgets/types'; export const handleRemoveAssetModelProperty = ( { assetModels }: SiteWiseAssetModelQuery, diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/index.tsx index 1f117c624..ae50883ea 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/index.tsx @@ -1,14 +1,14 @@ import { spaceScaledXs } from '@cloudscape-design/design-tokens'; -import { useClients } from '~/components/dashboard/clientContext'; -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; +import { useClients } from '../../../components/dashboard/clientContext'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; import { type LineScatterChartWidget, type QueryWidget, type TableWidget, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { type Maybe, maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { type Maybe, maybeWithDefault } from '../../../util/maybe'; import { GeneralPropertiesAlarmsSection } from './section'; import { StyledPropertiesAlarmsSection } from './styledSection'; diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/propertyComponent.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/propertyComponent.tsx index 253ccb8b3..3cfe644a7 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/propertyComponent.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/propertyComponent.tsx @@ -10,7 +10,7 @@ import type { StyleSettingsMap } from '@iot-app-kit/core'; import './propertyComponent.css'; import { getPropertyDisplay } from './getPropertyDisplay'; -import type { AssetSummary } from '~/hooks/useAssetDescriptionQueries'; +import type { AssetSummary } from '../../../hooks/useAssetDescriptionQueries'; import { DataStreamLabelComponent } from '../components/dataStreamLabelComponent'; import { spaceStaticXl } from '@cloudscape-design/design-tokens'; diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.test.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.test.tsx index d7d5b7850..ae0749959 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.test.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.test.tsx @@ -9,12 +9,12 @@ // import { MOCK_KPI_WIDGET } from '../../../../testing/mocks'; // import { configureDashboardStore } from '../../../store'; -// import { ClientContext } from '~/components/dashboard/clientContext'; +// import { ClientContext } from '../../../components/dashboard/clientContext'; // import { mockAssetDescription } from '../../../../testing/mocks/siteWiseSDK'; // import type { QueryWidget } from '../../widgets/types'; // import type { DashboardState } from '../../../store/state'; -// import { DashboardIotSiteWiseClients } from '~/types'; +// import { DashboardIotSiteWiseClients } from '../../../types'; // import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; // import { PropertiesAndAlarmsSettingsConfiguration } from './index'; diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.tsx index 8433d40ae..8c371aa28 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/section.tsx @@ -2,16 +2,16 @@ import { type FC } from 'react'; import { type AssetSummary, useAssetDescriptionMapQuery, -} from '~/hooks/useAssetDescriptionQueries'; +} from '../../../hooks/useAssetDescriptionQueries'; import { PropertyComponent } from './propertyComponent'; -import { isJust } from '~/util/maybe'; +import { isJust } from '../../../util/maybe'; import { SelectOneWidget } from '../shared/selectOneWidget'; import SpaceBetween from '@cloudscape-design/components/space-between'; import Box from '@cloudscape-design/components/box'; import { type PropertiesAlarmsSectionProps } from './sectionTypes'; import { defaultOnDeleteQuery } from './onDeleteProperty'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; -import { useAssetModel } from '~/hooks/useAssetModel/useAssetModel'; +import { type IoTSiteWiseDataStreamQuery } from '../../../types'; +import { useAssetModel } from '../../../hooks/useAssetModel/useAssetModel'; import { handleRemoveAssetModelProperty } from './handleDeleteAssetModelProperty'; import { handleRemoveAlarm, diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/sectionTypes.ts b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/sectionTypes.ts index a068cd48b..a946a9d75 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/sectionTypes.ts +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/sectionTypes.ts @@ -2,10 +2,10 @@ import type { StyledAssetQuery, StyledSiteWiseQueryConfig, SiteWiseQueryConfig, -} from '~/customization/widgets/types'; -import { type Maybe } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type Maybe } from '../../../util/maybe'; import type { StyleSettingsMap } from '@iot-app-kit/core'; -import type { IoTSiteWiseDataStreamQuery } from '~/types'; +import type { IoTSiteWiseDataStreamQuery } from '../../../types'; import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; export type OnDeleteAssetQuery = (params: { diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledPropertyComponent.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledPropertyComponent.tsx index ddbe04460..57a85d813 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledPropertyComponent.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledPropertyComponent.tsx @@ -21,9 +21,9 @@ import { type LineStyles, type StyledAssetPropertyQuery, type YAxisOptions, -} from '~/customization/widgets/types'; +} from '../../../customization/widgets/types'; import { getPropertyDisplay } from './getPropertyDisplay'; -import type { AssetSummary } from '~/hooks/useAssetDescriptionQueries'; +import type { AssetSummary } from '../../../hooks/useAssetDescriptionQueries'; import { Tooltip } from '@iot-app-kit/react-components'; import { LineTypeSection } from '../components/lineTypeDropdown'; import { LineStyleDropdown } from '../components/lineStyleDropdown'; diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledSection.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledSection.tsx index cba879753..7d52186fa 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledSection.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesAndAlarmsSettings/styledSection.tsx @@ -2,16 +2,16 @@ import { type FC } from 'react'; import { type AssetSummary, useAssetDescriptionMapQuery, -} from '~/hooks/useAssetDescriptionQueries'; -import { isJust } from '~/util/maybe'; +} from '../../../hooks/useAssetDescriptionQueries'; +import { isJust } from '../../../util/maybe'; import { SelectOneWidget } from '../shared/selectOneWidget'; import SpaceBetween from '@cloudscape-design/components/space-between'; import { StyledPropertyComponent } from './styledPropertyComponent'; import { Box } from '@cloudscape-design/components'; import { type StyledPropertiesAlarmsSectionProps } from './sectionTypes'; import { defaultOnDeleteQuery } from './onDeleteProperty'; -import { type StyledAssetQuery } from '~/customization/widgets/types'; -import { useAssetModel } from '~/hooks/useAssetModel/useAssetModel'; +import { type StyledAssetQuery } from '../../../customization/widgets/types'; +import { useAssetModel } from '../../../hooks/useAssetModel/useAssetModel'; import { handleDeleteAssetModelProperty } from './handleDeleteAssetModelProperty'; import { handleRemoveAlarm, diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.spec.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.spec.tsx index 036c7eeb7..6f82caa3d 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.spec.tsx @@ -1,15 +1,4 @@ import { QueryClient } from '@tanstack/react-query'; - -vi.mock('../../data/query-client', () => ({ - queryClient: new QueryClient({ - defaultOptions: { - queries: { - retry: false, - }, - }, - }), -})); - import { IoTSiteWise, type IoTSiteWiseClient, @@ -26,23 +15,32 @@ import { } from '@testing-library/react'; import createWrapper from '@cloudscape-design/components/test-utils/dom'; import { Provider } from 'react-redux'; - import { PropertiesPanel } from './panel'; -import { configureDashboardStore } from '~/store'; -import { type DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import { type DashboardState } from '../../../store/state'; import { MOCK_KPI_WIDGET, MOCK_LINE_CHART_WIDGET, } from '../../../../testing/mocks'; import { mockAssetDescription } from '../../../../testing/mocks/siteWiseSDK'; import { type SiteWiseAssetQuery } from '@iot-app-kit/source-iotsitewise'; -import { type QueryWidget } from '~/customization/widgets/types'; -import { type DashboardIotSiteWiseClients } from '~/types'; +import { type QueryWidget } from '../../../customization/widgets/types'; +import { type DashboardIotSiteWiseClients } from '../../../types'; import { createMockIoTEventsSDK, createMockSiteWiseSDK, } from '@iot-app-kit/testing-util'; -import { ClientContext } from '~/components/dashboard/clientContext'; +import { ClientContext } from '../../../components/dashboard/clientContext'; + +vi.mock('../../data/query-client', () => ({ + queryClient: new QueryClient({ + defaultOptions: { + queries: { + retry: false, + }, + }, + }), +})); const MockAssetQuery: SiteWiseAssetQuery['assets'][number] = { assetId: 'mock-id', diff --git a/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.tsx b/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.tsx index bdbf0a378..d3a40ea08 100644 --- a/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.tsx +++ b/packages/dashboard/src/customization/propertiesSections/propertiesPanel/panel.tsx @@ -7,8 +7,8 @@ import { PropertiesPanelEmpty } from './emptyPanel'; import { StylesSection } from './styleTab'; import { PropertiesAndAlarmsSettingsConfiguration } from '../propertiesAndAlarmsSettings'; import { ThresholdSettingsConfiguration } from '../thresholdSettings'; -import { isJust } from '~/util/maybe'; -import { useSelectedWidgets } from '~/hooks/useSelectedWidgets'; +import { isJust } from '../../../util/maybe'; +import { useSelectedWidgets } from '../../../hooks/useSelectedWidgets'; /** Panel element responsible for rendering chart configuration sections. */ export const PropertiesPanel = () => { diff --git a/packages/dashboard/src/customization/propertiesSections/textSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/textSettings/index.tsx index 9bf4434ec..b23b81e83 100644 --- a/packages/dashboard/src/customization/propertiesSections/textSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/textSettings/index.tsx @@ -1,8 +1,8 @@ -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; -import { type TextWidget } from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; +import { type TextWidget } from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import LinkSettings from './link'; import TextSettings from './text'; diff --git a/packages/dashboard/src/customization/propertiesSections/textSettings/link.spec.tsx b/packages/dashboard/src/customization/propertiesSections/textSettings/link.spec.tsx index 98ea002c1..e22538ae8 100644 --- a/packages/dashboard/src/customization/propertiesSections/textSettings/link.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/textSettings/link.spec.tsx @@ -1,9 +1,9 @@ import { MOCK_TEXT_LINK_WIDGET } from '../../../../testing/mocks'; import { render } from '@testing-library/react'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import { DefaultDashboardMessages } from '~/messages'; -import type { DashboardState } from '~/store/state'; +import { configureDashboardStore } from '../../../store'; +import { DefaultDashboardMessages } from '../../../messages'; +import type { DashboardState } from '../../../store/state'; import { TextSettingsConfiguration } from './index'; const state: Partial = { diff --git a/packages/dashboard/src/customization/propertiesSections/textSettings/link.tsx b/packages/dashboard/src/customization/propertiesSections/textSettings/link.tsx index 16e191207..4b9d8f57e 100644 --- a/packages/dashboard/src/customization/propertiesSections/textSettings/link.tsx +++ b/packages/dashboard/src/customization/propertiesSections/textSettings/link.tsx @@ -6,7 +6,7 @@ import { Toggle, } from '@cloudscape-design/components'; import type { FC } from 'react'; -import type { TextWidget } from '~/customization/widgets/types'; +import type { TextWidget } from '../../../customization/widgets/types'; import * as awsui from '@cloudscape-design/design-tokens'; diff --git a/packages/dashboard/src/customization/propertiesSections/textSettings/text.spec.tsx b/packages/dashboard/src/customization/propertiesSections/textSettings/text.spec.tsx index 5c96da49d..dacbf990b 100644 --- a/packages/dashboard/src/customization/propertiesSections/textSettings/text.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/textSettings/text.spec.tsx @@ -1,9 +1,9 @@ import { MOCK_TEXT_WIDGET } from '../../../../testing/mocks'; import { render, screen } from '@testing-library/react'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import type { DashboardState } from '~/store/state'; -import type { TextWidget } from '~/customization/widgets/types'; +import { configureDashboardStore } from '../../../store'; +import type { DashboardState } from '../../../store/state'; +import type { TextWidget } from '../../../customization/widgets/types'; import { TextSettingsConfiguration } from './index'; const widget: TextWidget = { diff --git a/packages/dashboard/src/customization/propertiesSections/textSettings/text.tsx b/packages/dashboard/src/customization/propertiesSections/textSettings/text.tsx index 669cce6c8..5190c819b 100644 --- a/packages/dashboard/src/customization/propertiesSections/textSettings/text.tsx +++ b/packages/dashboard/src/customization/propertiesSections/textSettings/text.tsx @@ -17,7 +17,7 @@ import { } from 'react'; import ColorPicker from '../shared/colorPicker'; -import type { TextWidget } from '~/customization/widgets/types'; +import type { TextWidget } from '../../../customization/widgets/types'; import { StyledExpandableSection } from '../components/styledComponents'; import './text.css'; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.spec.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.spec.tsx index d4f8b67fc..9c48c073d 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.spec.tsx @@ -1,11 +1,11 @@ import { MOCK_KPI_WIDGET } from '../../../../testing/mocks'; import { COMPARISON_OPERATOR } from '@iot-app-kit/core'; import { Provider } from 'react-redux'; -import { configureDashboardStore } from '~/store'; +import { configureDashboardStore } from '../../../store'; import { render, screen } from '@testing-library/react'; import { ThresholdComponent } from './thresholdComponent'; -import type { DashboardState } from '~/store/state'; -import type { ThresholdWithId } from '~/customization/settings'; +import type { DashboardState } from '../../../store/state'; +import type { ThresholdWithId } from '../../../customization/settings'; import { ThresholdSettingsConfiguration, type ThresholdsWidget } from './index'; import ue from '@testing-library/user-event'; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.tsx index ce77bc892..44da14672 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/index.tsx @@ -3,11 +3,11 @@ import { type ThresholdSettings, } from '@iot-app-kit/core'; -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; -import { type ThresholdWithId } from '~/customization/settings'; -import { type DashboardWidget } from '~/types'; -import { type Maybe, maybeWithDefault } from '~/util/maybe'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; +import { type ThresholdWithId } from '../../../customization/settings'; +import { type DashboardWidget } from '../../../types'; +import { type Maybe, maybeWithDefault } from '../../../util/maybe'; import { getComparisonOperators } from './comparisonOperators'; import ThresholdsSection from './thresholdsSection'; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdComponent.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdComponent.tsx index aaa35cc0f..496b6ba3e 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdComponent.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdComponent.tsx @@ -21,7 +21,7 @@ import { OPS_ALLOWED_WITH_STRING, } from './defaultValues'; import ColorPicker from '../shared/colorPicker'; -import type { ThresholdWithId } from '~/customization/settings'; +import type { ThresholdWithId } from '../../../customization/settings'; import * as awsui from '@cloudscape-design/design-tokens'; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.spec.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.spec.tsx index 74b03e27b..a28d1a260 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.spec.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.spec.tsx @@ -1,7 +1,7 @@ import { render } from '@testing-library/react'; import { COMPARISON_OPERATOR, type StyledThreshold } from '@iot-app-kit/core'; import { ThresholdsList } from './thresholdsList'; -import { type ThresholdWithId } from '~/customization/settings'; +import { type ThresholdWithId } from '../../../customization/settings'; const comparisonOperator1 = COMPARISON_OPERATOR.EQ; const mockComparisonOperator1 = { label: '=', value: comparisonOperator1 }; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.tsx index 58ea0ad77..67a4d9544 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsList.tsx @@ -1,7 +1,7 @@ import { Box, SpaceBetween } from '@cloudscape-design/components'; import { type StyledThreshold } from '@iot-app-kit/core'; -import { type ThresholdWithId } from '~/customization/settings'; +import { type ThresholdWithId } from '../../../customization/settings'; import { type ComparisonOperators } from './comparisonOperators'; import { ThresholdComponent } from './thresholdComponent'; diff --git a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsSection.tsx b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsSection.tsx index 834b4b08f..9f8db8d70 100644 --- a/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsSection.tsx +++ b/packages/dashboard/src/customization/propertiesSections/thresholdSettings/thresholdsSection.tsx @@ -13,8 +13,8 @@ import { } from '@iot-app-kit/core'; import { nanoid } from '@reduxjs/toolkit'; import { type FC, useState } from 'react'; -import type { ThresholdWithId } from '~/customization/settings'; -import { type Maybe, maybeWithDefault } from '~/util/maybe'; +import type { ThresholdWithId } from '../../../customization/settings'; +import { type Maybe, maybeWithDefault } from '../../../util/maybe'; import { StyledExpandableSection } from '../components/styledComponents'; import '../propertiesSectionsStyle.css'; import { SelectOneWidget } from '../shared/selectOneWidget'; diff --git a/packages/dashboard/src/customization/propertiesSections/widgetTitle/index.tsx b/packages/dashboard/src/customization/propertiesSections/widgetTitle/index.tsx index b860e0893..70ac7b9cd 100644 --- a/packages/dashboard/src/customization/propertiesSections/widgetTitle/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/widgetTitle/index.tsx @@ -1,9 +1,9 @@ import SpaceBetween from '@cloudscape-design/components/space-between'; -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; -import type { CommonChartProperties } from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; +import type { CommonChartProperties } from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import { TitleSection } from './titleSection'; const isWidgetTitle = ( diff --git a/packages/dashboard/src/customization/propertiesSections/widgetTitle/widgetTitle.test.tsx b/packages/dashboard/src/customization/propertiesSections/widgetTitle/widgetTitle.test.tsx index d71ec8710..d85009790 100644 --- a/packages/dashboard/src/customization/propertiesSections/widgetTitle/widgetTitle.test.tsx +++ b/packages/dashboard/src/customization/propertiesSections/widgetTitle/widgetTitle.test.tsx @@ -5,8 +5,8 @@ import { queryByLabelText, render, } from '@testing-library/react'; -import { configureDashboardStore } from '~/store'; -import { type DashboardWidget } from '~/types'; +import { configureDashboardStore } from '../../../store'; +import { type DashboardWidget } from '../../../types'; import { WidgetTitle } from './index'; import { MOCK_LINE_CHART_WIDGET, diff --git a/packages/dashboard/src/customization/propertiesSections/yAxisSettingsSection/index.tsx b/packages/dashboard/src/customization/propertiesSections/yAxisSettingsSection/index.tsx index 1133264b8..820f30ad7 100644 --- a/packages/dashboard/src/customization/propertiesSections/yAxisSettingsSection/index.tsx +++ b/packages/dashboard/src/customization/propertiesSections/yAxisSettingsSection/index.tsx @@ -1,11 +1,11 @@ -import { type PropertyLens } from '~/customization/propertiesSection'; -import { PropertiesSection } from '~/customization/propertiesSectionComponent'; +import { type PropertyLens } from '../../../customization/propertiesSection'; +import { PropertiesSection } from '../../../customization/propertiesSectionComponent'; import { type GaugeProperties, type GaugeWidget, -} from '~/customization/widgets/types'; -import { type DashboardWidget } from '~/types'; -import { maybeWithDefault } from '~/util/maybe'; +} from '../../../customization/widgets/types'; +import { type DashboardWidget } from '../../../types'; +import { maybeWithDefault } from '../../../util/maybe'; import { YAxisSection } from '../yAxisSettings'; const widgetWithCustomFontsSettings: readonly string[] = ['gauge']; diff --git a/packages/dashboard/src/customization/widgetPropertiesGeneratorMap.ts b/packages/dashboard/src/customization/widgetPropertiesGeneratorMap.ts index e48b692d0..4f8f3f58a 100644 --- a/packages/dashboard/src/customization/widgetPropertiesGeneratorMap.ts +++ b/packages/dashboard/src/customization/widgetPropertiesGeneratorMap.ts @@ -1,4 +1,4 @@ -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../types'; /** * map of widget type to a generator func to create properties when this widget is dropped into the grid diff --git a/packages/dashboard/src/customization/widgets/barChart/component.tsx b/packages/dashboard/src/customization/widgets/barChart/component.tsx index a1d36bc24..1605b1a6a 100644 --- a/packages/dashboard/src/customization/widgets/barChart/component.tsx +++ b/packages/dashboard/src/customization/widgets/barChart/component.tsx @@ -1,10 +1,10 @@ import { BarChart, useViewport } from '@iot-app-kit/react-components'; import { useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import WidgetTile from '~/components/widgets/tile'; -import { aggregateToString } from '~/customization/propertiesSections/aggregationSettings/helpers'; -import { useChartSize } from '~/hooks/useChartSize'; -import type { DashboardState } from '~/store/state'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import WidgetTile from '../../../components/widgets/tile'; +import { aggregateToString } from '../../../customization/propertiesSections/aggregationSettings/helpers'; +import { useChartSize } from '../../../hooks/useChartSize'; +import type { DashboardState } from '../../../store/state'; import type { BarChartWidget } from '.././types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; import { getAggregation } from '../utils/widgetAggregationUtils'; diff --git a/packages/dashboard/src/customization/widgets/barChart/plugin.tsx b/packages/dashboard/src/customization/widgets/barChart/plugin.tsx index 3e8e6630c..dc3e1a8ea 100644 --- a/packages/dashboard/src/customization/widgets/barChart/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/barChart/plugin.tsx @@ -1,6 +1,6 @@ import BarChartWidgetComponent from './component'; import BarIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { BarChartWidget } from '../types'; import { WIDGET_INITIAL_HEIGHT, WIDGET_INITIAL_WIDTH } from '../constants'; diff --git a/packages/dashboard/src/customization/widgets/components/no-chart-data.spec.tsx b/packages/dashboard/src/customization/widgets/components/no-chart-data.spec.tsx index ab60c4237..61471fb91 100644 --- a/packages/dashboard/src/customization/widgets/components/no-chart-data.spec.tsx +++ b/packages/dashboard/src/customization/widgets/components/no-chart-data.spec.tsx @@ -2,8 +2,8 @@ import { Provider } from 'react-redux'; import { render } from '@testing-library/react'; import NoChartData from './no-chart-data'; import { default as lineSvgDark } from '../lineScatterChart/line-dark.svg'; -import WidgetTile from '~/components/widgets/tile/tile'; -import { configureDashboardStore } from '~/store'; +import WidgetTile from '../../../components/widgets/tile/tile'; +import { configureDashboardStore } from '../../../store'; import { MOCK_LINE_CHART_WIDGET, MOCK_TEXT_WIDGET, diff --git a/packages/dashboard/src/customization/widgets/gauge/component.tsx b/packages/dashboard/src/customization/widgets/gauge/component.tsx index c196c6b0d..b10c2d228 100644 --- a/packages/dashboard/src/customization/widgets/gauge/component.tsx +++ b/packages/dashboard/src/customization/widgets/gauge/component.tsx @@ -2,11 +2,11 @@ import { Box } from '@cloudscape-design/components'; import { Gauge, useViewport } from '@iot-app-kit/react-components'; import pickBy from 'lodash-es/pickBy'; import { useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import WidgetTile from '~/components/widgets/tile'; -import { useChartSize } from '~/hooks/useChartSize'; -import type { DashboardState } from '~/store/state'; -import { isDefined } from '~/util/isDefined'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import WidgetTile from '../../../components/widgets/tile'; +import { useChartSize } from '../../../hooks/useChartSize'; +import type { DashboardState } from '../../../store/state'; +import { isDefined } from '../../../util/isDefined'; import type { GaugeWidget } from '../types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; import './component.css'; diff --git a/packages/dashboard/src/customization/widgets/gauge/plugin.tsx b/packages/dashboard/src/customization/widgets/gauge/plugin.tsx index c29d29464..7adb12e10 100644 --- a/packages/dashboard/src/customization/widgets/gauge/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/gauge/plugin.tsx @@ -1,6 +1,6 @@ import GaugeWidgetComponent from './component'; import GaugeIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { GaugeWidget } from '../types'; import { GAUGE_WIDGET_INITIAL_HEIGHT, diff --git a/packages/dashboard/src/customization/widgets/kpi/component.tsx b/packages/dashboard/src/customization/widgets/kpi/component.tsx index b70174c48..e9d3ac233 100644 --- a/packages/dashboard/src/customization/widgets/kpi/component.tsx +++ b/packages/dashboard/src/customization/widgets/kpi/component.tsx @@ -2,15 +2,15 @@ import { Box } from '@cloudscape-design/components'; import { KPI, useViewport } from '@iot-app-kit/react-components'; import pickBy from 'lodash-es/pickBy'; import { useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import type { DashboardState } from '~/store/state'; -import { isDefined } from '~/util/isDefined'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import type { DashboardState } from '../../../store/state'; +import { isDefined } from '../../../util/isDefined'; import type { KPIWidget } from '../types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; import { getAggregation } from '../utils/widgetAggregationUtils'; -import WidgetTile from '~/components/widgets/tile'; -import { aggregateToString } from '~/customization/propertiesSections/aggregationSettings/helpers'; +import WidgetTile from '../../../components/widgets/tile'; +import { aggregateToString } from '../../../customization/propertiesSections/aggregationSettings/helpers'; import './component.css'; const KPIWidgetComponent: React.FC = (widget) => { diff --git a/packages/dashboard/src/customization/widgets/kpi/plugin.tsx b/packages/dashboard/src/customization/widgets/kpi/plugin.tsx index 8c24c2a4b..40b7449e3 100644 --- a/packages/dashboard/src/customization/widgets/kpi/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/kpi/plugin.tsx @@ -1,6 +1,6 @@ import KPIWidgetComponent from './component'; import KPIIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { KPIWidget } from '../types'; import { KPI_WIDGET_INITIAL_HEIGHT, diff --git a/packages/dashboard/src/customization/widgets/lineScatterChart/component.tsx b/packages/dashboard/src/customization/widgets/lineScatterChart/component.tsx index 5947e15a1..27ba9b998 100644 --- a/packages/dashboard/src/customization/widgets/lineScatterChart/component.tsx +++ b/packages/dashboard/src/customization/widgets/lineScatterChart/component.tsx @@ -6,13 +6,13 @@ import { } from '@iot-app-kit/react-components'; import { useMemo } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import WidgetTile from '~/components/widgets/tile/tile'; -import { aggregateToString } from '~/customization/propertiesSections/aggregationSettings/helpers'; -import { useChartSize } from '~/hooks/useChartSize'; -import { onUpdateWidgetsAction } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import WidgetTile from '../../../components/widgets/tile/tile'; +import { aggregateToString } from '../../../customization/propertiesSections/aggregationSettings/helpers'; +import { useChartSize } from '../../../hooks/useChartSize'; +import { onUpdateWidgetsAction } from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; +import { type IoTSiteWiseDataStreamQuery } from '../../../types'; import NoChartData from '../components/no-chart-data'; import type { AssetPropertyStyles, diff --git a/packages/dashboard/src/customization/widgets/lineScatterChart/plugin.tsx b/packages/dashboard/src/customization/widgets/lineScatterChart/plugin.tsx index 762a033a5..5e0830476 100644 --- a/packages/dashboard/src/customization/widgets/lineScatterChart/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/lineScatterChart/plugin.tsx @@ -1,6 +1,6 @@ import LineScatterChartWidgetComponent from './component'; import LineIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { LineScatterChartWidget } from '../types'; import { WIDGET_INITIAL_HEIGHT, WIDGET_INITIAL_WIDTH } from '../constants'; diff --git a/packages/dashboard/src/customization/widgets/status-timeline/statusTimeline.tsx b/packages/dashboard/src/customization/widgets/status-timeline/statusTimeline.tsx index 966dc3f96..7920ee871 100644 --- a/packages/dashboard/src/customization/widgets/status-timeline/statusTimeline.tsx +++ b/packages/dashboard/src/customization/widgets/status-timeline/statusTimeline.tsx @@ -1,9 +1,9 @@ import { StatusTimeline, useViewport } from '@iot-app-kit/react-components'; import { useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import WidgetTile from '~/components/widgets/tile'; -import { aggregateToString } from '~/customization/propertiesSections/aggregationSettings/helpers'; -import { type DashboardState } from '~/store/state'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import WidgetTile from '../../../components/widgets/tile'; +import { aggregateToString } from '../../../customization/propertiesSections/aggregationSettings/helpers'; +import { type DashboardState } from '../../../store/state'; import NoChartData from '../components/no-chart-data'; import { type StatusTimelineWidget } from '../types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; diff --git a/packages/dashboard/src/customization/widgets/status-timeline/statusTimelinePlugin.tsx b/packages/dashboard/src/customization/widgets/status-timeline/statusTimelinePlugin.tsx index b912b4383..bfe12b1a3 100644 --- a/packages/dashboard/src/customization/widgets/status-timeline/statusTimelinePlugin.tsx +++ b/packages/dashboard/src/customization/widgets/status-timeline/statusTimelinePlugin.tsx @@ -1,4 +1,4 @@ -import { type DashboardPlugin } from '~/customization/api'; +import { type DashboardPlugin } from '../../../customization/api'; import { type StatusTimelineWidget } from '../types'; import StatusTimelineWidgetComponent from './statusTimeline'; import StatusTimelineIcon from './statusTimelineIcon'; diff --git a/packages/dashboard/src/customization/widgets/status/component.tsx b/packages/dashboard/src/customization/widgets/status/component.tsx index 035571237..dc615254a 100644 --- a/packages/dashboard/src/customization/widgets/status/component.tsx +++ b/packages/dashboard/src/customization/widgets/status/component.tsx @@ -2,11 +2,11 @@ import { Box } from '@cloudscape-design/components'; import { Status, useViewport } from '@iot-app-kit/react-components'; import pickBy from 'lodash-es/pickBy'; import { useSelector } from 'react-redux'; -import { useQueries } from '~/components/dashboard/queryContext'; -import WidgetTile from '~/components/widgets/tile/tile'; -import { aggregateToString } from '~/customization/propertiesSections/aggregationSettings/helpers'; -import type { DashboardState } from '~/store/state'; -import { isDefined } from '~/util/isDefined'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import WidgetTile from '../../../components/widgets/tile/tile'; +import { aggregateToString } from '../../../customization/propertiesSections/aggregationSettings/helpers'; +import type { DashboardState } from '../../../store/state'; +import { isDefined } from '../../../util/isDefined'; import type { StatusWidget } from '../types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; import { getAggregation } from '../utils/widgetAggregationUtils'; diff --git a/packages/dashboard/src/customization/widgets/status/plugin.tsx b/packages/dashboard/src/customization/widgets/status/plugin.tsx index 478cc81d3..0755458b5 100644 --- a/packages/dashboard/src/customization/widgets/status/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/status/plugin.tsx @@ -1,5 +1,5 @@ import StatusWidgetComponent from './component'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { StatusWidget } from '../types'; import { STATUS_WIDGET_INITIAL_HEIGHT, diff --git a/packages/dashboard/src/customization/widgets/table/component.tsx b/packages/dashboard/src/customization/widgets/table/component.tsx index 6c4161d03..5a57c1cd0 100644 --- a/packages/dashboard/src/customization/widgets/table/component.tsx +++ b/packages/dashboard/src/customization/widgets/table/component.tsx @@ -12,14 +12,14 @@ import { import EmptyTableComponent from './emptyTableComponent'; -import { useQueries } from '~/components/dashboard/queryContext'; -import { useChartSize } from '~/hooks/useChartSize'; -import type { DashboardState } from '~/store/state'; +import { useQueries } from '../../../components/dashboard/queryContext'; +import { useChartSize } from '../../../hooks/useChartSize'; +import type { DashboardState } from '../../../store/state'; import type { TableWidget } from '../types'; import { createWidgetRenderKey } from '../utils/createWidgetRenderKey'; -import WidgetTile from '~/components/widgets/tile/tile'; -import { onUpdateWidgetsAction } from '~/store/actions'; +import WidgetTile from '../../../components/widgets/tile/tile'; +import { onUpdateWidgetsAction } from '../../../store/actions'; import { TABLE_OVERFLOW_HEIGHT, TABLE_WIDGET_MAX_HEIGHT } from '../constants'; import { assetModelQueryToSiteWiseAssetQuery } from '../utils/assetModelQueryToAssetQuery'; import { diff --git a/packages/dashboard/src/customization/widgets/table/plugin.tsx b/packages/dashboard/src/customization/widgets/table/plugin.tsx index 30e42f290..81b89dfde 100644 --- a/packages/dashboard/src/customization/widgets/table/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/table/plugin.tsx @@ -1,6 +1,6 @@ import TableWidgetComponent from './component'; import TableIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { TableWidget } from '../types'; import { TABLE_WIDGET_INITIAL_HEIGHT, diff --git a/packages/dashboard/src/customization/widgets/table/useTableItems.ts b/packages/dashboard/src/customization/widgets/table/useTableItems.ts index 5da1dc429..63e63037d 100644 --- a/packages/dashboard/src/customization/widgets/table/useTableItems.ts +++ b/packages/dashboard/src/customization/widgets/table/useTableItems.ts @@ -6,9 +6,9 @@ import { type StyleSettingsMap } from '@iot-app-kit/core'; import { toId } from '@iot-app-kit/source-iotsitewise'; import { useQueries, type QueryFunctionContext } from '@tanstack/react-query'; import invariant from 'tiny-invariant'; -import { useClients } from '~/components/dashboard/clientContext'; +import { useClients } from '../../../components/dashboard/clientContext'; import { type SiteWiseQueryConfig } from '../types'; -import { queryClient } from '~/data/query-client'; +import { queryClient } from '../../../data/query-client'; export const useTableItems = ( query: SiteWiseQueryConfig['query'], diff --git a/packages/dashboard/src/customization/widgets/text/component.css b/packages/dashboard/src/customization/widgets/text/component.css index df3b97230..32d929dd0 100644 --- a/packages/dashboard/src/customization/widgets/text/component.css +++ b/packages/dashboard/src/customization/widgets/text/component.css @@ -1,4 +1,4 @@ -@import "../../../styles/variables.css"; +@import url("../../../styles/variables.css"); .text-widget { margin: 0; diff --git a/packages/dashboard/src/customization/widgets/text/component.tsx b/packages/dashboard/src/customization/widgets/text/component.tsx index c6c4f4985..183189d1b 100644 --- a/packages/dashboard/src/customization/widgets/text/component.tsx +++ b/packages/dashboard/src/customization/widgets/text/component.tsx @@ -1,8 +1,8 @@ import { useCallback, useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; -import { useIsSelected } from '~/customization/hooks/useIsSelected'; -import { onChangeDashboardGridEnabledAction } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; +import { useIsSelected } from '../../../customization/hooks/useIsSelected'; +import { onChangeDashboardGridEnabledAction } from '../../../store/actions'; +import type { DashboardState } from '../../../store/state'; import type { TextWidget } from '../types'; import './component.css'; import TextLink from './link'; diff --git a/packages/dashboard/src/customization/widgets/text/plugin.tsx b/packages/dashboard/src/customization/widgets/text/plugin.tsx index 3d6cbe620..39b86d4b4 100644 --- a/packages/dashboard/src/customization/widgets/text/plugin.tsx +++ b/packages/dashboard/src/customization/widgets/text/plugin.tsx @@ -1,6 +1,6 @@ import TextWidgetComponent from './component'; import TextIcon from './icon'; -import type { DashboardPlugin } from '~/customization/api'; +import type { DashboardPlugin } from '../../../customization/api'; import type { TextWidget } from '../types'; import { TEXT_WIDGET_INITIAL_HEIGHT, diff --git a/packages/dashboard/src/customization/widgets/text/styledText/defaultFontSettings.ts b/packages/dashboard/src/customization/widgets/text/styledText/defaultFontSettings.ts index b26f06752..06dce7583 100644 --- a/packages/dashboard/src/customization/widgets/text/styledText/defaultFontSettings.ts +++ b/packages/dashboard/src/customization/widgets/text/styledText/defaultFontSettings.ts @@ -1,5 +1,5 @@ import { colorTextBodyDefault } from '@cloudscape-design/design-tokens'; -import type { ComplexFontSettings } from '~/customization/settings'; +import type { ComplexFontSettings } from '../../../../customization/settings'; export const defaultFontSettings: ComplexFontSettings = { fontSize: 16, diff --git a/packages/dashboard/src/customization/widgets/text/styledText/editableText.tsx b/packages/dashboard/src/customization/widgets/text/styledText/editableText.tsx index b87a62794..39782993e 100644 --- a/packages/dashboard/src/customization/widgets/text/styledText/editableText.tsx +++ b/packages/dashboard/src/customization/widgets/text/styledText/editableText.tsx @@ -1,6 +1,6 @@ import { useEffect, useState, type PointerEventHandler } from 'react'; -import { useIsSelected } from '~/customization/hooks/useIsSelected'; -import { MouseClick } from '~/types'; +import { useIsSelected } from '../../../../customization/hooks/useIsSelected'; +import { MouseClick } from '../../../../types'; import type { TextWidget } from '../../types'; import StyledText from './index'; diff --git a/packages/dashboard/src/customization/widgets/text/styledText/index.css b/packages/dashboard/src/customization/widgets/text/styledText/index.css index 924499baf..0a281a82c 100644 --- a/packages/dashboard/src/customization/widgets/text/styledText/index.css +++ b/packages/dashboard/src/customization/widgets/text/styledText/index.css @@ -1,4 +1,4 @@ -@import "../../../../styles/variables.css"; +@import url("../../../../styles/variables.css"); .text-widget { margin: 0; diff --git a/packages/dashboard/src/customization/widgets/text/styledText/textArea.css b/packages/dashboard/src/customization/widgets/text/styledText/textArea.css index dc4be7ba2..5e8f55a4a 100644 --- a/packages/dashboard/src/customization/widgets/text/styledText/textArea.css +++ b/packages/dashboard/src/customization/widgets/text/styledText/textArea.css @@ -1,4 +1,4 @@ -@import "../../../../styles/variables.css"; +@import url("../../../../styles/variables.css"); .text-widget { margin: 0; diff --git a/packages/dashboard/src/customization/widgets/text/styledText/textArea.tsx b/packages/dashboard/src/customization/widgets/text/styledText/textArea.tsx index c3210879b..848ed4e6c 100644 --- a/packages/dashboard/src/customization/widgets/text/styledText/textArea.tsx +++ b/packages/dashboard/src/customization/widgets/text/styledText/textArea.tsx @@ -1,8 +1,8 @@ import type { CSSProperties } from 'react'; import { useEffect } from 'react'; -import { useWidgetActions } from '~/customization/hooks/useWidgetActions'; -import { useClickOutside } from '~/hooks/useClickOutside'; -import { useKeyPress } from '~/hooks/useKeyPress'; +import { useWidgetActions } from '../../../../customization/hooks/useWidgetActions'; +import { useClickOutside } from '../../../../hooks/useClickOutside'; +import { useKeyPress } from '../../../../hooks/useKeyPress'; import { defaultFontSettings } from './defaultFontSettings'; import { diff --git a/packages/dashboard/src/customization/widgets/types.ts b/packages/dashboard/src/customization/widgets/types.ts index 25c7a5a4a..82b5ce259 100644 --- a/packages/dashboard/src/customization/widgets/types.ts +++ b/packages/dashboard/src/customization/widgets/types.ts @@ -11,7 +11,7 @@ import type { SiteWiseAlarmQuery, SiteWiseAlarmAssetModelQuery, } from '@iot-app-kit/source-iotsitewise'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../types'; import type { AxisSettings, ComplexFontSettings, diff --git a/packages/dashboard/src/customization/widgets/utils/alarmModelQueryToAlarmQuery.ts b/packages/dashboard/src/customization/widgets/utils/alarmModelQueryToAlarmQuery.ts index 7a2bc7636..1db4c0e19 100644 --- a/packages/dashboard/src/customization/widgets/utils/alarmModelQueryToAlarmQuery.ts +++ b/packages/dashboard/src/customization/widgets/utils/alarmModelQueryToAlarmQuery.ts @@ -4,7 +4,7 @@ import { } from '@iot-app-kit/source-iotsitewise'; import unionBy from 'lodash-es/unionBy'; import uniq from 'lodash-es/uniq'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { type IoTSiteWiseDataStreamQuery } from '../../../types'; type AlarmModelQueryWithAssetId = Required; const alarmModelWithAssetId = ( diff --git a/packages/dashboard/src/customization/widgets/utils/assetModelQueryToAssetQuery.ts b/packages/dashboard/src/customization/widgets/utils/assetModelQueryToAssetQuery.ts index 8feaebdad..d30e59f90 100644 --- a/packages/dashboard/src/customization/widgets/utils/assetModelQueryToAssetQuery.ts +++ b/packages/dashboard/src/customization/widgets/utils/assetModelQueryToAssetQuery.ts @@ -4,7 +4,7 @@ import { } from '@iot-app-kit/source-iotsitewise'; import unionBy from 'lodash-es/unionBy'; import uniq from 'lodash-es/uniq'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { type IoTSiteWiseDataStreamQuery } from '../../../types'; type AssetModelQueryWithAssetId = Required; const assetModelWithAssetId = ( diff --git a/packages/dashboard/src/customization/widgets/utils/assetQuery/applyAggregationToQuery.ts b/packages/dashboard/src/customization/widgets/utils/assetQuery/applyAggregationToQuery.ts index aee1aae42..984f97638 100644 --- a/packages/dashboard/src/customization/widgets/utils/assetQuery/applyAggregationToQuery.ts +++ b/packages/dashboard/src/customization/widgets/utils/assetQuery/applyAggregationToQuery.ts @@ -1,5 +1,5 @@ import { type AggregateType } from '@aws-sdk/client-iotsitewise'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { type IoTSiteWiseDataStreamQuery } from '../../../../types'; export const applyAggregationToQuery = ( { diff --git a/packages/dashboard/src/customization/widgets/utils/assetQuery/applyResolutionToQuery.ts b/packages/dashboard/src/customization/widgets/utils/assetQuery/applyResolutionToQuery.ts index bb75c1dc2..4cecd834b 100644 --- a/packages/dashboard/src/customization/widgets/utils/assetQuery/applyResolutionToQuery.ts +++ b/packages/dashboard/src/customization/widgets/utils/assetQuery/applyResolutionToQuery.ts @@ -1,4 +1,4 @@ -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { type IoTSiteWiseDataStreamQuery } from '../../../../types'; export const applyResolutionToQuery = ( { diff --git a/packages/dashboard/src/customization/widgets/utils/assetQuery/assignDefaultRefId.ts b/packages/dashboard/src/customization/widgets/utils/assetQuery/assignDefaultRefId.ts index 375a7cace..b628bb592 100644 --- a/packages/dashboard/src/customization/widgets/utils/assetQuery/assignDefaultRefId.ts +++ b/packages/dashboard/src/customization/widgets/utils/assetQuery/assignDefaultRefId.ts @@ -1,6 +1,6 @@ import { v4 as uuid } from 'uuid'; -import type { IoTSiteWiseDataStreamQuery } from '~/types'; +import type { IoTSiteWiseDataStreamQuery } from '../../../../types'; export const assignDefaultRefId = ( { diff --git a/packages/dashboard/src/customization/widgets/utils/assetQuery/defaultColors.ts b/packages/dashboard/src/customization/widgets/utils/assetQuery/defaultColors.ts index 53edf3113..31cad1fc6 100644 --- a/packages/dashboard/src/customization/widgets/utils/assetQuery/defaultColors.ts +++ b/packages/dashboard/src/customization/widgets/utils/assetQuery/defaultColors.ts @@ -1,7 +1,7 @@ import { type StyleSettingsMap } from '@iot-app-kit/core'; import { Colorizer } from '@iot-app-kit/core-util'; import uniq from 'lodash-es/uniq'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; +import { createNonNullableList } from '../../../../helpers/lists/createNonNullableList'; import { type StyledAssetQuery } from '../../types'; const colorsFromProperties = ({ diff --git a/packages/dashboard/src/customization/widgets/utils/assignDefaultStyleSettings.ts b/packages/dashboard/src/customization/widgets/utils/assignDefaultStyleSettings.ts index 4ad208d01..1c4010d2c 100644 --- a/packages/dashboard/src/customization/widgets/utils/assignDefaultStyleSettings.ts +++ b/packages/dashboard/src/customization/widgets/utils/assignDefaultStyleSettings.ts @@ -1,8 +1,8 @@ import type { StyleSettingsMap } from '@iot-app-kit/core'; import { v4 as uuid } from 'uuid'; import type { QueryWidget } from '../types'; -import { isDefined } from '~/util/isDefined'; -import { type IoTSiteWiseDataStreamQuery } from '~/types'; +import { isDefined } from '../../../util/isDefined'; +import { type IoTSiteWiseDataStreamQuery } from '../../../types'; import { getCurrentAggregationResolution } from './widgetAggregationUtils'; import { type AggregateType } from '@aws-sdk/client-iotsitewise'; import { colorerFromStyleSettings } from './assetQuery/defaultColors'; diff --git a/packages/dashboard/src/data/listAssetPropertiesMap/query.tsx b/packages/dashboard/src/data/listAssetPropertiesMap/query.tsx index 5bd824e4f..5470bea1e 100644 --- a/packages/dashboard/src/data/listAssetPropertiesMap/query.tsx +++ b/packages/dashboard/src/data/listAssetPropertiesMap/query.tsx @@ -4,7 +4,7 @@ import { type SiteWiseAssetQuery, type SiteWisePropertyAliasQuery, } from '@iot-app-kit/source-iotsitewise'; -import { listAssetPropertiesWithComposite } from '~/hooks/listAssetPropertiesWithAssetDescription'; +import { listAssetPropertiesWithComposite } from '../../hooks/listAssetPropertiesWithAssetDescription'; // QUERY KEY export const ASSET_DESCRIPTION_QUERY_KEY = ['assetDescriptions']; diff --git a/packages/dashboard/src/data/listAssetPropertiesMap/selectData.tsx b/packages/dashboard/src/data/listAssetPropertiesMap/selectData.tsx index ffd89cc18..84f06eda7 100644 --- a/packages/dashboard/src/data/listAssetPropertiesMap/selectData.tsx +++ b/packages/dashboard/src/data/listAssetPropertiesMap/selectData.tsx @@ -5,7 +5,7 @@ import { import { type AssetSummary, type PropertySummary, -} from '~/hooks/useAssetDescriptionQueries'; +} from '../../hooks/useAssetDescriptionQueries'; const newMapPropertySummary = ({ id, diff --git a/packages/dashboard/src/hooks/listAssetPropertiesWithAssetDescription.ts b/packages/dashboard/src/hooks/listAssetPropertiesWithAssetDescription.ts index 5f2945481..f59a79738 100644 --- a/packages/dashboard/src/hooks/listAssetPropertiesWithAssetDescription.ts +++ b/packages/dashboard/src/hooks/listAssetPropertiesWithAssetDescription.ts @@ -10,7 +10,7 @@ import { type AssetModelPropertySummary, } from '@aws-sdk/client-iotsitewise'; import { type Paginator } from '@aws-sdk/types'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; +import { createNonNullableList } from '../helpers/lists/createNonNullableList'; export class listAssetPropertiesWithComposite { readonly #listAssetPropertyPaginator: Paginator< diff --git a/packages/dashboard/src/hooks/useAWSRegion.ts b/packages/dashboard/src/hooks/useAWSRegion.ts index 24222b19d..f575e5bd8 100644 --- a/packages/dashboard/src/hooks/useAWSRegion.ts +++ b/packages/dashboard/src/hooks/useAWSRegion.ts @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { type DashboardClientConfiguration, type DashboardClientCredentials, -} from '~/types'; +} from '../types'; export const isCredentials = ( dashboardClientConfiguration: DashboardClientConfiguration diff --git a/packages/dashboard/src/hooks/useAssetDescriptionQueries.ts b/packages/dashboard/src/hooks/useAssetDescriptionQueries.ts index e3e3374fb..1bf4b855a 100644 --- a/packages/dashboard/src/hooks/useAssetDescriptionQueries.ts +++ b/packages/dashboard/src/hooks/useAssetDescriptionQueries.ts @@ -13,14 +13,14 @@ import type { } from '@iot-app-kit/source-iotsitewise'; import { useQuery } from '@tanstack/react-query'; import { useSelector } from 'react-redux'; -import { useClients } from '~/components/dashboard/clientContext'; +import { useClients } from '../components/dashboard/clientContext'; import { createFetchSiteWiseAssetQueryDescription, createListAssetPropertiesMapCacheKey, -} from '~/data/listAssetPropertiesMap/query'; -import { selectListAssetPropertiesMap } from '~/data/listAssetPropertiesMap/selectData'; -import { queryClient } from '~/data/query-client'; -import { type DashboardState } from '~/store/state'; +} from '../data/listAssetPropertiesMap/query'; +import { selectListAssetPropertiesMap } from '../data/listAssetPropertiesMap/selectData'; +import { queryClient } from '../data/query-client'; +import { type DashboardState } from '../store/state'; export type PropertySummary = { propertyId: AssetProperty['id']; diff --git a/packages/dashboard/src/hooks/useAssetModel/listAssetModelPropertiesRequest.ts b/packages/dashboard/src/hooks/useAssetModel/listAssetModelPropertiesRequest.ts index 9078322d2..116301e31 100644 --- a/packages/dashboard/src/hooks/useAssetModel/listAssetModelPropertiesRequest.ts +++ b/packages/dashboard/src/hooks/useAssetModel/listAssetModelPropertiesRequest.ts @@ -1,14 +1,14 @@ import { - type IoTSiteWiseClient, - paginateListAssetProperties, paginateListAssetModelProperties, + paginateListAssetProperties, + type IoTSiteWiseClient, type IoTSiteWisePaginationConfiguration, - type ListAssetPropertiesCommandInput, type ListAssetModelPropertiesCommandInput, type ListAssetModelPropertiesCommandOutput, + type ListAssetPropertiesCommandInput, } from '@aws-sdk/client-iotsitewise'; import { type Paginator } from '@aws-sdk/types'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; +import { createNonNullableList } from '../../helpers/lists/createNonNullableList'; export class listAssetModelPropertiesRequest { readonly #listAssetModelPropertyPaginator: Paginator< diff --git a/packages/dashboard/src/hooks/useAssetModel/useAssetModel.ts b/packages/dashboard/src/hooks/useAssetModel/useAssetModel.ts index 938f983eb..c8ce961a0 100644 --- a/packages/dashboard/src/hooks/useAssetModel/useAssetModel.ts +++ b/packages/dashboard/src/hooks/useAssetModel/useAssetModel.ts @@ -1,13 +1,13 @@ import { type IoTSiteWiseClient } from '@aws-sdk/client-iotsitewise'; import { useQueries, type QueryFunctionContext } from '@tanstack/react-query'; +import { useSelector } from 'react-redux'; +import { queryClient } from '../../data/query-client'; import invariant from 'tiny-invariant'; +import { createNonNullableList } from '../../helpers/lists/createNonNullableList'; +import { type DashboardState } from '../../store/state'; import { AssetModelCacheKeyFactory } from './assetModelCacheKeyFactory'; -import { createNonNullableList } from '~/helpers/lists/createNonNullableList'; -import { listAssetModelPropertiesRequest } from './listAssetModelPropertiesRequest'; import { DescribeAssetModelRequest } from './describeAssetModelRequest'; -import { useSelector } from 'react-redux'; -import { type DashboardState } from '~/store/state'; -import { queryClient } from '~/data/query-client'; +import { listAssetModelPropertiesRequest } from './listAssetModelPropertiesRequest'; type SingleAssetRequest = { assetModelId?: string; diff --git a/packages/dashboard/src/hooks/useAssistantConfiguration.spec.tsx b/packages/dashboard/src/hooks/useAssistantConfiguration.spec.tsx index d3519a4bb..4327b7f54 100644 --- a/packages/dashboard/src/hooks/useAssistantConfiguration.spec.tsx +++ b/packages/dashboard/src/hooks/useAssistantConfiguration.spec.tsx @@ -3,9 +3,9 @@ import { renderHook, waitFor } from '@testing-library/react'; import type { ReactNode } from 'react'; import { act } from 'react-dom/test-utils'; import { Provider, useDispatch } from 'react-redux'; -import { configureDashboardStore } from '~/store'; -import { onToggleReadOnly } from '~/store/actions'; -import { initialState } from '~/store/state'; +import { configureDashboardStore } from '../store'; +import { onToggleReadOnly } from '../store/actions'; +import { initialState } from '../store/state'; import { useAssistantConfiguration } from './useAssistantConfiguration'; const store = configureDashboardStore(initialState); diff --git a/packages/dashboard/src/hooks/useAssistantConfiguration.ts b/packages/dashboard/src/hooks/useAssistantConfiguration.ts index 147bab377..63f7d8639 100644 --- a/packages/dashboard/src/hooks/useAssistantConfiguration.ts +++ b/packages/dashboard/src/hooks/useAssistantConfiguration.ts @@ -1,17 +1,17 @@ +import { IoTSitewiseAssistantClient } from '@iot-app-kit/core-util'; import type { AssistantActionEventDetail, AssistantProperty, } from '@iot-app-kit/react-components'; -import { useDispatch, useSelector } from 'react-redux'; -import type { DashboardState } from '~/store/state'; -import { onToggleChatbotAction } from '~/store/actions/toggleChatbot'; -import { useClients } from '~/components/dashboard/clientContext'; import { useMemo } from 'react'; -import { IoTSitewiseAssistantClient } from '@iot-app-kit/core-util'; +import { useDispatch, useSelector } from 'react-redux'; +import { useClients } from '../components/dashboard/clientContext'; import { onAssistantDeselectWidgetsAction, onAssistantSelectWidgetsAction, -} from '~/store/actions/assistantWidgetsSelection'; +} from '../store/actions/assistantWidgetsSelection'; +import { onToggleChatbotAction } from '../store/actions/toggleChatbot'; +import type { DashboardState } from '../store/state'; export const useAssistantConfiguration = (widgetId: string) => { const dispatch = useDispatch(); diff --git a/packages/dashboard/src/hooks/useChartSize.ts b/packages/dashboard/src/hooks/useChartSize.ts index cd1fec0b1..df3b8b5ac 100644 --- a/packages/dashboard/src/hooks/useChartSize.ts +++ b/packages/dashboard/src/hooks/useChartSize.ts @@ -1,6 +1,6 @@ import { useSelector } from 'react-redux'; -import { type DashboardState } from '~/store/state'; -import { type DashboardWidget } from '~/types'; +import { type DashboardState } from '../store/state'; +import { type DashboardWidget } from '../types'; export const useChartSize = (widget: DashboardWidget) => { const grid = useSelector((state: DashboardState) => state.grid); diff --git a/packages/dashboard/src/hooks/useDeleteWidgets.ts b/packages/dashboard/src/hooks/useDeleteWidgets.ts index 9781e321c..16705675f 100644 --- a/packages/dashboard/src/hooks/useDeleteWidgets.ts +++ b/packages/dashboard/src/hooks/useDeleteWidgets.ts @@ -1,6 +1,6 @@ import { useDispatch } from 'react-redux'; import { type DashboardWidget } from '..'; -import { onDeleteWidgetsAction } from '~/store/actions'; +import { onDeleteWidgetsAction } from '../store/actions'; export const useDeleteWidgets = () => { const dispatch = useDispatch(); diff --git a/packages/dashboard/src/hooks/useSelectedWidgets.ts b/packages/dashboard/src/hooks/useSelectedWidgets.ts index 87a0daa21..70a2a00b9 100644 --- a/packages/dashboard/src/hooks/useSelectedWidgets.ts +++ b/packages/dashboard/src/hooks/useSelectedWidgets.ts @@ -1,7 +1,7 @@ import isEqual from 'lodash-es/isEqual'; import { useSelector } from 'react-redux'; -import type { DashboardState } from '~/store/state'; -import { type DashboardWidget } from '~/types'; +import type { DashboardState } from '../store/state'; +import { type DashboardWidget } from '../types'; const compareSelectedWidgets = (a: DashboardWidget[], b: DashboardWidget[]) => isEqual(a, b); diff --git a/packages/dashboard/src/hooks/useStableDashboardConfiguration.ts b/packages/dashboard/src/hooks/useStableDashboardConfiguration.ts index 0befa826d..98e5134e3 100644 --- a/packages/dashboard/src/hooks/useStableDashboardConfiguration.ts +++ b/packages/dashboard/src/hooks/useStableDashboardConfiguration.ts @@ -6,7 +6,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { type DashboardConfiguration, type DashboardConfigurationChange, -} from '~/types'; +} from '../types'; export const useStableDashboardConfiguration = ({ dashboardConfiguration, diff --git a/packages/dashboard/src/hooks/useSyncDashboardConfiguration.ts b/packages/dashboard/src/hooks/useSyncDashboardConfiguration.ts index 23cd60787..84bb0535e 100644 --- a/packages/dashboard/src/hooks/useSyncDashboardConfiguration.ts +++ b/packages/dashboard/src/hooks/useSyncDashboardConfiguration.ts @@ -2,8 +2,8 @@ import isEqual from 'lodash-es/isEqual'; import noop from 'lodash-es/noop'; import { useEffect } from 'react'; import { useSelector } from 'react-redux'; -import { type DashboardConfigurationChange } from '~/types'; -import { convertToDashboardConfiguration } from '~/util/convertToDashbaoardConfiguration'; +import { type DashboardConfigurationChange } from '../types'; +import { convertToDashboardConfiguration } from '../util/convertToDashbaoardConfiguration'; export const useSyncDashboardConfiguration = ({ onDashboardConfigurationChange = noop, diff --git a/packages/dashboard/src/store/actions/bringToFront/index.spec.ts b/packages/dashboard/src/store/actions/bringToFront/index.spec.ts index 01de61935..cf3364219 100644 --- a/packages/dashboard/src/store/actions/bringToFront/index.spec.ts +++ b/packages/dashboard/src/store/actions/bringToFront/index.spec.ts @@ -2,8 +2,8 @@ import { bringWidgetsToFront } from '.'; import { initialState } from '../../state'; import { MOCK_KPI_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/changeDashboardGrid/changeCellSize.ts b/packages/dashboard/src/store/actions/changeDashboardGrid/changeCellSize.ts index 867080f18..fc0b2270b 100644 --- a/packages/dashboard/src/store/actions/changeDashboardGrid/changeCellSize.ts +++ b/packages/dashboard/src/store/actions/changeDashboardGrid/changeCellSize.ts @@ -1,7 +1,7 @@ -import { changeGridProperty } from './updateGrid'; import type { Action } from 'redux'; +import { nonNegative } from '../../../util/number'; import type { DashboardState } from '../../state'; -import { nonNegative } from '~/util/number'; +import { changeGridProperty } from './updateGrid'; type ChangeDashboardCellSizeActionPayload = { cellSize: number; diff --git a/packages/dashboard/src/store/actions/changeDashboardGrid/changeHeight.ts b/packages/dashboard/src/store/actions/changeDashboardGrid/changeHeight.ts index 1ee6625ab..126f40a71 100644 --- a/packages/dashboard/src/store/actions/changeDashboardGrid/changeHeight.ts +++ b/packages/dashboard/src/store/actions/changeDashboardGrid/changeHeight.ts @@ -1,7 +1,7 @@ -import { changeGridProperty } from './updateGrid'; import type { Action } from 'redux'; +import { nonNegative } from '../../../util/number'; import type { DashboardState } from '../../state'; -import { nonNegative } from '~/util/number'; +import { changeGridProperty } from './updateGrid'; type ChangeDashboardHeightActionPayload = { height: number; diff --git a/packages/dashboard/src/store/actions/changeDashboardGrid/changeWidth.ts b/packages/dashboard/src/store/actions/changeDashboardGrid/changeWidth.ts index 87f8786ea..ab58a78ed 100644 --- a/packages/dashboard/src/store/actions/changeDashboardGrid/changeWidth.ts +++ b/packages/dashboard/src/store/actions/changeDashboardGrid/changeWidth.ts @@ -1,7 +1,7 @@ -import { changeGridProperty } from './updateGrid'; import type { Action } from 'redux'; +import { nonNegative } from '../../../util/number'; import type { DashboardState } from '../../state'; -import { nonNegative } from '~/util/number'; +import { changeGridProperty } from './updateGrid'; type ChangeDashboardWidthActionPayload = { width: number; diff --git a/packages/dashboard/src/store/actions/changeDashboardGrid/updateGrid.ts b/packages/dashboard/src/store/actions/changeDashboardGrid/updateGrid.ts index af0f9edb3..600c601ff 100644 --- a/packages/dashboard/src/store/actions/changeDashboardGrid/updateGrid.ts +++ b/packages/dashboard/src/store/actions/changeDashboardGrid/updateGrid.ts @@ -1,4 +1,4 @@ -import { constrainWidgetPositionToGrid } from '~/util/constrainWidgetPositionToGrid'; +import { constrainWidgetPositionToGrid } from '../../../util/constrainWidgetPositionToGrid'; import type { DashboardState } from '../../state'; type GridProperties = keyof DashboardState['grid']; diff --git a/packages/dashboard/src/store/actions/changeRefreshRate/index.spec.ts b/packages/dashboard/src/store/actions/changeRefreshRate/index.spec.ts index f67ab6bb8..78229c63d 100644 --- a/packages/dashboard/src/store/actions/changeRefreshRate/index.spec.ts +++ b/packages/dashboard/src/store/actions/changeRefreshRate/index.spec.ts @@ -1,4 +1,4 @@ -import { initialState } from '~/store/state'; +import { initialState } from '../../../store/state'; import { onUpdateRefreshRateAction, updateRefreshRate } from './index'; it('it intiializes to 5 seconds', () => { diff --git a/packages/dashboard/src/store/actions/changeRefreshRate/index.ts b/packages/dashboard/src/store/actions/changeRefreshRate/index.ts index f17058240..eadd933f5 100644 --- a/packages/dashboard/src/store/actions/changeRefreshRate/index.ts +++ b/packages/dashboard/src/store/actions/changeRefreshRate/index.ts @@ -1,6 +1,6 @@ import type { Action } from 'redux'; +import { type RefreshRate } from '../../../components/refreshRate/types'; import type { DashboardState } from '../../state'; -import { type RefreshRate } from '~/components/refreshRate/types'; type UpdateRefreshRateActionPayload = { refreshRate: RefreshRate; diff --git a/packages/dashboard/src/store/actions/cleanAssistant/index.spec.ts b/packages/dashboard/src/store/actions/cleanAssistant/index.spec.ts index 69182e550..3517c779d 100644 --- a/packages/dashboard/src/store/actions/cleanAssistant/index.spec.ts +++ b/packages/dashboard/src/store/actions/cleanAssistant/index.spec.ts @@ -1,8 +1,8 @@ -import { onCleanAssistantAction, cleanAssistant } from '.'; -import { initialState } from '../../state'; -import type { DashboardState } from '../../state'; -import { configureDashboardStore } from '~/store'; +import { cleanAssistant, onCleanAssistantAction } from '.'; import { MOCK_KPI_WIDGET } from '../../../../testing/mocks'; +import { configureDashboardStore } from '../../../store'; +import type { DashboardState } from '../../state'; +import { initialState } from '../../state'; const dirtyState = { ...initialState, diff --git a/packages/dashboard/src/store/actions/copyWidgets/index.spec.ts b/packages/dashboard/src/store/actions/copyWidgets/index.spec.ts index 0a9ae2860..84da40d6c 100644 --- a/packages/dashboard/src/store/actions/copyWidgets/index.spec.ts +++ b/packages/dashboard/src/store/actions/copyWidgets/index.spec.ts @@ -6,8 +6,8 @@ import { MOCK_LINE_CHART_WIDGET, MOCK_SCATTER_CHART_WIDGET, } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/copyWidgets/index.ts b/packages/dashboard/src/store/actions/copyWidgets/index.ts index 8dd583688..5cd381046 100644 --- a/packages/dashboard/src/store/actions/copyWidgets/index.ts +++ b/packages/dashboard/src/store/actions/copyWidgets/index.ts @@ -1,6 +1,6 @@ import intersectionBy from 'lodash-es/intersectionBy'; import type { Action } from 'redux'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; type CopyWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/actions/createWidget/index.ts b/packages/dashboard/src/store/actions/createWidget/index.ts index 56bfaeef3..a8ceda557 100644 --- a/packages/dashboard/src/store/actions/createWidget/index.ts +++ b/packages/dashboard/src/store/actions/createWidget/index.ts @@ -1,7 +1,7 @@ -import { constrainWidgetPositionToGrid } from '~/util/constrainWidgetPositionToGrid'; -import { trimRectPosition } from '~/util/trimRectPosition'; import type { Action } from 'redux'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; +import { constrainWidgetPositionToGrid } from '../../../util/constrainWidgetPositionToGrid'; +import { trimRectPosition } from '../../../util/trimRectPosition'; import type { DashboardState } from '../../state'; type CreateWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/actions/createWidget/presets/index.ts b/packages/dashboard/src/store/actions/createWidget/presets/index.ts index 94c716c92..ac28620e3 100644 --- a/packages/dashboard/src/store/actions/createWidget/presets/index.ts +++ b/packages/dashboard/src/store/actions/createWidget/presets/index.ts @@ -1,7 +1,7 @@ import { nanoid } from '@reduxjs/toolkit'; -import { WidgetPropertiesGeneratorMap } from '~/customization/widgetPropertiesGeneratorMap'; -import type { DashboardWidget } from '~/types'; -import type { DashboardState } from '~/store/state'; +import { WidgetPropertiesGeneratorMap } from '../../../../customization/widgetPropertiesGeneratorMap'; +import type { DashboardState } from '../../../../store/state'; +import type { DashboardWidget } from '../../../../types'; const BASE_POSITION = { x: 0, diff --git a/packages/dashboard/src/store/actions/deleteWidgets/index.spec.ts b/packages/dashboard/src/store/actions/deleteWidgets/index.spec.ts index 656ec22ca..ce123cbe9 100644 --- a/packages/dashboard/src/store/actions/deleteWidgets/index.spec.ts +++ b/packages/dashboard/src/store/actions/deleteWidgets/index.spec.ts @@ -1,9 +1,9 @@ -import { deleteWidgets, onDeleteWidgetsAction } from './index'; import { initialState } from '../../state'; +import { deleteWidgets, onDeleteWidgetsAction } from './index'; import { MOCK_KPI_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [] diff --git a/packages/dashboard/src/store/actions/deleteWidgets/index.ts b/packages/dashboard/src/store/actions/deleteWidgets/index.ts index 28b37ad53..7bc0ed2a4 100644 --- a/packages/dashboard/src/store/actions/deleteWidgets/index.ts +++ b/packages/dashboard/src/store/actions/deleteWidgets/index.ts @@ -1,5 +1,5 @@ import type { Action } from 'redux'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; type DeleteWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/actions/moveWidgets/index.spec.ts b/packages/dashboard/src/store/actions/moveWidgets/index.spec.ts index a37af0bbf..83286ada5 100644 --- a/packages/dashboard/src/store/actions/moveWidgets/index.spec.ts +++ b/packages/dashboard/src/store/actions/moveWidgets/index.spec.ts @@ -1,9 +1,9 @@ -import { moveWidgets, onMoveWidgetsAction } from './index'; import type { DashboardState } from '../../state'; import { initialState } from '../../state'; +import { moveWidgets, onMoveWidgetsAction } from './index'; import { MOCK_KPI_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; const setupDashboardState = ( widgets: DashboardWidget[] = [] diff --git a/packages/dashboard/src/store/actions/moveWidgets/index.ts b/packages/dashboard/src/store/actions/moveWidgets/index.ts index 1cbe7a387..995d41693 100644 --- a/packages/dashboard/src/store/actions/moveWidgets/index.ts +++ b/packages/dashboard/src/store/actions/moveWidgets/index.ts @@ -1,10 +1,10 @@ -import { trimRectPosition } from '~/util/trimRectPosition'; import type { Action } from 'redux'; -import type { Position, DashboardWidget } from '~/types'; +import type { DashboardWidget, Position } from '../../../types'; +import { getSelectionBox } from '../../../util/getSelectionBox'; +import { moveSelectionBox } from '../../../util/moveSelectionBox'; +import { transformWidget } from '../../../util/transformWidget'; +import { trimRectPosition } from '../../../util/trimRectPosition'; import type { DashboardState } from '../../state'; -import { getSelectionBox } from '~/util/getSelectionBox'; -import { moveSelectionBox } from '~/util/moveSelectionBox'; -import { transformWidget } from '~/util/transformWidget'; type MoveWidgetsActionPayload = { widgets: DashboardWidget[]; diff --git a/packages/dashboard/src/store/actions/pasteWidgets/index.spec.ts b/packages/dashboard/src/store/actions/pasteWidgets/index.spec.ts index 7f804eb77..9f99f4778 100644 --- a/packages/dashboard/src/store/actions/pasteWidgets/index.spec.ts +++ b/packages/dashboard/src/store/actions/pasteWidgets/index.spec.ts @@ -5,8 +5,8 @@ import { MOCK_KPI_WIDGET, MOCK_LINE_CHART_WIDGET, } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/pasteWidgets/index.ts b/packages/dashboard/src/store/actions/pasteWidgets/index.ts index 177ae490b..ce9c1851b 100644 --- a/packages/dashboard/src/store/actions/pasteWidgets/index.ts +++ b/packages/dashboard/src/store/actions/pasteWidgets/index.ts @@ -2,7 +2,7 @@ import max from 'lodash-es/max'; import minBy from 'lodash-es/minBy'; import type { Action } from 'redux'; import { v4 } from 'uuid'; -import type { DashboardWidget, Position } from '~/types'; +import type { DashboardWidget, Position } from '../../../types'; import type { DashboardState } from '../../state'; type PasteWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/actions/resizeWidgets/index.spec.ts b/packages/dashboard/src/store/actions/resizeWidgets/index.spec.ts index bd0c021e6..57e7dd22e 100644 --- a/packages/dashboard/src/store/actions/resizeWidgets/index.spec.ts +++ b/packages/dashboard/src/store/actions/resizeWidgets/index.spec.ts @@ -1,9 +1,9 @@ import { MOCK_KPI_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; import { onResizeWidgetsAction, resizeWidgets } from './index'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; import { initialState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [] diff --git a/packages/dashboard/src/store/actions/resizeWidgets/index.ts b/packages/dashboard/src/store/actions/resizeWidgets/index.ts index 2e87b1fd2..3320d7ed0 100644 --- a/packages/dashboard/src/store/actions/resizeWidgets/index.ts +++ b/packages/dashboard/src/store/actions/resizeWidgets/index.ts @@ -1,10 +1,10 @@ -import { getSelectionBox } from '~/util/getSelectionBox'; -import { trimRectPosition } from '~/util/trimRectPosition'; import type { Action } from 'redux'; -import type { Position, DashboardWidget } from '~/types'; +import type { DashboardWidget, Position } from '../../../types'; +import { getSelectionBox } from '../../../util/getSelectionBox'; +import { resizeSelectionBox } from '../../../util/resizeSelectionBox'; +import { transformWidget } from '../../../util/transformWidget'; +import { trimRectPosition } from '../../../util/trimRectPosition'; import type { DashboardState } from '../../state'; -import { transformWidget } from '~/util/transformWidget'; -import { resizeSelectionBox } from '~/util/resizeSelectionBox'; export type Anchor = | 'top-right' diff --git a/packages/dashboard/src/store/actions/selectWidgets/index.ts b/packages/dashboard/src/store/actions/selectWidgets/index.ts index 99be81b1b..2b5408af3 100644 --- a/packages/dashboard/src/store/actions/selectWidgets/index.ts +++ b/packages/dashboard/src/store/actions/selectWidgets/index.ts @@ -1,6 +1,6 @@ import uniqBy from 'lodash-es/uniqBy'; import type { Action } from 'redux'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; type SelectWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/actions/sendToBack/index.spec.ts b/packages/dashboard/src/store/actions/sendToBack/index.spec.ts index 42c1f1293..9c5a92f52 100644 --- a/packages/dashboard/src/store/actions/sendToBack/index.spec.ts +++ b/packages/dashboard/src/store/actions/sendToBack/index.spec.ts @@ -1,8 +1,8 @@ import { sendWidgetsToBack } from '.'; import { MOCK_KPI_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; -import { initialState } from '../../state'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; +import { initialState } from '../../state'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/toggleAssistantMode/index.spec.ts b/packages/dashboard/src/store/actions/toggleAssistantMode/index.spec.ts index 41e7e8d41..565a1843d 100644 --- a/packages/dashboard/src/store/actions/toggleAssistantMode/index.spec.ts +++ b/packages/dashboard/src/store/actions/toggleAssistantMode/index.spec.ts @@ -1,5 +1,5 @@ -import { configureDashboardStore } from '~/store'; import { onToggleAssistantModeAction, toggleAssistantMode } from '.'; +import { configureDashboardStore } from '../../../store'; import { initialState } from '../../state'; it('initial state of assistant mode is odd', () => { diff --git a/packages/dashboard/src/store/actions/toggleChatbot/index.spec.ts b/packages/dashboard/src/store/actions/toggleChatbot/index.spec.ts index d57e1a755..81f2ebdc8 100644 --- a/packages/dashboard/src/store/actions/toggleChatbot/index.spec.ts +++ b/packages/dashboard/src/store/actions/toggleChatbot/index.spec.ts @@ -1,8 +1,8 @@ import { onToggleChatbotAction, toggleChatbot } from '.'; -import { initialState } from '../../state'; +import { configureDashboardStore } from '../../../store'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; -import { configureDashboardStore } from '~/store'; +import { initialState } from '../../state'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/toggleReadOnly/index.spec.ts b/packages/dashboard/src/store/actions/toggleReadOnly/index.spec.ts index eef36a381..b6f1e433d 100644 --- a/packages/dashboard/src/store/actions/toggleReadOnly/index.spec.ts +++ b/packages/dashboard/src/store/actions/toggleReadOnly/index.spec.ts @@ -5,8 +5,8 @@ import { MOCK_KPI_WIDGET, MOCK_LINE_CHART_WIDGET, } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [], diff --git a/packages/dashboard/src/store/actions/updateSignificantDigits/index.spec.ts b/packages/dashboard/src/store/actions/updateSignificantDigits/index.spec.ts index 02cdf644a..846166fbd 100644 --- a/packages/dashboard/src/store/actions/updateSignificantDigits/index.spec.ts +++ b/packages/dashboard/src/store/actions/updateSignificantDigits/index.spec.ts @@ -1,7 +1,7 @@ -import { initialState } from '~/store/state'; +import { initialState } from '../../../store/state'; import { - updateSignificantDigits, onUpdateSignificantDigitsAction, + updateSignificantDigits, } from './index'; it('can change significant digits', () => { diff --git a/packages/dashboard/src/store/actions/updateSignificantDigits/index.ts b/packages/dashboard/src/store/actions/updateSignificantDigits/index.ts index 6129bf08a..1beb261c6 100644 --- a/packages/dashboard/src/store/actions/updateSignificantDigits/index.ts +++ b/packages/dashboard/src/store/actions/updateSignificantDigits/index.ts @@ -1,6 +1,6 @@ import type { Action } from 'redux'; +import { nonNegative } from '../../../util/number'; import type { DashboardState } from '../../state'; -import { nonNegative } from '~/util/number'; type UpdateSignificantDigitsActionPayload = { significantDigits: number; diff --git a/packages/dashboard/src/store/actions/updateWidget/index.spec.ts b/packages/dashboard/src/store/actions/updateWidget/index.spec.ts index 3560ba7fb..f4a55d0a9 100644 --- a/packages/dashboard/src/store/actions/updateWidget/index.spec.ts +++ b/packages/dashboard/src/store/actions/updateWidget/index.spec.ts @@ -2,8 +2,8 @@ import { onUpdateWidgetsAction, updateWidgets } from '.'; import { initialState } from '../../state'; import { MOCK_TEXT_WIDGET, MockWidgetFactory } from '../../../../testing/mocks'; +import type { DashboardWidget } from '../../../types'; import type { DashboardState } from '../../state'; -import type { DashboardWidget } from '~/types'; const setupDashboardState = ( widgets: DashboardWidget[] = [] diff --git a/packages/dashboard/src/store/actions/updateWidget/index.ts b/packages/dashboard/src/store/actions/updateWidget/index.ts index 84e577c97..d1022a572 100644 --- a/packages/dashboard/src/store/actions/updateWidget/index.ts +++ b/packages/dashboard/src/store/actions/updateWidget/index.ts @@ -1,7 +1,7 @@ -import { constrainWidgetPositionToGrid } from '~/util/constrainWidgetPositionToGrid'; -import { trimRectPosition } from '~/util/trimRectPosition'; import type { Action } from 'redux'; -import type { DashboardWidget } from '~/types'; +import type { DashboardWidget } from '../../../types'; +import { constrainWidgetPositionToGrid } from '../../../util/constrainWidgetPositionToGrid'; +import { trimRectPosition } from '../../../util/trimRectPosition'; import type { DashboardState } from '../../state'; type UpdateWidgetsActionPayload = { diff --git a/packages/dashboard/src/store/index.ts b/packages/dashboard/src/store/index.ts index 038cef274..6a1333931 100644 --- a/packages/dashboard/src/store/index.ts +++ b/packages/dashboard/src/store/index.ts @@ -3,7 +3,7 @@ import cloneDeep from 'lodash-es/cloneDeep'; import merge from 'lodash-es/merge'; import type { Store } from 'redux'; import type { PartialDeep } from 'type-fest'; -import type { DashboardConfiguration } from '~/types'; +import type { DashboardConfiguration } from '../types'; import type { DashboardAction } from './actions'; import { dashboardReducer } from './reducer'; import type { DashboardState } from './state'; diff --git a/packages/dashboard/src/store/state.ts b/packages/dashboard/src/store/state.ts index 5d3deace9..4712e3552 100644 --- a/packages/dashboard/src/store/state.ts +++ b/packages/dashboard/src/store/state.ts @@ -1,10 +1,10 @@ +import { v4 as uuid } from 'uuid'; import type { AssistantStateTypes, DashboardTimeSeriesSettings, DashboardWidget, -} from '~/types'; -import { deepFreeze } from '~/util/deepFreeze'; -import { v4 as uuid } from 'uuid'; +} from '../types'; +import { deepFreeze } from '../util/deepFreeze'; export type DashboardState< Properties extends Record = Record diff --git a/packages/dashboard/src/util/constrainWidgetPositionToGrid.ts b/packages/dashboard/src/util/constrainWidgetPositionToGrid.ts index 3c7e448af..1061acd3a 100644 --- a/packages/dashboard/src/util/constrainWidgetPositionToGrid.ts +++ b/packages/dashboard/src/util/constrainWidgetPositionToGrid.ts @@ -1,4 +1,4 @@ -import type { Rect } from '~/types'; +import type { Rect } from '../types'; const max = Math.max; const min = Math.min; diff --git a/packages/dashboard/src/util/convertToDashbaoardConfiguration.ts b/packages/dashboard/src/util/convertToDashbaoardConfiguration.ts index 322713381..636b45c61 100644 --- a/packages/dashboard/src/util/convertToDashbaoardConfiguration.ts +++ b/packages/dashboard/src/util/convertToDashbaoardConfiguration.ts @@ -1,5 +1,5 @@ -import { type DashboardState } from '~/store/state'; -import { type DashboardConfiguration } from '~/types'; +import { type DashboardState } from '../store/state'; +import { type DashboardConfiguration } from '../types'; import { parseViewport } from './parseViewport'; export const convertToDashboardConfiguration = ({ diff --git a/packages/dashboard/src/util/getSelectionBox.ts b/packages/dashboard/src/util/getSelectionBox.ts index b20336506..6d84797a6 100644 --- a/packages/dashboard/src/util/getSelectionBox.ts +++ b/packages/dashboard/src/util/getSelectionBox.ts @@ -1,4 +1,4 @@ -import type { Rect, DashboardWidget } from '~/types'; +import type { DashboardWidget, Rect } from '../types'; // Returns the smallest rectangle which can contain all the selected widgets export const getSelectionBox = ( diff --git a/packages/dashboard/src/util/moveSelectionBox.spec.ts b/packages/dashboard/src/util/moveSelectionBox.spec.ts index 3edc43718..b2432fb34 100644 --- a/packages/dashboard/src/util/moveSelectionBox.spec.ts +++ b/packages/dashboard/src/util/moveSelectionBox.spec.ts @@ -1,6 +1,6 @@ -import { moveSelectionBox } from '~/util/moveSelectionBox'; +import { moveSelectionBox } from '../util/moveSelectionBox'; -import { type DashboardState } from '~/store/state'; +import { type DashboardState } from '../store/state'; const grid = { width: 100, diff --git a/packages/dashboard/src/util/moveSelectionBox.ts b/packages/dashboard/src/util/moveSelectionBox.ts index 596878320..8700faae6 100644 --- a/packages/dashboard/src/util/moveSelectionBox.ts +++ b/packages/dashboard/src/util/moveSelectionBox.ts @@ -1,5 +1,5 @@ -import { type Position, type Rect } from '~/types'; -import { type DashboardState } from '~/store/state'; +import { type DashboardState } from '../store/state'; +import { type Position, type Rect } from '../types'; export const moveSelectionBox: (params: { selectionBox: Rect; diff --git a/packages/dashboard/src/util/overlaps.ts b/packages/dashboard/src/util/overlaps.ts index 8f08cde7c..bb119f7f1 100644 --- a/packages/dashboard/src/util/overlaps.ts +++ b/packages/dashboard/src/util/overlaps.ts @@ -1,4 +1,4 @@ -import type { Rect } from '~/types'; +import type { Rect } from '../types'; /** * @param a - a rectangle diff --git a/packages/dashboard/src/util/position.ts b/packages/dashboard/src/util/position.ts index 85370cbf6..3b3233660 100644 --- a/packages/dashboard/src/util/position.ts +++ b/packages/dashboard/src/util/position.ts @@ -1,4 +1,4 @@ -import type { Position } from '~/types'; +import type { Position } from '../types'; /** * diff --git a/packages/dashboard/src/util/resizeSelectionBox.spec.ts b/packages/dashboard/src/util/resizeSelectionBox.spec.ts index 4bc5dceb4..31b8266b2 100644 --- a/packages/dashboard/src/util/resizeSelectionBox.spec.ts +++ b/packages/dashboard/src/util/resizeSelectionBox.spec.ts @@ -1,7 +1,7 @@ -import { resizeSelectionBox } from '~/util/resizeSelectionBox'; -import type { Anchor } from '~/store/actions'; -import type { Rect } from '~/types'; -import type { DashboardState } from '~/store/state'; +import type { Anchor } from '../store/actions'; +import type { DashboardState } from '../store/state'; +import type { Rect } from '../types'; +import { resizeSelectionBox } from '../util/resizeSelectionBox'; const grid = { width: 150, diff --git a/packages/dashboard/src/util/resizeSelectionBox.ts b/packages/dashboard/src/util/resizeSelectionBox.ts index f981b10a0..a858188a2 100644 --- a/packages/dashboard/src/util/resizeSelectionBox.ts +++ b/packages/dashboard/src/util/resizeSelectionBox.ts @@ -1,6 +1,6 @@ -import type { Position, Rect } from '~/types'; -import type { Anchor } from '~/store/actions'; -import { type DashboardState } from '~/store/state'; +import type { Anchor } from '../store/actions'; +import { type DashboardState } from '../store/state'; +import type { Position, Rect } from '../types'; const MIN_WIDTH = 1; const MIN_HEIGHT = 1; diff --git a/packages/dashboard/src/util/select.ts b/packages/dashboard/src/util/select.ts index 5a9dff8fb..5f78ac28b 100644 --- a/packages/dashboard/src/util/select.ts +++ b/packages/dashboard/src/util/select.ts @@ -1,6 +1,6 @@ import last from 'lodash-es/last'; import sortBy from 'lodash-es/sortBy'; -import type { DashboardWidget, Position, Rect, Selection } from '~/types'; +import type { DashboardWidget, Position, Rect, Selection } from '../types'; import { overlaps } from './overlaps'; export const getSelectedWidgets = ({ diff --git a/packages/dashboard/src/util/transformWidget.spec.ts b/packages/dashboard/src/util/transformWidget.spec.ts index d31ecfda6..7c44bf1d9 100644 --- a/packages/dashboard/src/util/transformWidget.spec.ts +++ b/packages/dashboard/src/util/transformWidget.spec.ts @@ -1,10 +1,10 @@ -import { transformWidget } from './transformWidget'; import { getSelectionBox } from './getSelectionBox'; import { resizeSelectionBox } from './resizeSelectionBox'; +import { transformWidget } from './transformWidget'; -import type { Rect, DashboardWidget } from '~/types'; -import type { Anchor } from '~/store/actions'; -import type { DashboardState } from '~/store/state'; +import type { Anchor } from '../store/actions'; +import type { DashboardState } from '../store/state'; +import type { DashboardWidget, Rect } from '../types'; const anchors: Anchor[] = [ 'top', diff --git a/packages/dashboard/src/util/transformWidget.ts b/packages/dashboard/src/util/transformWidget.ts index 21565746f..41663a676 100644 --- a/packages/dashboard/src/util/transformWidget.ts +++ b/packages/dashboard/src/util/transformWidget.ts @@ -1,4 +1,4 @@ -import type { Rect, DashboardWidget } from '~/types'; +import type { DashboardWidget, Rect } from '../types'; export const transformWidget: ( widget: DashboardWidget, diff --git a/packages/dashboard/src/util/trimRectPosition.ts b/packages/dashboard/src/util/trimRectPosition.ts index 02b3b58a6..8c92a3113 100644 --- a/packages/dashboard/src/util/trimRectPosition.ts +++ b/packages/dashboard/src/util/trimRectPosition.ts @@ -1,4 +1,4 @@ -import type { Rect } from '~/types'; +import type { Rect } from '../types'; export const trimRectPosition = (rect: R): R => { return { diff --git a/packages/dashboard/svgTransform.js b/packages/dashboard/svgTransform.js deleted file mode 100644 index 88d37e208..000000000 --- a/packages/dashboard/svgTransform.js +++ /dev/null @@ -1,12 +0,0 @@ -// See https://stackoverflow.com/questions/58603201/jest-cannot-load-svg-file -module.exports = { - process() { - return { - code: `module.exports = {};`, - }; - }, - getCacheKey() { - // The output is always the same. - return 'svgTransform'; - }, -}; diff --git a/packages/dashboard/testing/mocks.ts b/packages/dashboard/testing/mocks.ts index 7b8893c12..b9c7191c6 100644 --- a/packages/dashboard/testing/mocks.ts +++ b/packages/dashboard/testing/mocks.ts @@ -10,7 +10,7 @@ import { type StatusWidget, type StyledAssetQuery, type TextWidget, -} from '~/customization/widgets/types'; +} from '../src/customization/widgets/types'; /** * Shared mocks for testing purposes */ diff --git a/packages/dashboard/tsconfig.cjs.json b/packages/dashboard/tsconfig.cjs.json deleted file mode 100644 index 0db9495e5..000000000 --- a/packages/dashboard/tsconfig.cjs.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.cjs.json", - "include": ["src"], - "files": ["custom.d.ts"], - "exclude": ["./src/msw", "./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/cjs", - "tsBuildInfoFile": "./dist/cjs/.tsbuildinfo", - "paths": { - "~/*": ["./src/*"] - } - } -} diff --git a/packages/dashboard/tsconfig.esm.json b/packages/dashboard/tsconfig.esm.json deleted file mode 100644 index 60ebdccd0..000000000 --- a/packages/dashboard/tsconfig.esm.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.esm.json", - "include": ["src"], - "files": ["custom.d.ts"], - "exclude": ["./src/msw", "./src/**/*.spec.*", "./src/**/*.test.*"], - "compilerOptions": { - "types": [], - "outDir": "./dist/esm", - "tsBuildInfoFile": "./dist/esm/.tsbuildinfo", - "paths": { - "~/*": ["./src/*"] - } - } -} diff --git a/packages/dashboard/tsconfig.json b/packages/dashboard/tsconfig.json index b0414a502..870f335ef 100644 --- a/packages/dashboard/tsconfig.json +++ b/packages/dashboard/tsconfig.json @@ -4,9 +4,6 @@ "include": ["src", "e2e", "stories", "testing", "vite.config.ts"], "files": ["custom.d.ts", "vitest.setup.ts"], "compilerOptions": { - "types": ["vite/client", "vitest/globals", "jest-extended"], - "paths": { - "~/*": ["./src/*"] - } + "types": ["vite/client", "vitest/globals", "jest-extended"] } } diff --git a/packages/dashboard/vite.config.ts b/packages/dashboard/vite.config.ts index fc8f04427..85dc38c1b 100644 --- a/packages/dashboard/vite.config.ts +++ b/packages/dashboard/vite.config.ts @@ -1,10 +1,12 @@ /// +import { definePackageConfig } from '@iot-app-kit/vite-config/definePackageConfig'; import react from '@vitejs/plugin-react'; import { resolve } from 'path'; -import { defineConfig } from 'vite'; -// https://vitejs.dev/config/ -export default defineConfig({ +export default definePackageConfig({ + iotAppKitPackage: { + dirname: __dirname, + }, plugins: [react()], resolve: { alias: { @@ -12,22 +14,9 @@ export default defineConfig({ }, }, test: { - pool: 'threads', - include: ['src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], - globals: true, - css: false, - environment: 'happy-dom', alias: { '~': resolve(__dirname, 'src'), }, - setupFiles: ['./vitest.setup.ts', 'jest-extended/all'], - coverage: { - thresholds: { - statements: 50, - branches: 75, - functions: 50, - lines: 50, - }, - }, + setupFiles: ['./vitest.setup.ts'], }, }); diff --git a/packages/data-mocked/.eslintrc.cjs b/packages/data-mocked/.eslintrc.cjs index 5b89c5273..ae1fd9e83 100644 --- a/packages/data-mocked/.eslintrc.cjs +++ b/packages/data-mocked/.eslintrc.cjs @@ -1,4 +1,19 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, - extends: ['iot-app-kit'], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['packages/data-mocked/tsconfig.json'], + }, + node: { + project: ['packages/data-mocked/tsconfig.json'], + }, + }, + }, }; diff --git a/packages/data-mocked/package.json b/packages/data-mocked/package.json index bc50d84b3..85aebe4a3 100644 --- a/packages/data-mocked/package.json +++ b/packages/data-mocked/package.json @@ -1,5 +1,6 @@ { "name": "@iot-app-kit/data-mocked", + "version": "12.2.1", "private": true, "type": "module", "exports": { @@ -9,17 +10,18 @@ "./handers": "./src/handlers.ts" }, "scripts": { - "clean": "rimraf storybook-static .turbo .cache test-results playwright-report", - "clean:nuke": "npm run clean && rimraf node_modules", - "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/", - "fix": "eslint --fix . --cache --cache-location ./cache/eslint/" + "clean": "npx rimraf .turbo .cache", + "clean:nuke": "npm run clean && npx rimraf node_modules", + "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/ & npm run test:typescript", + "fix": "eslint --fix . --cache --cache-location ./cache/eslint/", + "test:typescript": "tsc --noEmit" }, - "dependencies": { + "devDependencies": { "@aws-sdk/client-iotsitewise": "^3.696.0", "@faker-js/faker": "^8.2.0", + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/ts-config": "*", "@types/node": "^18.16.18", - "eslint-config-iot-app-kit": "*", "msw": "^2.6.2", "rimraf": "^5.0.1", "typescript": "^5.5.4", @@ -27,5 +29,8 @@ }, "msw": { "workerDirectory": "public" + }, + "iotAppKit": { + "scope": "protected" } } diff --git a/packages/helpers/.eslintignore b/packages/helpers/.eslintignore index b512c09d4..76add878f 100644 --- a/packages/helpers/.eslintignore +++ b/packages/helpers/.eslintignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +dist \ No newline at end of file diff --git a/packages/helpers/.eslintrc.cjs b/packages/helpers/.eslintrc.cjs index 5b89c5273..f61819efd 100644 --- a/packages/helpers/.eslintrc.cjs +++ b/packages/helpers/.eslintrc.cjs @@ -1,4 +1,19 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, - extends: ['iot-app-kit'], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['packages/helpers/tsconfig.json'], + }, + node: { + project: ['packages/helpers/tsconfig.json'], + }, + }, + }, }; diff --git a/packages/helpers/package.json b/packages/helpers/package.json index 13d64a22e..8a4cbf39f 100644 --- a/packages/helpers/package.json +++ b/packages/helpers/package.json @@ -1,20 +1,40 @@ { "name": "@iot-app-kit/helpers", + "version": "12.2.1", "private": true, "type": "module", + "main": "./dist/cjs/index.cjs.js", + "module": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts", "exports": { - "./constants/*": "./src/constants/*.ts" + ".": { + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } + } }, "scripts": { - "clean": "rimraf .turbo .cache", - "clean:nuke": "npm run clean && rimraf node_modules", + "build": "NODE_OPTIONS='--import tsx/esm' vite build", + "clean": "npx rimraf .turbo .cache dist", + "clean:nuke": "npm run clean && npx rimraf node_modules", "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/", - "fix": "eslint --fix . --cache --cache-location ./cache/eslint/" + "fix": "eslint --fix . --cache --cache-location ./cache/eslint/", + "test:typescript": "tsc --noEmit" }, - "dependencies": { + "devDependencies": { + "@iot-app-kit/eslint-config": "*", "@iot-app-kit/ts-config": "*", - "eslint-config-iot-app-kit": "*", + "@iot-app-kit/vite-config": "*", "rimraf": "^5.0.1", - "typescript": "^5.5.4" + "tsx": "^4.19.2", + "typescript": "^5.5.4", + "vite": "^5.4.11" + }, + "iotAppKit": { + "scope": "protected" } } diff --git a/packages/helpers/src/constants/time.ts b/packages/helpers/src/constants/time.ts index 3527184b3..a62c91108 100644 --- a/packages/helpers/src/constants/time.ts +++ b/packages/helpers/src/constants/time.ts @@ -1,2 +1,5 @@ +export const NANO_SECOND_IN_MS = 1 / 1000000; export const SECOND_IN_MS = 1000; export const MINUTE_IN_MS = 60_000; +export const HOUR_IN_MS = 60 * MINUTE_IN_MS; +export const DAY_IN_MS = 24 * HOUR_IN_MS; diff --git a/packages/helpers/src/index.ts b/packages/helpers/src/index.ts new file mode 100644 index 000000000..90a4fb8e3 --- /dev/null +++ b/packages/helpers/src/index.ts @@ -0,0 +1,7 @@ +export { + DAY_IN_MS, + HOUR_IN_MS, + MINUTE_IN_MS, + NANO_SECOND_IN_MS, + SECOND_IN_MS, +} from './constants/time'; diff --git a/packages/helpers/vite.config.ts b/packages/helpers/vite.config.ts new file mode 100644 index 000000000..f3e12cbf6 --- /dev/null +++ b/packages/helpers/vite.config.ts @@ -0,0 +1,5 @@ +import { definePackageConfig } from '@iot-app-kit/vite-config/definePackageConfig'; + +export default definePackageConfig({ + iotAppKitPackage: { dirname: __dirname }, +}); diff --git a/packages/react-components/.eslintignore b/packages/react-components/.eslintignore index c212b2f71..2183c0b37 100755 --- a/packages/react-components/.eslintignore +++ b/packages/react-components/.eslintignore @@ -3,3 +3,4 @@ coverage storybook-static stencil-generated test-results +playwright-report \ No newline at end of file diff --git a/packages/react-components/.eslintrc.cjs b/packages/react-components/.eslintrc.cjs index 19b3d8024..97d6b9a97 100644 --- a/packages/react-components/.eslintrc.cjs +++ b/packages/react-components/.eslintrc.cjs @@ -1,12 +1,16 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, extends: [ - 'iot-app-kit', + ...base.extends, 'plugin:react-hooks/recommended', 'plugin:jsx-a11y/recommended', ], - plugins: ['jsx-a11y'], + plugins: [...base.plugins, 'jsx-a11y'], overrides: [ + ...base.overrides, { // Disabling explicit any rule for graph-view component since types are defined in 3p component. files: [ @@ -19,4 +23,17 @@ module.exports = { }, }, ], + settings: { + ...base.settings, + 'import/resolver': { + ...base.settings['import/resolver'], + typescript: { + ...base.settings['import/resolver'].typescript, + project: ['packages/react-components/tsconfig.json'], + }, + node: { + project: ['packages/react-components/tsconfig.json'], + }, + }, + }, }; diff --git a/packages/react-components/package.json b/packages/react-components/package.json index f0a4eefb5..9df13972e 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -2,46 +2,41 @@ "name": "@iot-app-kit/react-components", "version": "12.2.1", "license": "Apache-2.0", - "source": "./src/index.ts", + "publishConfig": { + "access": "public" + }, + "files": [ + "dist" + ], "type": "module", - "main": "./dist/cjs/index.js", + "main": "./dist/cjs/index.cjs.js", "module": "./dist/esm/index.js", "types": "./dist/esm/index.d.ts", "exports": { ".": { - "types": "./dist/esm/index.d.ts", - "require": "./dist/cjs/index.js", - "import": "./dist/esm/index.js", - "default": "./dist/esm/index.js" + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } } }, - "files": [ - "dist", - "CHANGELOG.md", - "*NOTICE", - "*styles.css" - ], - "publishConfig": { - "access": "public" - }, "scripts": { - "start": "storybook dev -p 6007", - "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json && npm run copy-assets:es && npm run copy-assets:cjs", - "build:cjs": "tsc -b ./tsconfig.cjs.json && npm run copy-assets:cjs", - "build:es": "tsc -b ./tsconfig.esm.json && npm run copy-assets:es", - "clean": "rimraf dist storybook-static test-results coverage .turbo .cache", - "clean:nuke": "npm run clean && rimraf node_modules", + "start": "npm run dev", + "build": "NODE_OPTIONS='--import tsx/esm' vite build && npm run copy-assets:es && npm run copy-assets:cjs", + "clean": "npx rimraf dist storybook-static test-results playwright-report coverage .turbo .cache *.tgz LICENSE NOTICE", + "clean:nuke": "npm run clean && npx rimraf node_modules", "copy-assets:es": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/esm/", "copy-assets:cjs": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/cjs/", - "copy:styles": "cp ../components/styles.css styles.css", - "dev": "tsc -b ./tsconfig.esm.json --watch", - "dev:react-components": "npm start", - "test": "TZ=utc vitest run --silent --coverage", - "test:watch": "TZ=utc vitest --silent", - "test:types": "tsc -p ./tsconfig.json --noEmit", + "dev": "NODE_OPTIONS='--import tsx/esm' storybook dev -p 6007", + "test": "NODE_OPTIONS='--import tsx/esm' TZ=utc vitest run --silent", + "test:watch": "NODE_OPTIONS='--import tsx/esm' TZ=utc vitest --silent", + "test:typescript": "tsc --noEmit", "playwright": "docker compose run playwright", "test:ui": "if test \"$NODE_ENV\" = \"production\"; then npm run _test:ui:ci ; else npm run _test:ui:local ; fi", - "test:ui:ci": "npx playwright test", + "test:ui:ci": "NODE_OPTIONS='-C @iot-app-kit/development' npx playwright test", "test:ui:reliability": "if test \"$NODE_ENV\" = \"production\"; then npm run _test:ui:reliability:ci ; else npm run _test:ui:reliability:local ; fi", "_test:ui:ci": "npx playwright test", "_test:ui:local": "npm run playwright -- npx playwright test", @@ -53,14 +48,17 @@ "fix": "eslint --fix . --cache --cache-location .cache/eslint/", "copy:license": "cp ../../LICENSE LICENSE", "copy:notice": "cp ../../NOTICE NOTICE", - "prepack": "npm run copy:license && npm run copy:notice", - "pack": "npm pack" + "prepack": "npm run copy:license && npm run copy:notice && iot-prepack", + "pack": "npm pack", + "postpack": "iot-postpack" }, "devDependencies": { - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/source-iotsitewise": "12.2.1", - "@iot-app-kit/testing-util": "12.2.1", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/helpers": "*", + "@iot-app-kit/testing-util": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@playwright/test": "^1.48.2", "@storybook/addon-essentials": "^8.4.5", "@storybook/addon-links": "^8.4.5", @@ -93,7 +91,6 @@ "babel-plugin-formatjs": "10.5.3", "copyfiles": "^2.4.1", "cytoscape": "^3.25.0", - "eslint-config-iot-app-kit": "12.2.1", "eslint-plugin-jsx-a11y": "^6.8.0", "flush-promises": "^1.0.2", "jest-extended": "^3.2.4", @@ -118,9 +115,10 @@ "@cloudscape-design/global-styles": "1.0.32", "@iot-app-kit/charts": "^2.1.2", "@iot-app-kit/charts-core": "^2.1.2", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/core-util": "12.2.1", - "@iot-app-kit/source-iottwinmaker": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/core-util": "*", + "@iot-app-kit/source-iotsitewise": "*", + "@iot-app-kit/source-iottwinmaker": "*", "@tanstack/react-query": "^5.32.1", "autosize": "^6.0.1", "color": "^4.2.3", @@ -159,5 +157,8 @@ "bugs": { "url": "https://github.com/awslabs/iot-app-kit/issues" }, - "homepage": "https://github.com/awslabs/iot-app-kit#readme" + "homepage": "https://github.com/awslabs/iot-app-kit#readme", + "iotAppKit": { + "scope": "public" + } } diff --git a/packages/react-components/playwright.config.ts b/packages/react-components/playwright.config.ts index 36861479b..d9d7edbfc 100644 --- a/packages/react-components/playwright.config.ts +++ b/packages/react-components/playwright.config.ts @@ -1,8 +1,6 @@ +import { MINUTE_IN_MS, SECOND_IN_MS } from '@iot-app-kit/helpers'; import { defineConfig, devices } from '@playwright/test'; -const SECOND_IN_MS = 1000; -const MINUTE_IN_MS = 60_000; - /** * See https://playwright.dev/docs/test-configuration. */ diff --git a/packages/react-components/src/components/knowledge-graph/graph/graph-view.tsx b/packages/react-components/src/components/knowledge-graph/graph/graph-view.tsx index b657c2191..d21cc5af5 100644 --- a/packages/react-components/src/components/knowledge-graph/graph/graph-view.tsx +++ b/packages/react-components/src/components/knowledge-graph/graph/graph-view.tsx @@ -1,6 +1,5 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { type Core } from 'cytoscape'; import type cytoscape from 'cytoscape'; +import { type Core } from 'cytoscape'; import { type CSSProperties, forwardRef, diff --git a/packages/react-components/src/echarts/extensions/trendCursors/types.d.ts b/packages/react-components/src/echarts/extensions/trendCursors/types.d.ts index 9b5c683de..ab167ff40 100644 --- a/packages/react-components/src/echarts/extensions/trendCursors/types.d.ts +++ b/packages/react-components/src/echarts/extensions/trendCursors/types.d.ts @@ -1 +1 @@ -declare module 'echarts/lib/chart/line/poly'; +declare module 'echarts/lib/chart/line/poly' {} diff --git a/packages/react-components/src/echarts/extensions/trendCursors/view/utils/polyline.ts b/packages/react-components/src/echarts/extensions/trendCursors/view/utils/polyline.ts index 7542844cb..161dcc709 100644 --- a/packages/react-components/src/echarts/extensions/trendCursors/view/utils/polyline.ts +++ b/packages/react-components/src/echarts/extensions/trendCursors/view/utils/polyline.ts @@ -1,3 +1,4 @@ +// @ts-expect-error there is no type safety here import { ECPolyline } from 'echarts/lib/chart/line/poly'; export const createPolyLineFromPoints = (points: Float32Array) => { diff --git a/packages/react-components/svgTransform.cjs b/packages/react-components/svgTransform.cjs deleted file mode 100644 index 445f8e572..000000000 --- a/packages/react-components/svgTransform.cjs +++ /dev/null @@ -1,12 +0,0 @@ -// refer to https://stackoverflow.com/questions/58603201/jest-cannot-load-svg-file -module.exports = { - process() { - return { - code: `module.exports = {};`, - }; - }, - getCacheKey() { - // The output is always the same. - return 'svgTransform'; - }, -}; diff --git a/packages/react-components/tsconfig.cjs.json b/packages/react-components/tsconfig.cjs.json deleted file mode 100644 index 727b1d592..000000000 --- a/packages/react-components/tsconfig.cjs.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.cjs.json", - "include": ["src"], - "files": [], - "exclude": [ - "./src/**/*.spec.*", - "./src/**/*.test.*", - "./src/**/__mocks__", - "./src/**/testing" - ], - "compilerOptions": { - "types": [], - "outDir": "./dist/cjs", - "tsBuildInfoFile": "./dist/cjs/.tsbuildinfo" - } -} diff --git a/packages/react-components/tsconfig.esm.json b/packages/react-components/tsconfig.esm.json deleted file mode 100644 index 72cf67a63..000000000 --- a/packages/react-components/tsconfig.esm.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@iot-app-kit/ts-config/tsconfig.esm.json", - "include": ["src"], - "files": [], - "exclude": [ - "./src/**/*.spec.*", - "./src/**/*.test.*", - "./src/**/__mocks__", - "./src/**/testing" - ], - "compilerOptions": { - "types": [], - "outDir": "./dist/esm", - "tsBuildInfoFile": "./dist/esm/.tsbuildinfo" - } -} diff --git a/packages/react-components/vite.config.ts b/packages/react-components/vite.config.ts index e68518159..4670c6558 100644 --- a/packages/react-components/vite.config.ts +++ b/packages/react-components/vite.config.ts @@ -1,29 +1,13 @@ -/// +import { definePackageConfig } from '@iot-app-kit/vite-config/definePackageConfig'; import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; -// https://vitejs.dev/config/ -export default defineConfig({ +export default definePackageConfig({ + iotAppKitPackage: { + dirname: __dirname, + }, plugins: [react()], test: { - pool: 'threads', - include: ['./src/**/*.{test,spec}.?(c|m)[jt]s?(x)'], - globals: true, - css: false, - environment: 'happy-dom', - setupFiles: [ - './vitest.setup.ts', - 'vitest-canvas-mock', - 'jest-extended/all', - ], + setupFiles: ['./vitest.setup.ts', 'vitest-canvas-mock'], retry: 3, - coverage: { - thresholds: { - statements: 60, - branches: 75, - functions: 70, - lines: 60, - }, - }, }, }); diff --git a/packages/scene-composer/.eslintrc.cjs b/packages/scene-composer/.eslintrc.cjs index 67831ea12..675592f55 100644 --- a/packages/scene-composer/.eslintrc.cjs +++ b/packages/scene-composer/.eslintrc.cjs @@ -1,8 +1,12 @@ +const base = require('@iot-app-kit/eslint-config'); + module.exports = { + ...base, root: true, - extends: ['iot-app-kit', 'plugin:react-hooks/recommended'], - plugins: ['formatjs', 'react-hooks'], + extends: [...base.extends, 'plugin:react-hooks/recommended'], + plugins: [...base.plugins, 'formatjs', 'react-hooks'], rules: { + ...base.rules, // note you must disable the base rule as it can report incorrect errors 'no-template-curly-in-string': 'off', 'no-use-before-define': 'off', @@ -36,6 +40,7 @@ module.exports = { 'no-throw-literal': 'error', }, overrides: [ + ...base.overrides, { files: ['*.spec.tsx', '*.spec.ts'], rules: { @@ -51,14 +56,18 @@ module.exports = { }, ], ignorePatterns: [ + ...base.ignorePatterns, 'src/three/GLTFLoader.js', 'src/three/tiles3d/*', 'tools/watch-build.js', 'src/assets/auto-gen/icons/*', ], settings: { + ...base.settings, 'import/resolver': { + ...base.settings['import/resolver'], typescript: { + ...base.settings['import/resolver'].typescript, project: ['packages/scene-composer/tsconfig.json'], }, node: { diff --git a/packages/scene-composer/.husky/pre-commit b/packages/scene-composer/.husky/pre-commit deleted file mode 100755 index 94b6d48da..000000000 --- a/packages/scene-composer/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -./node_modules/.bin/formatjs extract 'src/**/*.ts*' --ignore='**/*.d.ts' --out-file translations/IotAppKitSceneComposer.en_US.json --id-interpolation-pattern '[sha512:contenthash:base64:6]' --format tools/totoro-formatter.js && git add translations/IotAppKitSceneComposer.en_US.json diff --git a/packages/scene-composer/package.json b/packages/scene-composer/package.json index d60d319e9..2737570b7 100644 --- a/packages/scene-composer/package.json +++ b/packages/scene-composer/package.json @@ -1,65 +1,52 @@ { "name": "@iot-app-kit/scene-composer", + "version": "12.2.1", + "license": "Apache-2.0", "publishConfig": { "access": "public" }, - "version": "12.2.1", "description": "AWS IoT TwinMaker Scene Composer Library", "homepage": "https://github.com/awslabs/iot-app-kit#readme", - "license": "Apache-2.0", + "files": [ + "dist" + ], "type": "module", - "main": "./dist/cjs/src/index.js", - "module": "./dist/esm/src/index.js", - "types": "./dist/esm/src/index.d.ts", + "main": "./dist/cjs/index.cjs.js", + "module": "./dist/esm/index.js", + "types": "./dist/esm/index.d.ts", "exports": { ".": { - "types": "./dist/esm/src/index.d.ts", - "require": "./dist/cjs/src/index.js", - "import": "./dist/esm/src/index.js", - "default": "./dist/esm/src/index.js" + "@iot-app-kit/development": "./src/index.ts", + "default": { + "types": "./dist/esm/index.d.ts", + "require": "./dist/cjs/index.cjs.js", + "import": "./dist/esm/index.js", + "default": "./dist/esm/index.js" + } } }, - "source": "./src/index.tsx", - "directories": { - "dist": "dist", - "test": "__tests__" - }, - "files": [ - "dist", - "CHANGELOG.md", - "THIRD-PARTY-LICENSES", - "*NOTICE" - ], "repository": { "type": "git", "url": "git+https://github.com/awslabs/iot-app-kit.git" }, "scripts": { - "build": "run-s compile", - "build:cjs": "run-s compile:cjs", - "build:es": "run-s compile:es", - "build:ts": "tsc -b ./tsconfig.esm.json ./tsconfig.cjs.json", - "build:ts:cjs": "tsc -b ./tsconfig.cjs.json", - "build:ts:es": "tsc -b ./tsconfig.esm.json", - "clean": "rimraf dist coverage ./build/* .turbo .cache", - "clean:nuke": "npm run clean && rimraf node_modules", + "build": "run-s svglint extract-msgs convert-svg build:ts copy-assets:es copy-assets:cjs", + "build:ts": "NODE_OPTIONS='--import tsx/esm' vite build", + "clean": "npx rimraf dist coverage playwright-report test-results .turbo .cache *.tgz LICENSE NOTICE", + "clean:nuke": "npm run clean && npx rimraf node_modules", "pre:compile": "run-s svglint extract-msgs convert-svg", - "compile": "run-s svglint extract-msgs convert-svg build:ts copy-assets:es copy-assets:cjs", - "compile:cjs": "run-s svglint extract-msgs convert-svg build:ts:cjs copy-assets:cjs", - "compile:es": "run-s svglint extract-msgs convert-svg build:ts:es copy-assets:es", - "dev": "tsc -b ./tsconfig.esm.json --watch", "convert-svg": "npx @svgr/cli --out-dir src/assets/auto-gen/icons/ --typescript --jsx-runtime automatic --index-template tools/index-template.cjs -- src/assets/icons/", - "release": "run-s compile copy-assets:es copy-assets:cjs", + "release": "run-s build copy-assets:es copy-assets:cjs", "copy-assets:es": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" dist/esm/", "copy-assets:cjs": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" dist/cjs/", "lint": "eslint . --max-warnings=714 --cache --cache-location .cache/eslint/", "fix": "eslint --fix . --cache --cache-location .cache/eslint/", - "test": "TZ=utc vitest run --silent --coverage", - "test:watch": "TZ=utc vitest --silent", + "test": "NODE_OPTIONS='--import tsx/esm' TZ=utc vitest run --silent", + "test:watch": "NODE_OPTIONS='--import tsx/esm' TZ=utc vitest --silent", "test:reliability": "npm run test:ui:reliability", "playwright": "docker compose run playwright", "test:ui": "if test \"$NODE_ENV\" = \"production\"; then npm run _test:ui:ci ; else npm run _test:ui:local ; fi", - "test:ui:ci": "npx playwright test", + "test:ui:ci": "NODE_OPTIONS='-C @iot-app-kit/development' npx playwright test", "test:ui:reliability": "if test \"$NODE_ENV\" = \"production\"; then npm run _test:ui:reliability:ci ; else npm run _test:ui:reliability:local ; fi", "_test:ui:ci": "npx playwright test", "_test:ui:local": "npm run playwright -- npx playwright test", @@ -67,15 +54,16 @@ "_test:ui:reliability:local": "npm run playwright -- npx playwright test --repeat-each 5 --workers=1", "test:ui:update2": "npm run playwright -- npx playwright test --update-snapshots", "test:ui:watch": "npx playwright test --ui", - "storybook": "npm run copy-assets:es && storybook dev -p 7006", + "storybook": "npm run copy-assets:es && NODE_OPTIONS='--import tsx/esm' storybook dev -p 7006", "start": "npm run storybook", "build-storybook": "storybook build", "extract-msgs": "formatjs extract 'src/**/*.ts*' --ignore='**/*.d.ts' --out-file translations/IotAppKitSceneComposer.en_US.json --id-interpolation-pattern '[sha512:contenthash:base64:6]' --format tools/totoro-formatter.cjs", - "prepare": "cd ../.. && husky install && ts-patch install -s", + "prepare": "cd ../.. && ts-patch install -s", "copy:license": "cp ../../LICENSE LICENSE", "copy:notice": "cp ../../NOTICE NOTICE", - "prepack": "npm run copy:license && npm run copy:notice", + "prepack": "npm run copy:license && npm run copy:notice && iot-prepack", "pack": "npm pack", + "postpack": "iot-postpack", "svglint": "svglint src/assets/**/*.svg" }, "peerDependencies": { @@ -96,7 +84,10 @@ "@cloudscape-design/design-tokens": "^3.0.35", "@cloudscape-design/global-styles": "^1.0.25", "@formatjs/cli": "^6.3.8", - "@iot-app-kit/ts-config": "12.2.1", + "@iot-app-kit/eslint-config": "*", + "@iot-app-kit/helpers": "*", + "@iot-app-kit/ts-config": "*", + "@iot-app-kit/vite-config": "*", "@playwright/test": "^1.48.2", "@react-spring/three": "^9.7.2", "@storybook/addon-essentials": "^8.4.5", @@ -106,7 +97,6 @@ "@storybook/react-vite": "^8.4.5", "@storybook/test": "^8.4.5", "@svgr/cli": "^8.1.0", - "@swc/plugin-formatjs": "^1.0.1", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", @@ -122,16 +112,10 @@ "@vitest/coverage-v8": "^2.1.5", "babel-plugin-formatjs": "10.5.3", "copyfiles": "^2.4.1", - "eslint-config-iot-app-kit": "12.2.1", "happy-dom": "^15.11.6", - "husky": "8.0.3", "jest-extended": "^3.2.4", - "jsdom": "^25.0.1", - "nodemon": "^2.0.22", "npm-run-all": "^4.1.5", "postcss": "^8.4.31", - "prettier": "^2.8.8", - "prettier-eslint": "^16.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-intl": "^6.8.7", @@ -156,9 +140,9 @@ "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@iot-app-kit/core": "12.2.1", - "@iot-app-kit/react-components": "12.2.1", - "@iot-app-kit/source-iottwinmaker": "12.2.1", + "@iot-app-kit/core": "*", + "@iot-app-kit/react-components": "*", + "@iot-app-kit/source-iottwinmaker": "*", "@matterport/r3f": "0.2.7", "@matterport/webcomponent": "0.1.35", "@react-three/drei": "9.56.27", @@ -195,5 +179,8 @@ "tslib": "^2.5.3", "zundo": "1.6.0", "zustand": "^4.5.2" + }, + "iotAppKit": { + "scope": "public" } } diff --git a/packages/scene-composer/playwright.config.ts b/packages/scene-composer/playwright.config.ts index 0e82091ba..f01967e17 100644 --- a/packages/scene-composer/playwright.config.ts +++ b/packages/scene-composer/playwright.config.ts @@ -1,8 +1,6 @@ +import { MINUTE_IN_MS, SECOND_IN_MS } from '@iot-app-kit/helpers'; import { defineConfig, devices } from '@playwright/test'; -const SECOND_IN_MS = 1000; -const MINUTE_IN_MS = 60_000; - /** * See https://playwright.dev/docs/test-configuration. */ diff --git a/packages/scene-composer/src/components/DefaultErrorFallback/__tests__/__snapshots__/DefaultErrorFallback.spec.tsx.snap b/packages/scene-composer/src/components/DefaultErrorFallback/__tests__/__snapshots__/DefaultErrorFallback.spec.tsx.snap index f73d75d1e..5d69cfd82 100644 --- a/packages/scene-composer/src/components/DefaultErrorFallback/__tests__/__snapshots__/DefaultErrorFallback.spec.tsx.snap +++ b/packages/scene-composer/src/components/DefaultErrorFallback/__tests__/__snapshots__/DefaultErrorFallback.spec.tsx.snap @@ -1,28 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`DefaultErrorFallback > should render correctly with a Error type 1`] = ` - - Error - - } - > - -

- Testing an error -

-
- - } -/> -`; - -exports[`DefaultErrorFallback > should render correctly with a Error type 2`] = ` should render correctly with a Error type 2`] = `; exports[`DefaultErrorFallback > should render correctly with a SceneComposerRuntimeError type 1`] = ` - - Error - - } - > - -

- Testing a SceneComposerRuntimeError -

-
- - } -/> -`; - -exports[`DefaultErrorFallback > should render correctly with a SceneComposerRuntimeError type 2`] = ` should render correctly with a SceneComposerRunt `; exports[`DefaultErrorFallback > should render correctly with a String type 1`] = ` - - Error - - } - > - -

- Testing a string -

-
- - } -/> -`; - -exports[`DefaultErrorFallback > should render correctly with a String type 2`] = ` should render correctly with a String type 2`] = `; exports[`DefaultErrorFallback > should render correctly with a Unknown type 1`] = ` - - Error - - } - > - -

- An unexpected error occurred. -

-
- - } -/> -`; - -exports[`DefaultErrorFallback > should render correctly with a Unknown type 2`] = ` should render with correct progress with 0% done 1`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 0% - - -
-
- -
- 0 out of 10 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with 0% done 2`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 0% - - -
-
- -
- 0 out of 10 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with 0% done 3`] = `
should render with correct progress with 0% done 3 `; exports[`ConvertingProgress > should render with correct progress with all done 1`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 100% - - -
-
- -
- 10 out of 10 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with all done 2`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 100% - - -
-
- -
- 10 out of 10 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with all done 3`] = `
should render with correct progress with all done `; exports[`ConvertingProgress > should render with correct progress with partially done 1`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 22.22222222222222% - - -
-
- -
- 2 out of 9 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with partially done 2`] = ` -
-
-
-
-
-
-
- Converting nodes -
-
-
- - -
- - - - Converting nodes: 22.22222222222222% - - -
-
- -
- 2 out of 9 converted -
-
-
-
-
-
-
-`; - -exports[`ConvertingProgress > should render with correct progress with partially done 3`] = `
should render correctly for loading status 1`] = ` -
-
- Delete delete-node-name - - - - - If you attempt to undo this action after delete-node-name is deleted, it may have issues such as the children still being deleted or disconnection from data. -
-
-`; - -exports[`DeleteNodeModal > should render correctly for loading status 2`] = ` -
-
- Delete delete-node-name - - - - - If you attempt to undo this action after delete-node-name is deleted, it may have issues such as the children still being deleted or disconnection from data. -
-
-`; - -exports[`DeleteNodeModal > should render correctly for loading status 3`] = `
Delete delete-node-name diff --git a/packages/scene-composer/src/components/panels/SceneHierarchyPanel/__snapshots__/SceneHierarchyPanel.spec.tsx.snap b/packages/scene-composer/src/components/panels/SceneHierarchyPanel/__snapshots__/SceneHierarchyPanel.spec.tsx.snap index d68571da7..8ae11947a 100644 --- a/packages/scene-composer/src/components/panels/SceneHierarchyPanel/__snapshots__/SceneHierarchyPanel.spec.tsx.snap +++ b/packages/scene-composer/src/components/panels/SceneHierarchyPanel/__snapshots__/SceneHierarchyPanel.spec.tsx.snap @@ -1,214 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "C" 1`] = ` -
-
-
-
-
-
-
- - - - - - -
-
-
-
-
- -
-
-
-
    -
-
-
-`; - -exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "C" 2`] = ` -
-
-
-
-
-
-
- - - - - - -
-
-
-
-
- -
-
-
-
    -
-
-
-`; - -exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "C" 3`] = `
should render hierarchy correctly when enabled is `; exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "T1" 1`] = ` -
-
-
-
-
-
-
- - - - - - -
-
-
-
-
- -
-
-
-
    -
-
-
-`; - -exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "T1" 2`] = ` -
-
-
-
-
-
-
- - - - - - -
-
-
-
-
- -
-
-
-
    -
-
-
-`; - -exports[`SceneHierarchyPanel > should render hierarchy correctly when enabled is "T1" 3`] = `
it should render the Camera svg 1`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Camera svg 2`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Camera svg 3`] = `
@@ -60,60 +22,6 @@ exports[`ComponentTypeIcon > it should render the Camera svg 3`] = ` exports[`ComponentTypeIcon > it should render the Empty svg 1`] = `null`; exports[`ComponentTypeIcon > it should render the Light svg 1`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Light svg 2`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Light svg 3`] = `
@@ -141,82 +49,6 @@ exports[`ComponentTypeIcon > it should render the Light svg 3`] = ` `; exports[`ComponentTypeIcon > it should render the ModelRef svg 1`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the ModelRef svg 2`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the ModelRef svg 3`] = `
@@ -255,82 +87,6 @@ exports[`ComponentTypeIcon > it should render the ModelRef svg 3`] = ` `; exports[`ComponentTypeIcon > it should render the SubModelRef svg 1`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the SubModelRef svg 2`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the SubModelRef svg 3`] = `
@@ -369,64 +125,6 @@ exports[`ComponentTypeIcon > it should render the SubModelRef svg 3`] = ` `; exports[`ComponentTypeIcon > it should render the Tag svg 1`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Tag svg 2`] = ` - -`; - -exports[`ComponentTypeIcon > it should render the Tag svg 3`] = `
diff --git a/packages/scene-composer/src/components/panels/__snapshots__/SettingsPanel.spec.tsx.snap b/packages/scene-composer/src/components/panels/__snapshots__/SettingsPanel.spec.tsx.snap index 69ef52d38..5569eb343 100644 --- a/packages/scene-composer/src/components/panels/__snapshots__/SettingsPanel.spec.tsx.snap +++ b/packages/scene-composer/src/components/panels/__snapshots__/SettingsPanel.spec.tsx.snap @@ -1,786 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`SettingsPanel contains expected elements. > should contains default elements in editing mode. 1`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains default elements in editing mode. 2`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains default elements in editing mode. 3`] = `
should contains default ele `; exports[`SettingsPanel contains expected elements. > should contains default elements in viewing mode. 1`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains default elements in viewing mode. 2`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains default elements in viewing mode. 3`] = `
should contains default ele `; exports[`SettingsPanel contains expected elements. > should contains settings element for converting scene in editing. 1`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
-
-
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for converting scene in editing. 2`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
-
-
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for converting scene in editing. 3`] = `
should contains settings el `; exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in editing. 1`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in editing. 2`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
- -

- Overlay -

-

- Visibility settings -

- - - - - - - - - - Always on - - - - -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in editing. 3`] = `
should contains settings el `; exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in viewing. 1`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in viewing. 2`] = ` -
-
-
-
- -
-
-
-
-
-
-
-

- Motion indicator -

-
- - - - - - - - - - -
-
-
-
-

- Tag -

-
- - - - - - - - - - -
-
-
-
-

- Overlay -

-
- - - - - - - - - - -
-
-
-
-

- Annotation -

-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- -
-
-`; - -exports[`SettingsPanel contains expected elements. > should contains settings element for overlay in viewing. 3`] = `
SceneNode panel contains expected elements when none selected scene node. 1`] = ` -
-
-
-
- - - -
-
-
- - Properties - -
-
-
-
-
-
-
-
-

- No node selected. -

-
-
-
-
-
-
-
-`; - -exports[`SceneNodeInspectorPanel returns expected elements. > SceneNode panel contains expected elements when none selected scene node. 2`] = ` -
-
-
-
- - - -
-
-
- - Properties - -
-
-
-
-
-
-
-
-

- No node selected. -

-
-
-
-
-
-
-
-`; - -exports[`SceneNodeInspectorPanel returns expected elements. > SceneNode panel contains expected elements when none selected scene node. 3`] = `
SceneNode panel co [{},{}]
-